읽기 고려가 "available"인 쿼리는 데이터가 대부분의 복제본 세트 멤버에 기록되었다는 보장 없이(즉, 롤백될 수 있음) 인스턴스의 데이터를 반환합니다.
샤드 클러스터
"available"읽기 고려는 파티션에 대한 더 큰 허용 오차를 제공합니다."available"읽기 고려가 포함된 쿼리는 올바른 샤드가 쿼리를 수신했는지 확인하기 위한 검사가 필요하지 않습니다.네트워크 파티션이 있는 이벤트 이러한 쿼리는 네트워크 파티션 이 발생하기 전에 적절하다고 간주되는 샤드 로 라우팅됩니다. 사용할 수 없는 서버의 일관성 보장 을 기다리지 않습니다. 샤드 가 청크 마이그레이션 을 진행 중인 경우
"available"를 사용하는 쿼리는 고아 문서를 반환할 수 있습니다.경고
mongos는 읽기 고려가"available"인 쿼리가 올바른 샤드로 라우팅되도록 보장하지 않습니다. 쿼리를 수신하는 샤드는 데이터를 반환하지만, 이 샤드는 요청된 데이터의 신뢰할 수 있는 소유자가 아닐 수 있습니다.이로 인해 쿼리에서 부정확하거나 예기치 않은 결과가 반환될 수 있습니다.
샤딩되지 않은 컬렉션(독립 실행형 배포서버 또는 복제본 세트 배포서버의 컬렉션 포함)의 경우
"local"및"available"읽기 고려는 동일하게 동작합니다.
읽기 고려 수준에 관계없이 노드의 최신 데이터는 시스템에 있는 데이터의 최신 버전을 반영하지 않을 수 있습니다.
가용성
읽기 고려 "available" 는 이며 인과적으로 일관적인 세션 및 트랜잭션과 함께사용할 수 없습니다 .
예시
세 멤버로 구성된 복제본 세트에 0을 쓰는 쓰기 작업의 다음 타임라인을 고려해 보십시오.
참고
단순화를 위해 이 예시에서는 다음과 같은 상황을 가정합니다.
쓰기 0 이전의 모든 쓰기가 모든 구성원에 성공적으로 복제되었습니다.
쓰기 이전은 쓰기 0 이전의 이전 쓰기입니다.
Write 0 이후에는 다른 쓰기가 발생하지 않았습니다.
시간 | 이벤트 | 가장 최근 글 | 가장 최근 w: "대다수" 쓰기 |
|---|---|---|---|
t 0 | 기본 적용 쓰기 0 | Primary: Write 0 Secondary 1: Write prev Secondary 2: Write prev | Primary: Write prev Secondary 1: Write prev Secondary 2: Write prev |
t 1 | 보조 1은 쓰기 0을적용합니다. | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write prev | Primary: Write prev Secondary 1: Write prev Secondary 2: Write prev |
티 2 | 보조 2 는 쓰기 0을 적용합니다. | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write prev Secondary 1: Write prev Secondary 2: Write prev |
t 3 | 프라이머리는 세컨더리 1에 성공적으로 복제되었음을 알리고 클라이언트에 확인 메시지를 보냅니다. | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write 0 Secondary 1: Write prev Secondary 2: Write prev |
t 4 | 주 서버가 보조 서버 2로복제가 성공했음을 인식합니다. | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write 0 Secondary 1: Write prev Secondary 2: Write prev |
t 5 | 보조 1은 (정기적인 복제 메커니즘을 통해) 가장 최근의 w에 대한 스냅샷을 업데이트하라는 알림을 받습니다. "majority" 쓰기 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write prev |
t 6 | 보조 2는 (정기적인 복제 메커니즘을 통해) 가장 최근의 w에 대한 스냅샷을 업데이트하라는 알림을 받습니다. "majority" 쓰기 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 | Primary: Write 0 Secondary 1: Write 0 Secondary 2: Write 0 |
그런 뒤, 다음 표에는 "available" 읽기 우려를 가진 읽기 작업이 T 시점에 볼 수 있는 데이터 상태가 요약되어 있습니다.
대상 읽기 | 시간 T | 데이터 상태 |
|---|---|---|
기본 | t 0이후 | 데이터는 쓰기 0을 반영합니다. |
중고등 교육 1 | t 1이전 | 데이터는 이전쓰기를 반영합니다. |
중고등 교육 1 | t 1이후 | 데이터는 쓰기 0을반영합니다. |
중고등 교육 2 | t 2이전 | 데이터는 이전쓰기를 반영합니다. |
중고등 교육 2 | t 2이후 | 데이터는 쓰기 0을반영합니다. |