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 replication topologies, log formats, partitioning, and failover
Database Internals (Petrov)Implementation-focused supportUse for consistency models, failure detection, leader election, and tunable consistency at the implementation level
Distributed Systems: Concepts and Design (Coulouris et al.)Classical distributed-systems framingUse for group communication, gossip protocols, and replicated-data fundamentals
Database System Concepts (Silberschatz et al.)Relational-replication viewUse for textbook treatments of partitioning and replication in traditional RDBMS contexts

Resource Map by Cluster

Cluster 1: Why Replicate and Partition

NeedBest local chunkWhy
Replication overview and goalsDDIA: Chapter 5 ReplicationKleppmann's canonical opening on the three replication goals
Partitioning overviewDDIA: Chapter 6 PartitioningBest narrative introduction to what partitioning buys and costs
CAP honest framingDDIA: The cost of linearizabilityTreats CAP as a runtime choice, not a static label
Partition-tolerance and majoritiesDDIA: The truth is defined by the majorityStrong framing of quorum as the basis of consistency
Tunable consistency and PACELCDatabase Internals: Tunable consistencyThe most honest treatment of "CAP is a spectrum"
Partitioning in relational systemsDatabase System Concepts: Data partitioningTextbook framing that complements DDIA

Cluster 2: Replication Topologies

NeedBest local chunkWhy
Single-leader setup and syncDDIA: Synchronous versus asynchronous replicationCleanest presentation of single-leader mechanics
New-follower bootstrapDDIA: Setting up new followersOperational flow for a green replica
Multi-leader motivationsDDIA: Use cases for multi-leader replicationWhen to reach for multi-leader
Multi-leader conflictsDDIA: Handling write conflictsThe conflict-resolution menu
Multi-leader topologiesDDIA: Multi-leader replication topologiesAll-to-all, ring, star tradeoffs
Leaderless writes under failureDDIA: Writing to the database when a node is downQuorum and coordinator mechanics
Quorum limitationsDDIA: Limitations of quorum consistencyWhy W+R>N is necessary but not sufficient
Sloppy quorums and hinted handoffDDIA: Sloppy quorums and hinted handoffThe availability extension and its cost
Detecting concurrent writesDDIA: Detecting concurrent writes (part 1)Version vectors and conflict surfacing
Gossip architectureDistributed Systems: Gossip architecture (part 1)Classical case study of eventually-consistent replication

Cluster 3: Replication Mechanics

NeedBest local chunkWhy
Replication log formatsDDIA: Implementation of replication logsThe authoritative side-by-side
CDC from logical logsDDIA: Change data captureShows why logical replication is the CDC substrate
Replication-lag anomaliesDDIA: Problems with replication lagEvery anomaly named and explained
Monotonic-reads guaranteeDDIA: Monotonic readsCleanest explanation of the guarantee and its mechanism
Causality and session guaranteesDDIA: Ordering and causality (part 1)Connects anomaly vocabulary to happens-before
Session consistency modelsDatabase Internals: Session modelsConcrete session guarantees in running systems

Cluster 4: Partitioning Strategies

NeedBest local chunkWhy
Range partitioningDDIA: Partitioning by key rangeWhen range beats hash
Hash partitioningDDIA: Partitioning by hash of keyWhen hash beats range
Hotspot mitigationDDIA: Skewed workloads and relieving hot spotsApplication-level salting and why schemes alone cannot help
Local secondary indexesDDIA: Partitioning secondary indexes by documentCanonical scatter-gather explanation
Global secondary indexesDDIA: Partitioning secondary indexes by termCanonical term-partitioned explanation
Rebalancing strategiesDDIA: Strategies for rebalancingFixed, dynamic, proportional schemes compared
Rebalancing automationDDIA: Operations: automatic or manual rebalancingThe "should we do this automatically" question
Relational-style partitioningDatabase System Concepts: Data partitioningTextbook treatment of data partitioning
Skew handling (textbook)Database System Concepts: Dealing with skew (part 1)Classical skew-handling techniques
Database partitioning overviewDatabase Internals: Database partitioningImplementation-level framing

Cluster 5: Practical Systems

NeedBest local chunkWhy
Coordination servicesDDIA: Membership and coordination servicesHow ZooKeeper/etcd fit the cluster
Majority-based truthDDIA: The truth is defined by the majorityThe core of safe failover
Linearizable implementationsDDIA: Implementing linearizable systemsWhy consensus-based coordinators exist
Process pauses and safetyDDIA: Process pauses (part 1)Why clock-based leases are unsafe
Failure detectionDatabase Internals: Chapter 9 Failure detectionHow "is the leader dead?" is actually answered
Phi-accrual failure detectorDatabase Internals: Phi-accrual failure detectorCassandra's failure detection
Leader electionDatabase Internals: Chapter 10 Leader electionProtocol-level treatment
Database Internals replication chapterDatabase Internals: Chapter 11 Replication and ConsistencyBridge into consistency models

External Resources (Validated)

These URLs were validated at the time of writing. Use them for primary-source material beyond the books.

Jepsen Analyses (Kyle Kingsbury)

Real-world correctness tests that expose replication and consistency violations under fault injection. The best training for "what goes wrong under a partition."

Martin Kleppmann Blog

Official System Documentation

Primary Literature

Exercise Support Chunks

Use these when the concept pages are understood but you need volume:

Use Rules

  • If a concept feels shaky, go to DDIA Chapter 5 or 6 for the corresponding section first; they are the module's spine.
  • If DDIA's narrative is clear but you want an operational picture, open Database Internals.
  • Open one chunk for one concept gap. Do not read chapter sequences by default.
  • Every primary concept in this module maps to at least one book chunk above. If you cannot find the mapping, re-read the concept page -- the gap is probably there, not in the source.
  • Use Jepsen reports only after you have internalized the module vocabulary. They are unforgiving of vague thinking.