Chapter 26 — Further Reading

Official reference (everyone)

  • PostgreSQL Docs: "Transactions" (tutorial) and "Concurrency Control → Transaction Isolation." The authoritative description of the isolation levels, the phenomena each prevents, and PostgreSQL's specific behavior (Read Committed default; Repeatable Read prevents phantoms). https://www.postgresql.org/docs/current/transaction-iso.html
  • PostgreSQL Docs: "Concurrency Control → MVCC." How multi-version concurrency control works — snapshots, visibility, and why readers/writers don't block.

Foundations (🔬 CS Student)

  • The ANSI SQL isolation levels & "A Critique of ANSI SQL Isolation Levels" (Berenson et al.). The classic paper clarifying the phenomena and levels — illuminating if you want rigor.
  • Ramakrishnan & Gehrke / Silberschatz — transaction & concurrency chapters. Serializability theory, schedules, and recovery.
  • Martin Kleppmann, Designing Data-Intensive Applications — "Transactions" chapter. Outstanding modern treatment of isolation levels and their real-world anomalies (write skew, etc.). Highly recommended.

Practical (💻 Developer · 🏗️ DBA)

  • "PostgreSQL isolation levels explained with examples" — two-session demonstrations of each phenomenon (the Group C exercises, expanded).
  • "Serializable isolation and retry loops" — how to structure application code for serialization failures.
  • "Keep transactions short" — why long transactions hurt (snapshots, VACUUM, locks) — ties to Chapters 27–28.

Reference (this book)

  • Chapter 27 — Concurrency Control: locks, deadlocks, SELECT FOR UPDATE, lost updates — the mechanics under isolation.
  • Chapter 28 — Internals: the WAL (durability) and VACUUM (MVCC cleanup).
  • Chapter 13 — Data Modification: transactions as your "undo button."

Do, don't just read

  • Run the phenomena yourself with two psql sessions (Exercises C): observe a non-repeatable read under Read Committed, then prevent it under Repeatable Read.
  • Wrap a multi-step operation atomically and prove a mid-way failure rolls back everything.
  • Reproduce Case Study 2: run several totals under Read Committed while another session commits changes, see them disagree, then fix with Repeatable Read.

Next: Chapter 27 — Concurrency Control: locks, deadlocks, and safe concurrent modification.