Databases · Cluster

Transactions and MVCC

Isolation levels and version visibility.

  1. 01 Conflict Serializability and the Precedence Graph Test How read-write conflicts between concurrent transactions form a directed graph, why a cycle means no equivalent serial order exists, and where the test stops being useful. foundational · Nov 10, 2023
  2. 02 The Read Phenomena Ladder and What Each Isolation Level Still Permits Why the four SQL isolation levels are defined by the anomalies they forbid rather than the guarantees they give, and which anomalies fall through the definitions. foundational · Aug 1, 2024
  3. 03 First-Committer-Wins Validation in Snapshot Isolation How snapshot isolation validates writes against concurrent committers, why a write-write check is sufficient for its own guarantees, and the serializability it leaves on the table. foundational · May 10, 2025
  4. 04 Heap Tuple Headers, Transaction Identifiers, and Visibility Rules How a row version records the transaction that created it and the one that deleted it, and how a reader decides whether that version belongs in its snapshot. intermediate · Jul 19, 2025
  5. 05 Undo Records and Reconstructing Older Row Versions How engines that keep only the current row in the heap rebuild earlier versions from before-images in undo segments, and what that indirection costs on the read path. intermediate · Jan 19, 2023
  6. 06 When a Snapshot Is Taken and How Commit Order Is Assigned The choice between transaction-start and first-statement snapshots, the in-progress list that defines the read view, and why a single commit counter is a shared resource. intermediate · Sep 8, 2025
  7. 07 Vacuum Horizons, Dead Version Collection, and Table Bloat How an engine decides that a row version can never be seen again, why one old snapshot stalls collection for an entire database, and what freezing does to the identifier space. intermediate · Dec 3, 2024
  8. 08 Dangerous Structures: Detecting Serialization Cycles Under Snapshot Isolation Why snapshot isolation needs only two edge types to find every nonserializable cycle, how pivot detection works, and what the false positive rate costs. advanced · Apr 28, 2025
  9. 09 Gap Locks and Next-Key Locking in an Index-Ordered Store How a locking engine prevents phantoms by locking the space between index entries, why the locks are taken on index records rather than rows, and what the resulting deadlocks look like. advanced · Nov 24, 2023
  10. 10 Secondary Indexes Under MVCC: Version Chasing and Index Write Amplification Why every row version needs its own index entries, how a lookup follows pointers through superseded versions, and what a non-covering index costs in a versioned store. advanced · Oct 8, 2026