Strong Consistency (starke Konsistenz) ist die stärkste Konsistenzgarantie für verteilte Systeme: Nach Abschluss einer Schreiboperation liefert jede spätere Leseoperation den neuesten Wert. Das System verhält sich, als gäbe es nur eine einzige Kopie der Daten – alle Knoten sehen denselben Zustand zur selben Zeit (Ein-Kopien-Äquivalenz, Single Copy Equivalence).
Linearisierbarkeit als formale Basis
Die formale Grundlage stammt von Maurice Herlihy und Jeannette Wing (Paper Linearizability: A Correctness Condition for Concurrent Objects, ACM TOPLAS 1990). Eine Operation ist linearisierbar, wenn sie an einem einzigen Punkt zwischen Aufruf und Antwort zu wirken scheint (dem Linearisierungspunkt) und dieser Punkt die Echtzeit-Reihenfolge aller Operationen respektiert. Strong Consistency in der Replikation bedeutet: Die replizierten Objekte sind linearisierbar.
Abgrenzung: Serialisierbarkeit und strengere Modelle
Die Serialisierbarkeit verlangt nur, dass parallele Transaktionen einer seriellen Reihenfolge entsprechen; eine Echtzeit-Ordnung wird nicht gefordert. Linearisierbarkeit ist strenger, weil sie zusätzlich die Echtzeit-Ordnung beachtet, gilt aber für einzelne Objekte. Erst die strikte Serialisierbarkeit kombiniert beides. Google Spanner geht mit External Consistency auf Basis der TrueTime-Uhr sogar noch einen Schritt weiter.
So erzeugen Systeme Strong Consistency
- Raft- und Paxos-Replikation mit einem Leader: Alle Writes laufen über den Leader, Reads entweder ebenfalls oder mit Read-Index-Roundtrip.
- Quorum-Konfigurationen mit R+W größer als N: Lese- und Schreibquoren überlappen sich, jede Read sieht den letzten Write.
- Koordinationsdienste wie ZooKeeper und etcd, die auf Konsens aufbauen.
- DynamoDB Strongly Consistent Reads und Spanner als verwaltete Dienste.
Kosten und Abwägungen
Starke Konsistenz kostet Latenz: Jede Write braucht eine Konsens-Entscheidung, und Reads können nicht von beliebigen Repliken bedient werden. Im CAP-Theorem ist Strong Consistency die C-Seite – bei einer Netzwerkpartition entscheidet sich das System gegen die Verfügbarkeit. Systeme am anderen Ende des Spektrums, etwa mit Eventual Consistency, akzeptieren vorübergehend veraltete Daten, um schneller zu antworten. Verteilte Transaktionen setzen starke Konsistenz auch über mehrere Knoten hinweg um; lange Prozesse über viele Services steuert dagegen oft das Saga-Muster mit Kompensation statt globaler Atomarität.
Zusammenfassung
- Strong Consistency: jede Read sieht die neueste Write, als gäbe es nur eine Kopie.
- Formale Basis: Linearisierbarkeit (Herlihy & Wing 1990).
- Umsetzung: Konsens-Replikation und Quorum-Overlap; Kosten: Latenz.
Verwandte Grundlagen: Sharding, Datenbank-Replikation, Hochverfügbarkeit.