Serializability
Serializability is a transaction-isolation property under which the read results and writes of committed concurrent transactions are equivalent to some serial execution of those transactions.
The equivalent order need not preserve real-time precedence; strict serializability adds that constraint. This does not require executing transactions physically one at a time. PostgreSQL's Serializable mode can abort a transaction to prevent a serialization anomaly, so applications must handle retries. Neither the term nor a read option named serializable independently specifies durability. Matching final values alone is not enough to establish equivalence. Snapshot isolation can allow write skew across different rows.
Relations
- related
- linearizability, compare-and-swap, snapshot-isolation, write-skew
Citations
- Maurice P. Herlihy and Jeannette M. Wing. Linearizability: A Correctness Condition for Concurrent Objects. ACM TOPLAS 12(3), 1990, sections 2.2 and 3.3.
- PostgreSQL 18 documentation, section 13.2: Transaction Isolation.
- etcd v3.6 API guarantees: durability, strict serializability and operation completion.
- Storage consistency: ordering is not a transaction or a durability promise
- Hal Berenson et al. A Critique of ANSI SQL Isolation Levels. ACM SIGMOD 1995; MSR-TR-95-51, section 4.2.