문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

자체 관리형 복제본 세트 프로토콜 버전

MongoDB는 복제본 세트 프로토콜 버전 1 (pv1)만 지원합니다. pv1 은 모든 새 복제본 세트의 기본값입니다.

pv1 를 사용하면 catchUpTimeoutMillis 를 사용하여 더 빠른 페일오버와 w:1 쓰기 보존 사이에서 우선 순위를 지정할 수 있습니다.

pv1 확인된 w: "majority" 쓰기의 보존을 보장합니다.

pv1 MongoDB 버전 3 에서 사용할 수 있습니다.2 이상이며 모든 새 복제본 세트의 기본값입니다.

pv1 거부권을 사용하지 않습니다. 개별 멤버는 특정 선거에서 후보자에 대해 투표하거나 반대할 수 있지만, 투표를 일방적으로 거부권(중단)으로 할 수는 없습니다.

일부 상황에서는 복제본 세트의 두 노드가 일시적으로 자신이 주 노드라고 생각할 수 있지만, { w: "majority" }의 쓰기 우려로 쓰기를 완료할 수 있는 노드는 최대 한 개뿐입니다. { w: "majority" }개의 쓰기를 완료할 수 있는 노드가 현재의 주 노드이고, 다른 노드는 보통 네트워크 파티션으로 인해 강등된 것을 아직 인식하지 못한 이전의 주 노드입니다. 이 경우 이전 주 노드에 연결한 클라이언트는 읽기 기본 설정 primary를 요청했음에도 불구하고 오래된 데이터를 보게 되며, 이전의 주 노드에 대한 새로운 쓰기는 결국 롤백됩니다.

pv1 의 개념을 사용합니다. 이를 통해 동시 프라이머리를 더 빠르게 탐지하고 짧은 시간 내에 성공적인 투표를 여러 번 달성할 수 있습니다.

pv1 사용 가능한 가장 높은 priority 를 가진 2차자가 투표를 호출하도록 "최선의 노력"을 시도합니다. 이로 인해 우선 순위가 더 높은 자격 있는 멤버가 투표를 호출할 수 있으므로 연속 투표가 이루어질 수 있습니다.

그러나 pv1 의 경우:

  • 우선 순위 투표는 우선 순위가 높은 노드가 현재 기본 노드로부터 10초 이내에 있는 경우에만 수행되도록 제한되었습니다.

  • 중재자는 후보와 동등하거나 그 이상의 우선순위를 가진 건전한 프라이머리를 발견하면 선거에서 반대표를 던집니다.

pv1 한 멤버의 투표 요청에서 이중 투표를 방지합니다. 이는 텀을 사용하여 달성됩니다.

돌아가기

구성

다음

문제 해결