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
psqlsessions (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.