일관성과, 분산성의 특징
- CAP 정리에서 consistency(일관성)과 partition-tolerance(분산형)의 특징을 지님
단일 마스터노드와 소통하며 일관성을 유지하는 것
을 우선시한다.
- 따라서 해당 단일 마스터노드가 다운되면 새 마스터 노드를 구성하는 동안 비가동 주기가 생긴다. 해당 상태에서는 read는 가능하지만, 완전히 해결될 때까지 write는 비활성화된다.
마스터 db의 복사본을 일정 시간동안 유지하는 secondary db(백업 복사본)를 가진다.
장점
- 기존 마스터 노드가 다운되었을때 다른 마스터 노드로 대체되는 시간이 매우 짧다. 즉 빠르게 진행된다.
단점
- 과반수 이상의 서버가 누가 차기 마스터 노드가 될지 동의해야한다.
- 이를 위해서는 홀수의 서버만 가질 수 있다.
- 적어도 세개의 서버를 가지게 된다.
- 즉 비용적인 부담이 생긴다.
- 이를 위해 arbiter(결정권자)노드를 가질 수 있다.
- 작업하는 애플리케이션이 mongodb의 마스터 노드 뿐 아니라 세컨더리 노드도 일부 알고 있어야 한다.
- 이에 따라서 데이터센터의 변경이 생겨서 세컨터리 노드가 추가되거나 제거될때 애플리케이션에도 알려야한다.
- 이는 mongodb 3.6에서 'DNS 시드 목록 연결 형식' (Seedlist Connection Format)로 해결된다.
- delayed secondary node(지연노드) 설정 가능
- 프라이머리와 세컨더리 노드 사이에 얼마 간의 딜레이를 설정했을 때의 개념
- 복제 과정에서 딜레이를 설정한 경우, 프라이머리 노드에 문제가 생겼을 때 지연 노드를 통해 이전에 가지고 있던 데이터를 신속하게 되살릴 수 있다.