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