Всем привет! Пытаюсь разобраться, как работает MongoDB в кластере. Имеется

два web сервиса (две копии одного и того же сервиса), которые общаются с MongoDB: writeConcern: 1, readConcern: local, read preference: primary.

Клиент (браузер) шлет два последовательных запроса (второй ждет окончание первого). Первый запрос на запись, второй на чтение.

Может ли быть ситуация (не рассматриваем кейсы выбора нового лидера), когда второй запрос не получит изменения первого запроса? К примеру, как отработает в кейсе, когда первый запрос прилетит на первый web сервис, а второй - на второй?

11 ответов

24 просмотра

Если ждет ответа, то такого не случится

а зачем 2 запроса? 1 не может вернуть что записал?

Никита-Ильин Автор вопроса
Vladyslav Hrehul
а зачем 2 запроса? 1 не может вернуть что записал?

Можно, это следующий путь решения вопроса (более правильный). Скорее более академический вопрос у меня.

Никита-Ильин Автор вопроса
Nick
Если ждет ответа, то такого не случится

А клиенты не используют какую-то версию базы, которую используют при каждом запросе? Насколько я понимаю, там используется MVCC

Никита Ильин
А клиенты не используют какую-то версию базы, кото...

Какая разница если у вас запросы не одновременные

Никита-Ильин Автор вопроса
Nick
Какая разница если у вас запросы не одновременные

Не может быть ситуации когда второй клиент ещё не обновил локальный номер версии, с которой он работает, к нему прилетел запрос на чтение и он прочитал информацию с использованием более старой версии? Не смог найти на официальных доках, как используется версия в операциях чтения

Никита Ильин
Не может быть ситуации когда второй клиент ещё не ...

Mvcc работает на уровне базы а не клиента, ваш вопрос лишен смысла. И в лучшем случае вы сами менеджерите стейт в приложении, а значит знаете его поведение и должны суметь ответить на свой вопрос

Никита-Ильин Автор вопроса
Nick
Mvcc работает на уровне базы а не клиента, ваш воп...

А как-то клиентские сессии используют этот номер версии?

Никита Ильин
А как-то клиентские сессии используют этот номер в...

Вы путаете клиентскии сессии в приложении и сессии при работе с базой

https://www.mongodb.com/docs/manual/reference/read-concern/#real-time-order

Никита-Ильин Автор вопроса
yopp 💉💉
https://www.mongodb.com/docs/manual/reference/read...

Именно real time order читать? У меня другие параметры read / write concern

Похожие вопросы

Обсуждают сегодня

Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
всем привет помогите пожалуйста используя CDN (GCP) у игроков из вьетнама загружается конфиг (размер 999 bytes) загружается 5 и более минут н а других CDN сервисах такой пробл...
Andrew Krw.
1
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
Просто по очереди выпиливаешь на ручной маппинг? По методу за раз
Andrii Kurdiumov
7
И? Все равно глазами проверять надо каждое поле
Andrii Kurdiumov
4
Ну есть у нас десяток компаний которым надо. Остальным то зачем?
Andrii Kurdiumov
4
что значит рваность? фргаментированость?? для лох эт нормальное состояние. там сжатие редкое явление
Mikhail Lomonosov
1
Приветствую. А не подскажете какие ограничения есть на использования api метода setMyName ? Несколько раз сменил имя бота и получил бан на 2 месяца на смену имени.
Slick Slack
8
Всем привет! Взялся портировать модули на 18 версию, лезет _logger.log(log_level, 'no translation language detected, skipping translation %s', frame, stack_info=True) А чт...
Max Lit
3
Доброе утро, а кто то делал Google аналитику через php ? curl_setopt($ch, CURLOPT_NOSIGNAL, true); Это должно быть async без ожидания ответа. Вообще php нормально с таким с...
Max Dubovsky
9
Карта сайта