CAP-Theorem
Problem
Zwei Datenbankknoten verlieren die Kommunikation miteinander.
Beide erhalten weiterhin Anfragen.
Jetzt stehen Sie vor einer grundlegenden Entscheidung:
Sollten beide weiter antworten, auch wenn sie anderer Meinung sind?
or:
Sollten einige Anfragen fehlschlagen, bis die Kommunikation zurückkehrt?
Lösung — CAP-Abwägung
CAP steht für:
Consistency (Konsistenz): Lesezugriffe zeigen den zuletzt abgeschlossenen Schreibzugriff.
Availability (Verfügbarkeit): Funktionsfähige Knoten beantworten Anfragen erfolgreich.
Partition tolerance (Partitionstoleranz): Das System bewältigt unterbrochene Kommunikation zwischen Knoten.
Während einer Netzwerkaufteilung bedeutet die Gewährleistung der Verfügbarkeit, potenziell unterschiedliche Antworten zu akzeptieren.
Eventual Consistency ist ein Umgang mit dieser Abwägung: Knoten beantworten weiterhin Anfragen und gleichen ihre Daten samt Konfliktauflösung ab, sobald die Verbindung wiederhergestellt ist.
Kerngedanke: Netzwerkpartitionen zwingen verteilte Systeme zu entscheiden, welche Garantie für betroffene Operationen wichtiger ist.