Why Did the Repair Disappear When Botie Read It Back?

Copies can disagree while an update is travelling. Define what a particular read must guarantee before deciding which replica may answer it.

15 sections · 4 questions · 1 coding challenge

1 / 15

Keeping a Service Usable When Copies Cannot Communicate

BOTIE

Dynamo made explicit choices about accepting operations and reconciling versions when replicas were unavailable. Gilbert and Lynch’s work on CAP explains why a replicated read/write service cannot guarantee both linearizable responses and a response to every request at a non-failing node under an arbitrary network partition.

A disconnected replica cannot discover which remote write completed. Returning its local value can preserve a response while violating the stronger read contract. Waiting or rejecting the operation preserves that contract at the expense of CAP availability for that request. This is a failure-time constraint, not a rule that every database must always choose two letters.

Sources for this history