Вопрос проверяет понимание блокировок на уровне базы данных и сценариев, где важна строгая согласованность.
Pessimistic locking — это подход, при котором данные блокируются сразу при чтении. Другие транзакции не могут изменить эти данные, пока блокировка не снята. Это предотвращает конфликты, но снижает производительность. Такой подход используется, когда вероятность конфликтов высока. Он чаще применяется в критичных бизнес-операциях.
Pessimistic locking делает ставку на безопасность данных, жертвуя частью производительности.
Pessimistic locking — это механизм конкурентного доступа, при котором запись или чтение данных сопровождается блокировкой на уровне базы данных.
Перед перечислением важно понимать, что блокировки удерживаются до конца транзакции.
Транзакция читает запись с блокировкой
База данных блокирует строку
Другие транзакции ждут освобождения блокировки
После commit или rollback блокировка снимается
Гарантированная согласованность данных
Отсутствие конфликтов при сохранении
Снижение параллелизма
Возможные deadlock
Повышенная нагрузка на БД
Pessimistic locking стоит использовать в сценариях с высокой вероятностью конфликтов и критичностью целостности данных.