문서 메뉴

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

기본 MongoDB 읽기 고려/쓰기 고려

이 페이지의 내용

  • readConcern
  • 쓰기 고려
  • 인과적 일관성 보장
읽기/쓰기 고려 상속
클릭하여 확대

기본 읽기 고려는 다음과 같습니다.

운영
기본 읽기 고려
프라이머리에 대해 읽기

"local"

참고

  • 이 읽기 고려는 롤백될 수 있는 데이터를 반환할 수 있습니다.

  • 이 읽기 고려는 인과적 일관성을 보장하지 않습니다.

세컨더리에서 읽기

"local"

참고

  • 이 읽기 고려는 롤백될 수 있는 데이터를 반환할 수 있습니다.

  • 이 읽기 고려는 인과적 일관성을 보장하지 않습니다.

사용 가능한 읽기 고려에 대한 자세한 내용은 읽기 고려를 참조하세요.

읽기/쓰기 고려 상속

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" } 발생합니다.

사용 가능한 쓰기 고려에 대한 자세한 내용은 쓰기 고려를 참조하세요.

인과적으로 일관된 클라이언트 세션의 경우, 클라이언트 세션은 다음과 같은 경우에만 인과적 일관성을 보장합니다.

  • 관련된 읽기 작업은 "majority" 읽기 고려를 사용합니다.

  • 관련 쓰기 작업은 "majority" 쓰기 고려를 사용합니다.

← 기본 MongoDB 포트