Advisory Locks

PostgreSQL 🔴 Senior

Definition

Verrous cooperatifs applicatifs geres par PostgreSQL. Contrairement aux verrous de table, ils n'ont de sens que pour l'application qui les utilise. Peuvent etre session-level ou transaction-level.

Analogie

Un panneau 'Occupe' sur une cabine : c'est l'application qui le respecte, pas la base qui bloque.

Exemple de code

-- Verrou au niveau session
SELECT pg_advisory_lock(42);
-- ... logique exclusive ...
SELECT pg_advisory_unlock(42);

Cas d'usage

Eviter les executions concurrentes de cron jobs ou de migrations sur la meme ressource logique.

Termes lies

#sgbd#interview#database#postgresql