REPLICATION · SELECT · DISCONNECT · OBSERVE

Quorum reads and writes

Inspect the replica sets and partial effects behind each operation.

Fixed membership · one sequential writer · explicit responder sets

Operation history

Green left borders mark actual last-write responders; blue right borders mark actual last-read responders. Offline nodes retain their data.

Last forty operations, including failed attempts
OperationRespondersThresholdOutcomeVersion/value

Observe actual replica contents

This workbench maintains a value and a version at every replica. One coordinator issues sequential writes and assigns increasing version numbers, including attempts that do not meet the acknowledgement threshold. Choose the write targets and currently reachable replicas, then write a value. Every reachable target stores the new version. The operation is acknowledged only when the number of responding targets reaches W. A failed write does not roll back replicas that already accepted it. Read selected replicas contacts exactly the read targets that are reachable and returns the highest stored version only if at least R targets respond. Otherwise the read fails and returns no value.

Set the membership and thresholds

Replicas N chooses between one and seven fixed members. Changing N starts a fresh experiment because existing versions belong to the previous membership. Read threshold R and Write threshold W are bounded by N, and changing either affects the next operation without clearing stored data. Value to write accepts an integer from zero through nine hundred ninety-nine. Each replica has three separate checkboxes: Reachable controls whether it can respond; Write target controls the next write set; Read target controls the next read set. Taking a replica offline preserves its stored value. Bringing it back does not synchronize it automatically. Reset values clears versions and history while retaining your selected sets and thresholds.

Reproduce a stale read

Load disjoint sets installs five replicas, W two and R two, with write targets zero and one and read targets three and four. Write value forty-two, then read. The write is acknowledged but the read returns the initial empty version because the sets do not overlap. Switch replica one into the read set, keep replica three selected and clear replica four. Read again: the highest returned version is now one, with value forty-two. This does not show that every configuration with R plus W less than or equal to N is always stale. It shows that disjoint successful sets are possible; your actual selections determine whether this operation sees the write.

Test the intersection boundary

Load majority overlap installs N five, W three and R three. Write targets are zero, one and two; read targets are two, three and four. Write and then read: replica two connects these operations. The minimum possible overlap of successful sets is max of zero and R plus W minus N, which is one in this configuration. The highlighted sets and textual evidence report actual responding replicas, not just requested counts. With fixed membership, sequential completed writes, retained replica versions and highest-version reads, a successful later read cannot miss the latest completed write when R plus W exceeds N. That conditional statement is narrower than a general strong-consistency guarantee.

Expose the partial-write counterexample

Load partial-write example creates five empty replicas with thresholds three and target sets zero, one, two for writing and zero, three, four for reading. Write value ten to establish a completed version. Mark replicas one and two unreachable, change the value to twenty and write again. Only replica zero updates, so acknowledgement fails while its new version remains stored. Restore reachability and read zero, three and four: you observe version two from the failed attempt. Now read one, two and three: you observe version one again. Both reads meet threshold three. The history demonstrates that quorum intersection alone does not supply atomic writes, monotonic reads or linearizability around incomplete operations.

Read the evidence and limits

The last-operation report distinguishes selected targets, responders, unavailable targets, acknowledgement, returned value and the latest acknowledged version. The operation table preserves up to forty operations; the cap requires a reset instead of silently dropping evidence. This is a direct manipulation experiment, so operations apply immediately when clicked rather than hiding results behind a timed animation. There are no concurrent writers, retries, message reordering, clock-based conflict resolution, read repair, hinted handoff, anti-entropy or durable-storage failures. The coordinator version counter is a stated single-writer assumption, not knowledge secretly obtained by querying all replicas. Failed writes remain observable by design. Use this model to reason about sets and partial effects, not to predict database latency or to certify a production consistency level.

Views are my own and do not represent any employer, past or present.

Search