PostgreSQL : isolation et invariants concurrents
Définir l’invariant qui doit survivre aux lectures et écritures concurrentes. Choisir la contrainte, le verrouillage ou le niveau d’isolation selon l’anomalie.
Prévoir la reprise d’une transaction entière quand l’isolation retourne un conflit récupérable. Garder les effets externes cohérents avec la transaction.
Vérification
Rejouer deux transactions concurrentes en inversant leur ordre : l’invariant tient et un conflit attendu est traité sans doubler l’effet.