[컴][db] mongodb 의 config.system.sessions

몽고db / system.sessions collection 에 무슨 정보가 있는가 ? / 왜 필요한가. / 세션 동기화 / 

mongodb 의 config.system.sessions

mongodb 3.6 버전부터, config db 는 다음을 지원하기 위해서 internal collection 들을 갖는다.

  1. standalone, replica sets, sharded clusters 에서의 인과적인 일관적인 세션들(causally consistent sessions)
  2. replica sets, sharded clusters 에서의 재시도가능한 write들과 transaction들

이중에서 1번째 “인과적인 일관적인 세션들(causally consistent sessions)” 을 위해서 config.system.sessions 가 필요하다.

다음처럼 $listSessions 명령어를 통해 확인할 수 있다.

당연한 이야기겠지만 system.sessions 를 함부로 조작하지 말라고 한다.(수정, 삭제등)

use config

db.system.sessions.aggregate( [ { 
  $listSessions: { 
    users: [ {user: "myAppReader", db: "test" } ] 
  } 
} ] )

system.sessions collection 은 session record들을 저장한다. 이 session record들은 배포된 모든 member들이 사용가능하다.(available)

user 가 session 을 mongod instance 에서 만들때, session 의 record 은 초기에 그 instance 의 in-memory 에만 존재한다. 주기적으로 그 instance 는 자신의 cached session 들을 system.sessions collection 에 sync 할 것이다. 그 때, 그 record 들은 배포된 모든 member 들에게 visible 하다.

$listSessions 명령어를 이용해서 이 record 들을 확인할 수 있다.

Reference

  1. Config Database — MongoDB Manual
  2. $listSessions — MongoDB Manual

댓글 없음:

댓글 쓰기