Konsistenzmodelle und Eventual Consistency
Kurz: Konsistenzmodelle legen fest, welche Werte ein Lesezugriff in einem verteilten System sehen darf. Von „immer der neueste“ (stark) bis „irgendwann gleich“ (eventual).
Genauer: Je stärker die Garantie, desto mehr Abstimmung und Latenz. Schwächere Modelle sind schneller und verfügbarer, erfordern aber, dass die Anwendung mit veralteten oder widersprüchlichen Werten umgehen kann.
Im Detail
- Linearisierbarkeit: Jede Operation wirkt scheinbar an einem Zeitpunkt, alle sehen dieselbe Reihenfolge. Stärkste Garantie.
- Sequentielle Konsistenz: Alle sehen dieselbe Reihenfolge, aber nicht unbedingt in Echtzeit.
- Kausale Konsistenz: Ursache vor Wirkung wird eingehalten.
- Eventual Consistency: Ohne neue Schreibvorgänge konvergieren alle Replikate irgendwann.
- Session-Garantien: Read-your-writes, Monotonic reads.
- Praxis: Bankbuchung braucht stark, Like-Zähler genügt eventual.
Siehe auch: CAP-Theorem, CRDTs: konfliktfrei replizierte Datentypen