Serializability
Summary: The strongest isolation level, which guarantees that the result of concurrent transactions is the same as if they had run one at a time.
Sources: chapter7
Last updated: 2026-04-17
Serializable isolation is usually regarded as the strongest isolation level. It guarantees that even though transactions may execute in parallel, the end result is the same as if they had executed one at a time, serially, without any concurrency (source: chapter7).
Implementation Approaches
Actual Serial Execution
The simplest way of avoiding concurrency problems is to remove the concurrency entirely: to execute only one transaction at a time, in serial order, on a single thread. This is used in systems like Redis and VoltDB (source: chapter7).
Two-Phase Locking (2PL)
For several decades, this was the only viable option for serializability. In two-phase-locking, writers don’t just block other writers; they also block readers, and vice versa.
Serializable Snapshot Isolation (SSI)
A more recent algorithm (first described in 2008) that provides full serializability but has only a small performance penalty compared to snapshot isolation. It uses an optimistic approach, allowing transactions to proceed and only aborting them if a conflict is detected at commit time (source: chapter7).