Получить всю коллекцию Mongo с / без блокировки?

#mongodb

#mongodb

Вопрос:

При запуске экземпляр моей службы должен загрузить всю коллекцию Mongo. Не спрашивай почему. Я ожидаю, что он будет 100 mb > x < 500 mb иметь большой размер и содержать не более 1M легких документов.

Каков наилучший способ его реализации, обеспечивающий согласованность в отношении доступности и задержки?

Мой план состоит в том, чтобы использовать функции find() и watch() одновременно. Первый даст мне итератор по всем документам в коллекции, а второй уведомит меня об изменениях, которые могли произойти с данными за это время.

Но есть ли лучший способ?

P.S. Могут ли проблемы с чтением / записью помочь мне здесь?

Ответ №1:

Я бы попробовал использовать проблему чтения транзакций и снимков.

Комментарии:

1. Почему? В чем выгода, что может пойти не так в противном случае?

2. Вы спрашиваете, потому что не понимаете проблему чтения моментальных снимков или потому, что вы вообще не читали об этом?

3. Я прошу аргументы.

4. Ваш подход find watch по своей сути колоритен, что, я думаю, очевидно. Проблема чтения моментального снимка не является.

5. Но разве транзакция снимок не сделали бы противоположное и не обменяли бы доступность, задержку на согласованность?