Advisory locks в PostgreSQL: распределённая блокировка без Redis, которая у вас уже есть
В PostgreSQL есть фича, про которую знают далеко не все, хотя она существует с незапамятных времён. Advisory locks — пользовательские блокировки, которыми управляет не БД, а ваше приложение. PostgreSQL только хранит их состояние и разруливает конкуренцию. А вы решаете, что именно заблокировать и когда отпустить. Зачем это нужно? Вы строите распределённую систему, несколько инстансов приложения работают с одной базой, и вам нужно гарантировать, что определённую операцию выполняет только один инстанс одновременно. Классический ответ — Redis с SETNX или Consul/ZooKeeper. Но если у вас уже есть PostgreSQL — зачем тащить ещё одну зависимость?
https://habr.com/ru/companies/otus/articles/1004230/
#postqresql #хранилище_данных #Data_Vault #архитектура_хранилища_данных #моделирование_данных #DWH #аналитические_системы #интеграция_данных #архитектура_данных
