Lessico IT › Database › Errore di serializzazione

Errore di serializzazione

Database Svenska → Aggiornato: 2026-10-02

L'errore restituito dal database quando, con isolamento SERIALIZABLE, rileva che le transazioni concorrenti non possono essere ordinate in un ordine seriale valido. Invece di ammettere un'anomalia, una transazione viene abortita («could not serialize access») e l'applicazione deve ritentare.

Il meccanismo: la Serializable Snapshot Isolation (SSI) di PostgreSQL lascia eseguire le transazioni in modo ottimistico sui loro snapshot MVCC e tiene traccia delle dipendenze di lettura/scrittura; se individua uno schema che violerebbe la serializzabilità (ad esempio un write skew), abortisce una delle transazioni con un errore di serializzazione. È quindi normale e previsto con SERIALIZABLE, non un bug. Conseguenza: l'applicazione DEVE avere un ciclo di retry che riesegue la transazione in caso di questo errore. Il vantaggio è la piena serializzabilità (senza anomalie sottili) senza lock pesanti, al prezzo di ritentativi in caso di alta contesa. Simile all'optimistic concurrency control.

← Torna al lessico