Definition: Formen der Eventual Consistency

Als Eventual Consistency bezeichnen wir im Kontext verteilter Systeme die Eigenschaft, dass alle Knoten eines Systems nach verstreichen eines zunächst unbekannten Zeitfensters den selben Datenstand erreichen, vorausgesetzt, dass keine neuen Aktualisierungen vorgenommen werden.

Die Konsistenz der Daten wird also “über die Zeit” garantiert, zu einem gegebenen Zeitpunkt können verschiedene Knoten jedoch unterschiedliche Versionen der Daten haben.

Konkrete Ausprägungen des Konzeptes umfassen:

  • Causal Consistency:
    • Eine stärkere Form der Eventual Consistency, bei der Kausalzusammenhänge zwischen Operationen beibehalten werden.
    • Haben wir in einem Chat : Essen?, worauf : Ja und : Nein, so kann die Reihenfolge Essen; Ja; Nein oder Essen; Nein; Ja auftreten, aber nie bspw. Ja; Nein; Essen.
  • Read-your-writes: Stellt sicher, dass ein Nutzer immer die Ergebnisse seiner eigenen Schreiboperationen sieht. Hat er beispielsweise auf seinem PC ein Posting verfasst, dann sieht er dieses auch auf seinem Smartphone.
  • Session Consistency: Stellt Read-your-writes Innerhalb einer Session sicher.
  • Monotonic Reads: Hat ein Nutzer bereits eine neue Version der Daten erhalten, so wird er nie wieder ältere Versionen der Daten erhalten.
  • Monotonic Writes: Führt ein Nutzer mehrere Updates durch, wird sichergestellt, dass sie in der Reihenfolge angewendet werden, in der sie durchgeführt wurden.