Keeping multiple copies of data alive so that no single server failure loses anything is one of the oldest jobs in distributed systems. The hard part is making those copies agree — a client should never see a stale value just because a replica is a step behind.
Most replication protocols solve agreement through voting among replicas, with all the coordination complexity that entails. Chain replication, introduced by Renesse and Schneider in 2004, takes a radically different approach: arrange the replicas in a line, route every write through the line from head to tail, and let reads be answered only by the tail.
The result is strong consistency — as strong as reading from a single server — with a protocol so simple you can sketch it on a napkin. The trade-off is that write latency grows linearly with chain length, but for many workloads that is a price worth paying for the clarity and correctness guarantees you get in return.
Comments
Loading comments...