문서 메뉴

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

readConcern "available"

읽기 고려가 "available"인 쿼리는 데이터가 대부분의 복제본 세트 멤버에 기록되었다는 보장 없이(즉, 롤백될 수 있음) 인스턴스의 데이터를 반환합니다.

  • 샤드 클러스터 "available" 읽기 고려는 파티션에 대한 더 큰 허용 오차를 제공합니다.

    "available" 읽기 고려가 있는 쿼리는 올바른 샤드가 쿼리를 수신했는지 확인하기 위한 검사가 필요하지 않습니다.

    네트워크 파티션이 있는 경우 이러한 쿼리는 네트워크 파티션이 발생하기 전에 적절하다고 간주되는 샤드로 라우팅됩니다. 사용할 수 없는 서버의 일관성 보장을 기다리지 않습니다. 샤드가 청크 마이그레이션을 진행 중인 경우 "available" 를 사용하는 쿼리는 고아 문서를 반환할 수 있습니다.

    경고

    mongos 는 읽기 고려 "available" 가 있는 쿼리가 올바른 샤드로 라우팅된다는 것을 보장하지 않습니다. 쿼리를 수신하는 샤드는 데이터를 반환하지만, 이 샤드는 요청된 데이터의 신뢰할 수 있는 소유자가 아닐 수 있습니다.

    이로 인해 쿼리가 정확하지 않거나 예기치 않은 결과를 반환할 수 있습니다.

  • 샤딩되지 않은 컬렉션 (독립형 배포 또는 복제본 세트 배포의 컬렉션 포함)의 경우 "local""available" 읽기 고려는 동일하게 작동합니다.

읽기 고려 수준에 관계없이 노드의 최신 데이터는 시스템에 있는 데이터의 최신 버전을 반영하지 않을 수 있습니다.

다음도 참조하세요.

읽기 고려 "available"이며 인과적으로 일관적인 세션 및 트랜잭션과 함께사용할 수 없습니다 .

세 멤버로 구성된 복제본 세트에 0을 쓰는 쓰기 작업의 다음 타임라인을 고려해 보십시오.

참고

단순화를 위해 이 예에서는 다음과 같은 상황을 가정합니다.

  • 쓰기 0 이전의 모든 쓰기가 모든 구성원에 성공적으로 복제되었습니다.

  • 쓰기 이전은 쓰기 0 이전의 이전 쓰기입니다.

  • Write 0 이후에는 다른 쓰기가 발생하지 않았습니다.

세 멤버 복제본 세트에 대한 쓰기 작업의 타임라인입니다.
시간
이벤트
가장 최근 글
가장 최근 w: "대다수" 쓰기
t 0
기본 적용 쓰기 0
기본: 쓰기 0
보조 1: 쓰기 prev
보조 2: 쓰기 이전
기본: 쓰기 이전
보조 1: 쓰기 prev
보조 2: 쓰기 이전
t 1
보조 1은 쓰기 0을적용합니다.
기본: 쓰기 0
보조 1: 쓰기 0
보조 2: 쓰기 이전
기본: 쓰기 이전
보조 1: 쓰기 prev
보조 2: 쓰기 이전
2
보조 2 는 쓰기 0을 적용합니다.
기본: 쓰기 0
보조 1: 쓰기 0
보조 2: 쓰기 0
기본: 쓰기 이전
보조 1: 쓰기 prev
보조 2: 쓰기 이전
t 3
프라이머리는 세컨더리 1에 성공적으로 복제되었음을 알리고 클라이언트에 확인 메시지를 보냅니다.
기본: 쓰기 0
보조 1: 쓰기 0
보조 2: 쓰기 0
기본: 쓰기 0
보조 1: 쓰기 prev
보조 2: 쓰기 이전
t 4
주 서버가 보조 서버 2로복제가 성공했음을 인식합니다.
기본: 쓰기 0
보조 1: 쓰기 0
보조 2: 쓰기 0
기본: 쓰기 0
보조 1: 쓰기 prev
보조 2: 쓰기 이전
t 5
보조 1은 (정기적인 복제 메커니즘을 통해) 가장 최근의 w에 대한 스냅샷을 업데이트하라는 알림을 받습니다. "majority" 쓰기
기본: 쓰기 0
보조 1: 쓰기 0
보조 2: 쓰기 0
기본: 쓰기 0
보조 1: 쓰기 0
보조 2: 쓰기 이전
t 6
보조 2는 (정기적인 복제 메커니즘을 통해) 가장 최근의 w에 대한 스냅샷을 업데이트하라는 알림을 받습니다. "majority" 쓰기
기본: 쓰기 0
보조 1: 쓰기 0
보조 2: 쓰기 0
기본: 쓰기 0
보조 1: 쓰기 0
보조 2: 쓰기 0

그런 다음, 다음 표에는 "available" 읽기 고려가 있는 읽기 작업이 T 시점에 볼 수 있는 데이터 상태가 요약되어 있습니다.

세 멤버 복제본 세트에 대한 쓰기 작업의 타임라인입니다.
대상 읽기
시간 T
데이터 상태
기본
t 0이후
데이터는 쓰기 0을 반영합니다.
중고등 교육 1
t 1이전
데이터는 이전쓰기를 반영합니다.
중고등 교육 1
t 1이후
데이터는 쓰기 0을반영합니다.
중고등 교육 2
t 2이전
데이터는 이전쓰기를 반영합니다.
중고등 교육 2
t 2이후
데이터는 쓰기 0을반영합니다.
← readConcern "local"