Skip to main content

Learning Resources

This module is populated from the local chunked books in library/raw/semester-06-databases-distributed/books. Use this page as a source map, not as an instruction to read everything.

Source Stack

BookRoleHow to use it in this module
Designing Data-Intensive Applications (Kleppmann)Primary teaching sourceDefault escalation for every primary concept. Chapters 7 and 9 are mandatory chunks for this module
Database System Concepts (Silberschatz et al.)Classical concurrency-control supportUse for formal definitions of isolation, lock-based protocols, timestamp ordering, multiversion schemes, and ARIES recovery
Database Internals (Petrov)Implementation-level supportUse for WAL mechanics, MVCC implementation, 2PC/3PC edges, and consistency-model summaries close to real systems
Distributed Systems Concepts and Design (Coulouris)Canonical distributed-transactions supportUse for classical 2PC/3PC coverage, concurrency control in distributed transactions, and replicated-data transactions

Resource Map by Cluster

Cluster 1: ACID and the Single-Node Transaction

NeedBest local chunkWhy
ACID intuitionDDIA: The meaning of ACID (part 1)Best skeptical treatment of each letter
ACID formalismDatabase System Concepts: Transaction conceptTextbook definitions with examples
Atomicity and durability mechanicsDatabase System Concepts: Transaction atomicity and durabilityClean statement of the machinery
Single-object vs multi-objectDDIA: Single-object and multi-object operations (part 1)What ACID actually promises about scope
WAL mechanicsDatabase Internals: Log semanticsImplementation-level view of the WAL rule
ARIES recoveryDatabase Internals: ARIESConcise operational description of ARIES
ARIES rigorDatabase System Concepts: ARIES (part 1)Full textbook treatment of the three phases
BASE contextDatabase Internals: Tunable consistencyWhere BASE shows up in modern systems

Cluster 2: Concurrency Anomalies

NeedBest local chunkWhy
Weak isolation overviewDDIA: Weak isolation levelsBest introduction to why anomalies exist
Dirty reads and dirty writesDDIA: Read committedWhat RC actually prevents
Lost updateDDIA: Preventing lost updatesThe five standard preventions
Read skew (non-repeatable)DDIA: Snapshot Isolation and Repeatable Read (part 1)SI framed as read-skew prevention
Write skew and phantomsDDIA: Write skew and phantoms (part 1)The anomaly most commonly missed
Anomaly catalogDatabase Internals: Read and write anomaliesCompact list with definitions
Isolation levels (textbook)Database System Concepts: Transaction isolation levelsClean ANSI-level definitions
Isolation levels (implementation)Database System Concepts: Implementation of isolation levelsHow engines actually deliver each level

Cluster 3: Implementing Isolation

NeedBest local chunkWhy
2PL essentialsDDIA: Two-phase locking (part 1)Operational introduction
2PL edge casesDDIA: Two-phase locking (part 2)Deadlocks, predicate locks, cost
2PL (textbook)Database System Concepts: Lock-based protocols (part 1)Formal lock modes and protocols
Deadlock handlingDatabase System Concepts: Deadlock handling (part 1)Detection and prevention approaches
Lock-based CC (implementation)Database Internals: Lock-based concurrency control (part 1)Real-engine view
SI operationalDDIA: Snapshot Isolation and Repeatable Read (part 2)MVCC mechanics DDIA-style
Multiversion schemesDatabase System Concepts: Multiversion schemesTextbook multiversion formalism
Snapshot isolation (rigor)Database System Concepts: Snapshot isolation (part 1)Berenson-era definition and contrasts
Optimistic CCDatabase Internals: Optimistic concurrency controlSSI's immediate conceptual ancestor
SSIDDIA: Serializable Snapshot Isolation (part 1)Cleanest explanation of rw-antidependencies

Cluster 4: Distributed Transactions

NeedBest local chunkWhy
2PC overviewDDIA: Atomic commit and two-phase commit (part 1)Best modern treatment
2PC pitfallsDDIA: Atomic commit and two-phase commit (part 2)Blocking, heuristics, in-doubt
2PC practiceDDIA: Distributed transactions in practice (part 1)XA, message brokers, real integration
2PC cohort failuresDatabase Internals: Cohort failures in 2PCParticipant-side recovery paths
3PC (textbook)Database Internals: Coordinator failures in 3PCWhere 3PC helps and where it breaks
2PC (distributed systems)Distributed Systems: Atomic commit protocols (part 1)Classical distributed-systems treatment
3PC (distributed systems)Distributed Systems: Atomic commit protocols (part 3)Formal 3PC coverage
Distributed CCDistributed Systems: Concurrency control in distributed transactions2PL / timestamp ordering across nodes
Spanner as referenceDatabase Internals: Distributed transactions with SpannerModern commit backed by consensus
Saga backgroundDDIA: Distributed transactions in practice (part 2)Kleppmann's honest take on distributed transactions
Coordination avoidanceDatabase Internals: Coordination avoidanceWhen you can skip coordination entirely

Cluster 5: Consistency Models

NeedBest local chunkWhy
Consistency overviewDDIA: Consistency guaranteesThe map of the territory
LinearizabilityDDIA: LinearizabilityCleanest available intuitive definition
Linearizable systemsDDIA: Implementing linearizable systemsHow to actually achieve linearizability
Cost of linearizabilityDDIA: The cost of linearizabilityCAP connection and latency analysis
Linearizability (textbook)Database Internals: LinearizabilityAlternate exposition
Sequential consistencyDatabase Internals: Sequential consistencyThe model one step weaker than linearizable
Causal consistencyDDIA: Ordering and causality (part 1)Happens-before and causal ordering
Causal consistency (textbook)Database Internals: Causal consistencyCompact causal-consistency definition
Session guaranteesDatabase Internals: Session modelsBayou's four guarantees
Strong eventual and CRDTsDatabase Internals: Strong eventual consistency and CRDTsA practical convergence model

Exercise Support Chunks

Use these when concept pages are understood but fluency is weak:

External Resources (Validated, Read If Pointed Here)

The module links into specific external posts from concept pages. All validated as of the most recent curation pass.

Use Rules

  • For every primary concept, the local book chunk is the escalation. Reach for DDIA first.
  • If DDIA is too terse, go to Database System Concepts for the rigorous version or Database Internals for the implementation view.
  • Distributed Systems Concepts and Design is the canonical reference for the classical 2PC/3PC presentation; use it when you need the formal textbook treatment.
  • Open one chunk per gap. Do not drift into whole chapters.
  • External links are targeted: when a concept page says "external," it means the chunk does not cover that angle well enough.