246 SnapshotUnavailable: SnapshotUnavailable
MongoDB의미
서버가 해당 시점에 대한 일관된 스냅샷을 제공할 수 없어 요청한 snapshot read concern(readConcern: snapshot)으로 읽기를 수행할 수 없었다. 보통 읽기 타임스탬프가 충분히 진행되지 않았거나 뒤처진 것과 관련이 있다.
원인
readConcern 'snapshot'을 사용하지만(주로 multi-document 트랜잭션에서) 요청한 atLeast/at 타임스탬프에 대한 일관된 뷰가 아직 없는 경우다. 예: 새로 생성된 컬렉션/인덱스, 카탈로그 변경, 복제 지연. 이 경우 서버가 읽기를 거부한다.
해결 방법
보통 일시적이다. 잠시 후 작업을 재시도한다(드라이버의 transient transaction error 재시도 메커니즘이 이를 처리한다). 최근 DDL(컬렉션/인덱스 생성)을 실행했다면 그 이후에 트랜잭션을 시작한다. 복제 지연과 노드 상태를 확인한다. 스냅샷 읽기가 실제로 필요하지 않다면 더 적합한 readConcern을 선택한다.
같은 데이터베이스의 다른 항목
- 28 PathNotViableCannot use the part of the path to traverse the element (경로의 일부로 요소를 탐색할 수 없음)
- 216 ElectionInProgressElectionInProgress
- 225 TransactionTooOldTransactionTooOld
- 257 TransactionTooLargeTransactionTooLarge
- 276 IndexBuildAbortedIndexBuildAborted
- 86 IndexKeySpecsConflictIndexKeySpecsConflict
- 166 CommandNotSupportedOnViewCommandNotSupportedOnView