DBAtlas · Атлас эксплуатации баз данных

136 CappedPositionLost: Capped collection position lost

MongoDB

Что это значит?

Курсор, читающий capped-коллекцию (фиксированного размера) — обычно tailable-курсор, — потерял свою позицию. Документ, на котором он был позиционирован, больше не существует, так как коллекция циклически перезаписала его.

Почему возникает?

Когда capped-коллекция заполнена, старейшие документы автоматически удаляются и перезаписываются; tailable-курсор, следящий за коллекцией, в которую пишут быстрее, чем он успевает читать, отстаёт, и его позиция перезаписывается. Встречается у потребителей, отслеживающих capped-структуры, такие как oplog.

Как исправить

Перепозиционируйте курсор (откройте новый tailable-курсор) и снова начните отслеживание; перехватывайте эту ошибку в приложении и обновляйте чтение. Если первопричина — потребитель, не успевающий за скоростью записи: увеличьте размер capped-коллекции/oplog или ускорьте потребителя. Для надёжного отслеживания изменений по возможности используйте change streams вместо tailable-курсоров.

Открыть в DBAtlas →

Ещё по этой СУБД