Как обрабатывать параллельные обновления одного и того же документа MongoDB? - PullRequest
0 голосов
/ 15 января 2019

Весеннее загрузочное приложение с MongoDB CrudRepository.
У меня есть несколько потоков, обновляющих один и тот же документ параллельно. Каждый поток будет загружать документ по идентификатору, вносить изменения и попытайтесь сохранить его.

Чтобы преодолеть поведение «последних побед», которое может переопределять изменения, сделанные первым потоком, я реализовал простой механизм управления версиями, где поток может сохранять свои изменения только в том случае, если он пытается сохранить последнюю версию, в противном случае выдается исключение.

Это устраняет несоответствия данных, которые могут быть вызваны множественными записями, но я теряю работу. Нет механизма повторных попыток для потока, который пытался сохранить документ с устаревшей версией.

Есть ли общие решения этой проблемы? Я не уверен, какой подход мне нужен для решения этой проблемы.

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