Kausale Konsistenz (Causal Consistency) ist ein Konsistenzmodell für verteilte Systeme, das die Ursache-Wirkungs-Reihenfolge von Operationen über alle Repliken hinweg erhält. Sind zwei Operationen kausal verknüpft — eine beeinflusst die andere —, müssen alle Knoten sie in derselben Reihenfolge beobachten. Nebenläufige, unabhängige Operationen dürfen dagegen in unterschiedlicher Reihenfolge erscheinen. Dieses Modell gilt als das stärkste, das bei Netzwerkpartitionen weiterhin verfügbar bleibt.

Kausalität formal: Happened-Before

Die Grundlage lieferte Leslie Lamport mit seinem wegweisenden Aufsatz Time, Clocks, and the Ordering of Events in a Distributed System (Communications of the ACM, 1978). Die „Happened-Before"-Relation („geschieht vor") ordnet Ereignisse: Nachrichten folgen ihrer Absendung, und die Relation ist transitiv. Physische Uhren sind dafür ungeeignet, weil sie driften — Lamport führte deshalb logische Uhren (Lamport-Clocks) ein, die nur die kausale Reihenfolge zählen. Darauf bauen Versionsvektoren (Vector Clocks) auf, mit denen Systeme den Kausalitätsstand jeder Replik verfolgen.

COPS: Kausalität ohne Vector Clocks

Ein Meilenstein der Praxis ist COPS (Clusters of Order-Preserving Servers) von Wyatt Lloyd, Michael J. Freedman, Michael Kaminsky und David G. Andersen. Das System wurde 2011 auf der ACM SOSP vorgestellt (Don't Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS). COPS verfolgt explizit die Abhängigkeiten jeder Schreiboperation: Eine Replik wendet einen Schreibvorgang erst an, wenn alle kausal früheren Vorgänge vorhanden sind. Interessant ist, dass Vector Clocks allein nicht genügen — ohne die Prüfung vor dem Anwenden bliebe die Kausalität verletzt.

Eigenschaften

  • Verfügbar bei Partitionen: Mahajan et al. (2011) zeigten formal, dass kausale Konsistenz das stärkste Modell ist, das sich mit Verfügbarkeit in fehleranfälligen Netzen vereinbaren lässt — im Gegensatz zu Strong Consistency, die bei einer Partition blockiert oder Fehler liefert.
  • Stärker als Eventual: Eventual Consistency garantiert nur spätere Angleichung, aber keine Reihenfolge — kausale Konsistenz erhält dagegen die Reihenfolge kausal verknüpfter Operationen.
  • Session-Garantien als Spezialfall: Die Garantie Read-Your-Writes und die übrigen Session-Garantien wie Writes Follow Reads sind kausale Konsistenz für eine einzelne Sitzung.

Praxis: MongoDB

MongoDB führt seit Version 3.6 (2017) causally consistent sessions ein. Eine clusterweite logische Uhr (Operation Time) wird an jede Operation angehängt; der Treiber reicht den Stand über die Sitzung weiter, sodass Reads niemals hinter eigene Writes zurückfallen. Ein 2019 veröffentlichtes SIGMOD-Papier dokumentiert das Design der clusterweiten logischen Uhr. Ähnliche Mechanismen stecken in sozialen Netzwerken und Chats, wo Kommentare erst nach dem Beitrag erscheinen dürfen, den sie beantworten.

Abgrenzung und Einordnung

Kausale Konsistenz liegt im Spektrum zwischen Weak Consistency und Strong Consistency: stärker als bloßes Konvergieren, schwächer als Linearisierbarkeit. Sie ist ein Kernbaustein moderner verteilter Datenspeicher — auch Cluster-Datenbanken und Datenbank-Replikation setzen sie praktisch um. Grundlagen der Systemfamilie: Verteilte Systeme.