11. Classic design problemsKey-value store
Key-value store
A distributed key-value store is a database with the simplest possible interface, put a value under a key and get it back, spread across many machines so it can hold more data and survive failures. Systems like Dynamo and Cassandra place keys on a hash ring (consistent hashing), so each machine owns a slice and adding a machine only moves a small share of keys. Each key is copied to several replicas, and reads and writes wait for a quorum, some majority of those replicas, which lets you trade consistency against speed and availability. The interesting part is everything that happens when replicas disagree or go down: hinted handoff, read repair and background syncing keep the copies converging.
In this lesson: Reuses the ring and quorum sandbox.