246 SnapshotUnavailable: SnapshotUnavailable
MongoDBЧто это значит?
Чтение с запрошенным read concern snapshot (readConcern: snapshot) выполнить не удалось, так как сервер не может предоставить согласованный снимок на этот момент времени. Обычно связано с меткой времени чтения, которая ещё недостаточно продвинулась или отстала.
Почему возникает?
Используется readConcern 'snapshot' (в основном в многодокументных транзакциях), но согласованное представление для запрошенной метки времени atLeast/at ещё недоступно; например, из-за недавно созданной коллекции/индекса, изменения каталога или отставания репликации. В этом случае сервер отклоняет чтение.
Как исправить
Обычно это временно; повторите операцию после короткой паузы (механизм повтора драйвера для временных ошибок транзакций это покрывает). Если вы недавно выполняли DDL (создание коллекции/индекса), начинайте транзакцию после него. Проверьте отставание репликации и состояние узлов. Если snapshot-чтение на самом деле не нужно, выберите более подходящий 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