Distributed systems and performance

The foundations chapter. Everything else in the book is an application of what is here: the latency ladder that makes every architecture decision a placement decision, the two formulas (Little's Law and the queueing multiplier) that turn capacity questions from intuition into arithmetic, the consensus protocols that run underneath etcd and Spanner and Kafka's KRaft, and the consistency vocabulary that candidates most often use imprecisely.

The depth signal in this area is not reciting Raft. It is knowing when you do not need consensus at all. Cassandra, Dynamo and S3 reach enormous scale by keeping consensus off the data path and using it only for metadata, leadership and configuration.

What this chapter covers

  • [todo] The latency numbers, and the derived facts worth instant recall
  • [todo] Back-of-envelope capacity math: a worked search-service sizing
  • [done] Little's Law and queueing
  • [todo] The Universal Scalability Law and the coherence term
  • [done] The tail at scale
  • [todo] Benchmarking discipline: what microbenchmarks lie about
  • [todo] Paxos: the two phases and the constraint that makes it safe
  • [todo] Raft: state, the five safety properties, pre-vote, membership change
  • [todo] The consistency ladder: linearizable, serializable, causal, session guarantees
  • [done] Write skew and snapshot isolation
  • [todo] Time: Lamport clocks, vector clocks, TrueTime, hybrid logical clocks
  • [todo] CRDTs: the catalog, real deployments, and the invariant they cannot save
  • [todo] Consistent hashing, jump hash, Maglev, rendezvous; resharding
  • [done] Idempotency and exactly-once

Source: §5.1, §40.