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

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

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

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

11 ответов

7 просмотров

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

а зачем 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

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

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

Подскажите пожалуйста, как лучше решить проблему. Есть 9 квадратов и еще 1 прямоугольник на фотографиях. Нужно, исходя из того, что изображено на прямоугольнике, выбрать один ...
Никита
2
вопрос: кто как решает вопрос с динамической подгрузкой скриптов для отдельных страниц с включенным turbo router?
Sergei Toroptsev
25
Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
Друзья, за кем?
Magic
12
Кто что использует для создания приложения/бэка обработки видеопотока в реальном времени? FFmpeg или GStreamer? По моему небольшому опыту, первый лучше и гибче. Но почему-то...
Georgy Makarov
5
Это что теперь, любой бот сможет принимать платежи без ебли с юр лицами?
Lencore
8
Всем привет! Слушаем rtsp пото с одной камеры приходят серые кадры как будто не прогруженные (не все, но их большинство) в чем может быть проблема?
Evgeniy
4
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
речь про Индусов или мелкомягких?
Akcium Сергей
2
Не догоняю немного каким боком тут эппл Вот есть веб (мини) апп, который по факту веб сайт, просто в телеге веб вью и если там оплата, то нежно вот эти приседания?
e\\/gen
7
Карта сайта