@Maxwell012

Как использовать уровень изоляции Serialization с большими запросами?

Есть бекенд который работает с финансами, я установил уровень изоляции Serialization для всех транзакций (PostgreSQL DB). Транзакции открывается в начале запроса и закрывается в самом конце. Проблема заключается в запросах с большим количеством затрагиваемых сущностей, то есть, например у нас есть запрос на создание ордера, в этом запросе происходит чтение и запись в несколько таблиц, что по логике вещей, увеличивает вероятность получения ошибки сериализации.
Как будет правильно обробатывать транзакции которые читаю и вносят изменения в несколько таблиц?
Возможно уже есть какие-то устаканившиеся решения для это проблемы?
  • Вопрос задан
  • 232 просмотра
Пригласить эксперта
Ответы на вопрос 1
@GLeBaTi
Использовать очередь конкурирующих запросов.
У меня, например, часто конфликтовали запросы на изменение поля `Project.LastModificationDate` когда несколько пользователей одновременно сохраняют его. Я создал очередь по `ProjectId` для всех сохранений. И таких видов очередей у меня несколько.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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