Как соотносятся пессимистическая и оптимистическая блокировки со строчными и табличными блокировками PostgreSQL? Что такое LOCK TABLE?

Оптимистическая и пессимистическая блокировки — стратегии согласования, а row/table locks — механизмы БД. Оптимистический UPDATE с проверкой версии тоже использует физические блокировки при записи.

Короткий ответ

Что ответить на собеседовании

Оптимистическая и пессимистическая блокировки — стратегии согласования, а row/table locks — механизмы БД. Оптимистический UPDATE с проверкой версии тоже использует физические блокировки при записи.

Подробный разбор

Ответ с пояснениями

Оптимистическая и пессимистическая блокировки — стратегии согласования, а row/table locks — механизмы БД. Оптимистический UPDATE с проверкой версии тоже использует физические блокировки при записи.

Пессимистический подход может заранее взять SELECT ... FOR UPDATE на нужные строки. LOCK TABLE явно запрашивает табличный lock выбранного режима до конца транзакции; не каждый режим запрещает обычное чтение. PostgreSQL также автоматически берёт табличные locks при DML, поэтому «строчный» и «табличный» не взаимоисключающие описания. Режимы выбирают по конфликтам; широкая блокировка может остановить несвязанные операции. Locks не держат во время долгого внешнего I/O.

Источник: www.postgresql.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее