Échec de sérialisation
L'erreur qu'une base renvoie quand, sous l'isolation SERIALIZABLE, elle détecte que des transactions concurrentes ne peuvent pas être ordonnées en une séquence valide. Plutôt que de laisser passer une anomalie, elle annule une des transactions (« could not serialize access ») et charge l'application de réessayer.
Mécanique : la Serializable Snapshot Isolation (SSI) de PostgreSQL laisse les transactions s'exécuter de façon optimiste sur leurs propres instantanés MVCC, tout en suivant les dépendances de lecture/écriture entre elles ; si elle détecte un motif qui briserait la sérialisabilité (par exemple une anomalie d'écriture), elle annule l'une des transactions avec un échec de sérialisation. C'est donc un comportement normal et attendu sous SERIALIZABLE — pas un bug. Conséquence : l'application doit prévoir une boucle de nouvelle tentative pour rejouer la transaction sur cette erreur. Le gain : une sérialisabilité complète, sans anomalie subtile, sans verrous lourds — au prix de tentatives répétées sous forte contention. Un mécanisme proche du contrôle de concurrence optimiste.