IT-словарь › Базы данных › Рекомендательная блокировка (Advisory lock)

Рекомендательная блокировка (Advisory lock)

Базы данных Svenska → Обновлено: 2026-10-17

Возможность PostgreSQL: блокировки, смысл которых задаёт приложение и которые не привязаны к строкам или таблицам, — инструмент координации в распределённых системах.

Вызов выглядит так: SELECT pg_advisory_lock(12345). База лишь учитывает блокировку и ничего не делает с данными — семантику определяет приложение. Типичные случаи: единственный исполнитель cron-задачи (один под берёт блокировку, остальные получают отказ; если под погиб, блокировка снимается сама), блокировка ресурсов на уровне приложения, выбор лидера.

От блокировки строки она отличается тем, что не связана с конкретными данными. Есть двухключевая форма pg_advisory_lock(class_id, obj_id) для пространств имён; блокировка бывает сеансовой (снимается при отключении) или транзакционной. Аналоги — Redis SETNX, аренда в etcd, эфемерные узлы ZooKeeper. Классический приём: использовать уже имеющийся PostgreSQL, а не разворачивать Redis только ради блокировок.

← Назад к словарю