문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

우선순위 0 복제본 세트 구성원

이 페이지의 내용

  • 대기 상태의 우선순위 0 멤버
  • 페일오버 고려 사항
  • 예제

priority 0 멤버는 프라이머리 멤버가 될 수 없고 투표를 트리거할 수 없는 멤버입니다. 우선순위 0 멤버는 w : <number>쓰기 고려로 발급된 쓰기 작업을 승인할 수 있습니다. "majority" 쓰기 고려의 경우 우선순위 0 멤버도 투표 멤버여야만(예: members[n].votes0보다 큼) 쓰기를 승인할 수 있습니다. 투표권이 없는 복제본 세트 멤버(예: members[n].votes0)는 "majority" 쓰기 고려를 가진 쓰기 작업을 승인하는 데 기여할 수 없습니다.

앞서 언급한 제한 사항 외에 priority 0을 가진 세컨더리는 데이터 세트의 사본을 유지하고, 읽기 작업을 수락하며, 투표하는 등 일반적인 세컨더리와 같은 기능을 합니다.

priority 0을 가진 복제본 세트 멤버를 구성하는 것은 특정 멤버가 주 배포에서 멀리 떨어진 데이터 센터에 배포되어 지연 시간이 길어지는 경우에 적합할 수 있습니다. 로컬 읽기 요청은 잘 처리할 수 있지만 대기 시간으로 인해 프라이머리의 작업을 수행하기에는 적합하지 않을 수 있습니다.

이 상황에서 다음 다이어그램은 왼쪽에 프라이머리 및 세컨더리를 호스팅하는 데이터 센터가 있고, 오른쪽에 프라이머리가 되지 않도록 우선 순위 0이 되도록 구성된 세컨더리를 호스팅하는 데이터 센터가 있습니다. 이 설정으로 인해 왼쪽 데이터 센터의 멤버만 투표에서 프라이머리가 될 수 있습니다.

2개의 데이터 센터에 분산된 멤버 복제본 세트 3개를 나타낸 다이어그램입니다. 복제본 세트에 우선순위 0 멤버가 포함되어 있습니다.

이 값을 복제본 세트 멤버의 기본 우선 순위인 priority 1과 비교합니다. 이 시나리오에서는 세컨더리 중 하나를 프라이머리로 사용할 수 있습니다. 자세한 내용은 둘 이상의 데이터 센터에 분산된 복제본 세트를 참조하세요.

priority 0을 사용하는 세컨더리는 대기 상태로 작동할 수 있습니다. 일부 복제본 세트에서는 합리적인 시간 내에 새 멤버를 추가하는 것이 불가능할 수 있습니다. 대기 상태인 멤버는 사용할 수 없는 멤버를 교체할 수 있도록 데이터의 현재 복사본을 유지합니다.

대부분의 경우 대기를 우선순위 0으로 설정할 필요가 없습니다. 그러나 하드웨어 또는 지리적 분포가 다양한 복제본 세트에서는 우선순위 0 대기를 설정하면 특정 멤버만 프라이머리가 될 수 있습니다.

우선 순위 0 대기는 하드웨어 또는 워크로드 프로필이 다른 세트의 일부 멤버에게도 유용할 수 있습니다. 이러한 경우 우선 순위 0인 멤버를 배포하여 프라이머리가 되지 않도록 합니다. 또한 이 목적을 위해 숨겨진 멤버를 사용하는 것이 좋습니다.

세트에 이미 투표권이 있는 멤버가 7명 있는 경우, 멤버를 투표권이 없는 멤버로 구성합니다.

priority 0을 갖도록 세컨더리를 구성할 때는 가능한 모든 네트워크 파티션을 포함하여 잠재적인 페일오버 패턴을 고려합니다. 주 데이터 센터에 투표권이 있는 멤버 정족수와 프라미어리가 될 자격이 있는 멤버가 모두 포함되어 있는지 항상 확인합니다.

세컨더리가 priority 0을 갖도록 구성하려면 세컨더리가 프라이머리가 되는 것을 방지를 참조하세요.

← 복제본 세트 보조 멤버