Reference and Selective Reading
You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, more worked examples, or a deeper exercise lane.
Source Roles
| Source | Role | Why it is here |
|---|---|---|
| Designing Data-Intensive Applications (Kleppmann) | Primary teaching source | Strongest modern narrative on transactions and consistency. Chapters 7 (transactions) and 9 (consistency and consensus) are the primary source material for this module |
| Database System Concepts (Silberschatz et al.) | Classical rigor | Most rigorous textbook treatment of isolation formalism, lock-based protocols, multiversion schemes, and ARIES recovery |
| Database Internals (Petrov) | Implementation-focused support | Concrete view of WAL, 2PC failure modes, MVCC, and consistency models at the implementation level |
| Distributed Systems Concepts and Design (Coulouris et al.) | Canonical distributed view | Classical treatment of atomic commit, distributed transactions, and replicated data |
Read Only If Stuck
Cluster 1: ACID and the Single-Node Transaction
- DDIA: The meaning of ACID (part 1)
- DDIA: The meaning of ACID (part 2)
- DDIA: Single-object and multi-object operations (part 1)
- DDIA: Single-object and multi-object operations (part 2)
- Database System Concepts: Transaction concept
- Database System Concepts: Simple transaction model
- Database System Concepts: Transaction atomicity and durability
- Database System Concepts: Transactions as SQL statements
- Database Internals: Recovery
- Database Internals: Log semantics
- Database Internals: ARIES
- Database Internals: Buffer management
- Database System Concepts: Recovery and atomicity (part 1)
- Database System Concepts: Recovery algorithm (part 1)
- Database System Concepts: ARIES (part 1)
Cluster 2: Concurrency Anomalies
- DDIA: Weak isolation levels
- DDIA: Read committed
- DDIA: Snapshot Isolation and Repeatable Read (part 1)
- DDIA: Snapshot Isolation and Repeatable Read (part 2)
- DDIA: Preventing lost updates
- DDIA: Write skew and phantoms (part 1)
- DDIA: Write skew and phantoms (part 2)
- Database Internals: Read and write anomalies
- Database System Concepts: Transaction isolation
- Database System Concepts: Serializability (part 1)
- Database System Concepts: Serializability (part 2)
- Database System Concepts: Transaction isolation and atomicity
- Database System Concepts: Transaction isolation levels
- Database System Concepts: Implementation of isolation levels
- Database System Concepts: Weak levels of consistency in practice
Cluster 3: Implementing Isolation
- DDIA: Actual serial execution (part 1)
- DDIA: Actual serial execution (part 2)
- DDIA: Two-phase locking (part 1)
- DDIA: Two-phase locking (part 2)
- DDIA: Serializable Snapshot Isolation (part 1)
- DDIA: Serializable Snapshot Isolation (part 2)
- Database Internals: Optimistic concurrency control
- Database Internals: Lock-based concurrency control (part 1)
- Database Internals: Lock-based concurrency control (part 2)
- Database System Concepts: Lock-based protocols (part 1)
- Database System Concepts: Lock-based protocols (part 2)
- Database System Concepts: Deadlock handling (part 1)
- Database System Concepts: Multiple granularity (part 1)
- Database System Concepts: Insert, delete, predicate reads (part 1)
- Database System Concepts: Timestamp-based protocols (part 1)
- Database System Concepts: Validation-based protocols
- Database System Concepts: Multiversion schemes
- Database System Concepts: Snapshot isolation (part 1)
- Database System Concepts: Snapshot isolation (part 2)
- Database System Concepts: Snapshot isolation (part 3)
Cluster 4: Distributed Transactions
- DDIA: Distributed transactions and consensus
- DDIA: Atomic commit and two-phase commit (part 1)
- DDIA: Atomic commit and two-phase commit (part 2)
- DDIA: Distributed transactions in practice (part 1)
- DDIA: Distributed transactions in practice (part 2)
- Database Internals: Two-phase commit
- Database Internals: Cohort failures in 2PC
- Database Internals: Coordinator failures in 3PC
- Database Internals: Distributed transactions with Spanner
- Database Internals: Distributed transactions with Percolator
- Database Internals: Coordination avoidance
- Distributed Systems: Flat and nested distributed transactions
- Distributed Systems: Atomic commit protocols (part 1)
- Distributed Systems: Atomic commit protocols (part 2)
- Distributed Systems: Atomic commit protocols (part 3)
- Distributed Systems: Concurrency control in distributed transactions
- Distributed Systems: Distributed deadlocks (part 1)
- Database System Concepts: Distributed transactions
- Database System Concepts: Commit protocols (part 1)
- Database System Concepts: Commit protocols (part 2)
- Database System Concepts: Commit protocols (part 3)
Cluster 5: Consistency Models
- DDIA: Consistency guarantees
- DDIA: Linearizability
- DDIA: What makes a system linearizable (part 1)
- DDIA: What makes a system linearizable (part 2)
- DDIA: Relying on linearizability
- DDIA: Implementing linearizable systems
- DDIA: The cost of linearizability
- DDIA: Ordering and causality (part 1)
- DDIA: Ordering and causality (part 2)
- DDIA: Sequence number ordering (part 1)
- DDIA: Sequence number ordering (part 2)
- DDIA: Total order broadcast (part 1)
- Database Internals: Shared memory
- Database Internals: Ordering
- Database Internals: Linearizability
- Database Internals: Sequential consistency
- Database Internals: Causal consistency
- Database Internals: Session models
- Database Internals: Tunable consistency
- Database Internals: Strong eventual consistency and CRDTs
Optional Deep Dive
- DDIA: Byzantine faults - when you need to reason about actively malicious nodes, not just crashes.
- DDIA: Unreliable clocks - why timestamp-ordered concurrency control is dangerous without synchronized clocks.
- DDIA: Process pauses (part 1) - GC pauses breaking distributed-lock protocols.
- Database Internals: Two generals problem - impossibility that motivates the blocking nature of 2PC.
- Database System Concepts: Extended concurrency control protocols (part 1) - global snapshot isolation and related extensions.
- Distributed Systems: Transactions with replicated data (part 1) - canonical replicated-transaction treatment.
Concept-to-Source Map
| Primary concept | Best source if stuck | Why this source |
|---|---|---|
| ACID properties | DDIA: The meaning of ACID (part 1) | Most honest separation of the four letters |
| Atomicity and durability via WAL | Database Internals: ARIES | Implementation-level clarity |
| BASE vocabulary | Database Internals: Tunable consistency | Where BASE lives in modern systems |
| Dirty/lost/write anomalies | DDIA: Weak isolation levels | Best narrative introduction |
| Write skew and phantoms | DDIA: Write skew and phantoms (part 1) | The single best explanation |
| Isolation levels | Database System Concepts: Transaction isolation levels | Textbook ANSI mapping |
| Two-phase locking | DDIA: Two-phase locking (part 1) | Operational explanation |
| Snapshot isolation and MVCC | DDIA: Snapshot Isolation (part 1) | Clearest modern exposition |
| SSI | DDIA: SSI (part 1) | Rw-antidependency framed intuitively |
| 2PC | DDIA: Atomic commit and 2PC (part 1) | Best mental model of coordinator/participant |
| 3PC and Paxos Commit | Database Internals: Coordinator failures in 3PC | Compact analysis of 3PC's failure story |
| Sagas | DDIA: Distributed transactions in practice (part 2) | Honest take on where distributed transactions fail and sagas help |
| Linearizability | DDIA: Linearizability | Cleanest intuitive definition |
| Causal / eventual / session | DDIA: Ordering and causality (part 1) | Ties Lamport happens-before to the model |
| CAP and PACELC | DDIA: The cost of linearizability | Modern treatment that treats CAP honestly |