Storage & Databases

Isolation level

How much concurrent transactions can see of each other.


In plain terms

Read uncommitted < read committed < repeatable read < snapshot < serializable. Each blocks one anomaly the previous allowed.

Origin

The four "standard" levels (read uncommitted → serializable) come from ANSI SQL-92. Berenson, Bernstein, Gray, Melton, O'Neil, and O'Neil critiqued them in their famous 1995 paper, showing the spec admits more anomalies than people assume — that paper introduced "snapshot isolation."

Where it shows up in production
  • PostgreSQL Read Committed default; offers REPEATABLE READ (which is actually snapshot isolation) and proper SERIALIZABLE via SSI.
  • MySQL InnoDB REPEATABLE READ default — stronger than Postgres's but still admits phantoms.
  • Spanner & CockroachDB Default is strict serializable (the strongest commercial level).
On Semicolony
Sources & further reading
Found this useful?