Der Deep Dive von Evgenii Ivanov auf The Consensus führt mit lauffähigem Python-Code durch Quorum-Replikation, beginnend mit Thomas' Mehrheitsabstimmung für replizierte Datenbanken von 1979 und Giffords Erweiterung aus demselben Jahr, die auch Reads über Quoren leitete. Da sich je zwei Mehrheiten überschneiden, können konfligierende Updates nicht beide akzeptiert werden; bei n Repliken toleriert das System floor(n/2) Ausfälle — darum sind Replikationsfaktoren meist ungerade: Drei und vier Repliken tolerieren beide nur einen Ausfall.

Der Artikel baut ein einfaches Quorum-Register in Python (Klassen Register, Replica, TGCluster), bei dem Writes einen Zeitstempel aus logischer Uhr plus Replik-ID tragen und Reads den höchsten Zeitstempel aus einer Mehrheit liefern. Dann demonstriert er den klassischen Fehler, bekannt aus Designing Data-Intensive Applications: Ein verzögerter Write kann dazu führen, dass ein Reader den neuen Wert sieht, ein späterer aber noch den alten. Es gibt kein Commit-Konzept — eine Replik exponiert einen Wert sofort bei Ankunft, grob vergleichbar mit Read Uncommitted —, der einfache Algorithmus ist also nicht linearisierbar.

Der ABD-Algorithmus (Attiya, Bar-Noy, Dolev, 1990er) behebt das mit einer zweiten Read-Phase: Nach dem Finden des neuesten Werts schreibt der Reader ihn in ein Quorum zurück, bevor er ihn zurückgibt — spätere Reads können nicht mehr zurückspringen. Die MWABD-Erweiterung von Lynch & Shvartsman (1996) ergänzt Multi-Writer-Unterstützung über eine Zeitstempel-Abfragephase vor dem Schreiben. Der Preis ist ein zusätzlicher Roundtrip; der Artikel stellt dem leaderbasierte Protokolle wie Raft oder Multi-Paxos gegenüber, die nach der Leaderwahl mit einem Roundtrip auskommen.

Zwei harte Grenzen folgen. Erstens ist ABD kein Compare-and-Swap: Repliken sind monoton in Zeitstempeln, ein veralteter Write kann also trotzdem eine Mehrheit an ACKs sammeln und wird still ignoriert — im Code demonstriert, wo ein verspäteter Write 'gelingt' und verschwindet. CAS hängt von einer globalen Ordnungsentscheidung über den aktuellen Wert ab, die ABD nie trifft; ein CAS1/CAS2-Szenario zeigt, wie CAS2 mit einem Wert erfolgreich ist, den CAS1 verleugnet hat. Zweitens ist ABD kein Konsens: Es kollabiert die Vergangenheit auf den neuesten Zeitstempel und kann nach Abstürzen zwar den aktuellen Registerwert rekonstruieren, aber nicht zwischen committeten Log-Einträgen und partiellen Writes unterscheiden. Murat Demirbas' Urteil wird zitiert: ABD sei 'memoryless and hedonistic'.

Das praktische Echo ist Cassandra: Sein blockierendes Read Repair spiegelt ABDs Write-Back für monotone Quorum-Reads, während CAS-artige Operationen Lightweight Transactions auf Paxos-Basis brauchen — dieselbe Grenze in Produktionsform. Abschließend empfiehlt der Artikel das Buch 'Quorum Systems With Applications to Storage and Consensus' für die formale Behandlung.