문서 홈 → 애플리케이션 개발 → MongoDB 매뉴얼
기본 MongoDB 읽기 고려/쓰기 고려
이 페이지의 내용
readConcern
기본 읽기 고려
기본 읽기 고려는 다음과 같습니다.
읽기 고려 지정: MongoDB 드라이버
추가 정보
사용 가능한 읽기 고려에 대한 자세한 내용은 읽기 고려를 참조하세요.
쓰기 고려
디폴트 쓰기 고려
MongoDB 5.0부터 암시적 기본 쓰기 우려는 w: majority
입니다. 그러나 중재자가 포함된 배포의 경우 특별히 고려해야 할 사항이 있습니다.
복제 세트의 투표 과반수는 1에 투표 회원 수의 절반을 반올림한 값입니다. 데이터를 포함하는 투표 구성원의 수가 투표 과반수보다 많지 않은 경우 기본 쓰기 문제는
{ w: 1 }
입니다.다른 모든 시나리오에서 기본 쓰기 우려는
{ w: "majority" }
입니다.샤드 클러스터 의 경우, 기본 쓰기 고려는 항상 config 서버 에서 검색됩니다. config 서버에는 중재자가 있어야 하므로 샤딩된 클러스터에 대한 암시적 기본 쓰기 고려는 항상
"majority"
입니다. 샤드가 프라이머리-세컨더리-중재자 토폴로지에 있더라도 기본 쓰기 고려는"majority"
입니다. MongoDB 5.1부터는 클러스터 전체 쓰기 고려가 설정되지 않은 경우 이 구성이 허용되지 않습니다.
특히 MongoDB는 다음 공식을 사용하여 기본 쓰기 문제를 결정합니다.
if [ (#arbiters > 0) AND (#non-arbiters <= majority(#voting-nodes)) ] defaultWriteConcern = { w: 1 } else defaultWriteConcern = { w: "majority" }
예를 들어 다음 배포와 해당 기본 쓰기 문제를 고려해보세요.
비중재인 | 중재자 | 투표 노드 | 과반수 투표 노드 | 자세한 내용은 암시적 기본 쓰기 고려를 참조하세요. |
---|---|---|---|---|
2 | 1 | 3 | 2 | { w: 1 } |
4 | 1 | 5 | 3 | { w: "majority" } |
첫 번째 예제에서는
총 3개의 투표 노드에는 2명의 비중재자와 1명의 중재자가 있습니다.
투표 노드의 대다수(1 + 3의 절반, 반내림)는 2입니다.
비중재자 수(2)는 대다수의 투표 노드(2)와 동일하므로
{ w: 1 }
의 암시적 쓰기 문제가 발생합니다.
두 번째 예제에서는
총 5개의 투표 노드에는 4명의 비중재자와 1명의 중재자가 있습니다.
투표 노드의 대다수(1 + 5의 절반, 반내림)는 3입니다.
비 중재자 (4) 의 수가 투표 노드 (3) 의 과반수보다 많아서 암묵적인 쓰기 문제가
{ w: "majority" }
발생합니다.
쓰기 우려 지정: MongoDB 드라이버
추가 정보
사용 가능한 쓰기 고려에 대한 자세한 내용은 쓰기 고려를 참조하세요.
인과적 일관성 보장
인과적으로 일관된 클라이언트 세션의 경우, 클라이언트 세션은 다음과 같은 경우에만 인과적 일관성을 보장합니다.
관련된 읽기 작업은
"majority"
읽기 고려를 사용합니다.관련 쓰기 작업은
"majority"
쓰기 고려를 사용합니다.