Когда mongodb меняет события потока, очищенные от потока - PullRequest
1 голос
/ 04 июня 2019

Я понимаю, что когда любой отслеживаемый объект mongo изменяется / добавляется, mongo регистрирует эти изменения в потоках изменений, которые приложения могут прослушивать.

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

Я не смог найти такие данные на их официальной странице: https://docs.mongodb.com/manual/changeStreams/

1 Ответ

2 голосов
/ 05 июня 2019

Потоки изменений используют оплог как основу своих данных. Таким образом, «максимальная емкость» зависит от размера вашего оплога (см. SERVER-13932 ).

Пока вы следите за потоком изменений, вы должны получать уведомления об изменениях в режиме реального времени. В этом случае размер оплога не является проблемой, поскольку вы потребляете изменения, как они происходят.

Однако поток изменений может быть возобновлен с использованием маркера возобновления , который указывает на конкретную временную метку в журнале операций. Когда оплог перевернулся, этот токен возобновления становится недействительным. Попытка возобновить поток изменений с использованием недопустимого токена возобновления приведет к ошибке:

resume of change stream was not possible, as the resume token was not found. {_data: <the invalid resume token>}

На данный момент все зависит от приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...