본문 바로가기

MongoDB

(4)
MongoDB Replica Set Protocol Version (PV) 1. Replica Set Protocol Version Replica Set Protocol Version 은 Primary Election 방식과 연관이 있는 수치이다. Replica Set Protocol Version 은 "0" 과 "1" 의 값을 가질 수 있다. 이 글에선 "0"인 경우는 PV0, "1"인 경우는 PV1 이라고 축약하겠다. 참고로 MongoDB 4.0 에서는 Protocol Version 1 만 지원을 한다. 1) PV0 PV0 의 경우 MongoDB 3.0 이전에서 사용하던 replica set 의 프로토콜 방식이다. MongoDB 3.0 version 까지는 각 서버가 인지하고 있는 시각에 의존했기때문에, 각 OS 마다 시각이 차이가 있을 수 있다. 이 문제를 해결하기 위해 ..
MongoDB Authentication Mechanism 1. MongoDB Authentication Mechanism MongoDB 는 Login 시에 authentication mechanism 을 사용하게 되어있다. 여러 Mechanism 들이 사용 가능하지만, 사용되는 방식은 "MONGODB-CR / SCRAM-SHA-1" 크게 두가지이다. 2.x 버전에서는 "MONGODB-CR" 이라는 Mechanism 이 사용되다가, 3.0 version 부터 "SCRAM-SHA-1" 이라는 새로운 Mechanism 이 차용되었다. MongoDB 3.6 version 까지는 "MONGODB-CR" 방식과 "SCRAM-SHA-1" 방식이 모두 사용 가능하지만, MongoDB 4.0 version 부터는 "SCRAM-SHA- 256" 방식이 생기면서 동시에 "MONG..
MongoDB Plan Cache 1. MongoDB Plan Cache 사용 이유 MongoDB 에서 Execution Plan 은 101건의 document 를 반환하는 Plan 을 사용한다. 이 행위를 쿼리가 요청될 때마다, 매번 하는 것은 사실 비효율적인 행위이다. 그래서 MongoDB 에서는 Plan Cache 라는 개념을 사용한다. 이는 MySQL 의 Query Cache 랑은 다른 개념이다. MongoDB 의 Plan Cache 는 Query Shape (쿼리 패턴이라고 이해해도 좋다.) 별 어떤 Execution Plan 을 사용할지 Caching 해두는 공간이다. Plan Cache 가 처음부터 Plan 을 Caching 을 해두는 것은 아니고, 실제 쿼리가 실행 되었을 때 만들어진 Execution Plan 을 캐싱한다..
MongoDB Query Execution Plan 1. MongoDB 에서의 Query Execution Plan MongoDB 의 Optimizer 는 기본적으로 Rule Based 로 동작한다. 하지만 Rule Based 와 Cost Based 의 각 장단점은 명확하기때문에, MongoDB 에서는 Rule Based 를 기본으로 사용하면서 단점을 보완하기위해 추가적인 방법을 이용한다. Execution Plan 을 세울 때, 먼저 Rule Based 로 Execution Plan 을 세우고 실제 해당 Plan 을 실행한다. 그리고 모든 Execution Plan 들 중에 "101건" 의 Document 를 가장 빨리 반환하는 Plan 을 최종적으로 Execution Plan 으로 잡는다. 이 단계에서 선택된 Plan 은 "Winning Plan" ,..