Storage & Databases

Snapshot isolation

Each transaction sees a consistent snapshot taken at start.


In plain terms

Postgres, Oracle default. Prevents dirty reads, non-repeatable reads, phantoms — but allows write-skew anomalies.

Origin

Berenson et al., "A Critique of ANSI SQL Isolation Levels," 1995 — the same paper that introduced the concept by name. Predates SSI (Serializable Snapshot Isolation) by Cahill, Röhm, Fekete in 2008.

Where it shows up in production
  • PostgreSQL REPEATABLE READ is actually snapshot isolation (admits write-skew). SERIALIZABLE adds SSI on top.
  • Oracle SERIALIZABLE in Oracle is actually SI by default — a common source of cross-database surprise.
  • CockroachDB / FoundationDB Use snapshot semantics underneath their stronger commercial guarantees.
On Semicolony
Sources & further reading
Found this useful?