Пессимистическая блокировка заранее ограничивает конкурирующие изменения, оптимистическая проверяет версию при записи. Для дефицитных слотов важен атомарный запрет двойного бронирования, независимо от выбранного подхода.
Что такое оптимистическая и пессимистическая блокировки и когда их лучше применять в системе записи на консульские услуги?
Пессимистическая блокировка заранее ограничивает конкурирующие изменения, оптимистическая проверяет версию при записи. Для дефицитных слотов важен атомарный запрет двойного бронирования, независимо от выбранного подхода.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Пессимистическая блокировка заранее ограничивает конкурирующие изменения, оптимистическая проверяет версию при записи. Для дефицитных слотов важен атомарный запрет двойного бронирования, независимо от выбранного подхода.
При редких конфликтах UPDATE ... WHERE version=:old_version позволяет обнаружить изменение и предложить повтор. При высокой конкуренции короткая транзакция с блокировкой строки слота может быть проще. Уникальные ограничения и условное изменение вместимости закрепляют инвариант в БД. Нельзя держать lock во время заполнения формы или внешней оплаты: для этого нужен резерв со сроком. Отмена, истечение и подтверждение должны быть идемпотентными.