DBAtlas · Atlas für Datenbankbetrieb

40001: serialization_failure

PostgreSQL

Was bedeutet das?

Unter der Isolationsstufe SERIALIZABLE oder REPEATABLE READ konnte die Transaktion wegen eines Konflikts mit parallelen Änderungen nicht serialisiert werden und wurde abgebrochen. Das ist erwartetes Verhalten, das die Datenkonsistenz schützt.

Ursache

Transaktionen, die gleichzeitig auf dieselben Daten zugreifen, lassen sich nicht in eine serialisierbare Reihenfolge bringen, Schreibkonflikte bei hoher Parallelität oder von SSI (Serializable Snapshot Isolation) erkannte gefährliche Abhängigkeiten.

Lösung

Das ist kein Bug, sondern ein erwartetes Signal: Wiederhole die Transaktion unverändert. Baue eine automatische Wiederholungslogik in die Anwendung ein. Um Konflikte zu verringern, verkürze Transaktionen und verwende eine niedrigere Isolationsstufe (READ COMMITTED), wenn die höhere nicht wirklich nötig ist. Gestalte das Design so, dass Konkurrenz um Hot Rows sinkt.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank