Что такое Advisory Locks (рекомендательные блокировки) в PostgreSQL и как их использовать для бизнес-оркестрации?

Advisory locks блокируют логический ключ, выбранный приложением, а не автоматически строки таблицы. Для короткой бизнес-операции удобна блокировка до конца транзакции.

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

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

Advisory locks блокируют логический ключ, выбранный приложением, а не автоматически строки таблицы. Для короткой бизнес-операции удобна блокировка до конца транзакции.

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

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

Advisory locks блокируют логический ключ, выбранный приложением, а не автоматически строки таблицы. Для короткой бизнес-операции удобна блокировка до конца транзакции.

Например, внутри BEGIN выполните SELECT pg_advisory_xact_lock(42, 123);: первая часть ключа может обозначать тип операции, вторая — объект. Затем проверьте условия и выполните изменения; commit или rollback освобождает блокировку.

pg_try_advisory_xact_lock позволяет не ждать занятый ключ. Все конкурирующие участники должны соблюдать один протокол, иначе защиты нет. Не держите транзакцию во время долгого внешнего вызова. Session-level locks требуют явного освобождения и особенно осторожного применения с пулом соединений. Идемпотентность и ограничения БД всё равно нужны.

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

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

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

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

Подробнее