Sobes.tech
Middle

Was ist der CAP-Satz?

sobes.tech KI

Antwort von AI

Der CAP-Satz (auch bekannt als Brewer’s Theorem) besagt, dass es in einem verteilten Computersystem unmöglich ist, gleichzeitig zu gewährleisten:

  • Konsistenz (Consistency): Alle Knoten sehen die gleichen Daten zur gleichen Zeit. Jede Leseoperation erhält die zuletzt geschriebenen Daten.
  • Verfügbarkeit (Availability): Jede Anfrage erhält eine nicht-leere Antwort, unabhängig vom Zustand anderer Knoten. Das System ist immer für Lese- und Schreiboperationen verfügbar.
  • Partitionstoleranz (Partition Tolerance): Das System funktioniert weiter, trotz des Verlusts der Verbindung zwischen Knoten (Netzwerkpartitionen).

Unter Netzwerkpartitionen ($P$) muss das System zwischen Konsistenz ($C$) und Verfügbarkeit ($A$) wählen.

  • CA-System: Geht davon aus, dass keine Netzwerkpartitionen vorliegen. Bei deren Auftreten wird das System entweder unzugänglich oder inkonsistent. Beispiele: klassische relationale Datenbanken mit synchroner Replikation im lokalen Netzwerk.
  • CP-System: Opfert die Verfügbarkeit zugunsten der Konsistenz während einer Netzwerkpartition. Wenn ein Knoten keine Verbindung zur Mehrheit hat, antwortet er nicht auf Anfragen, um die Datenkonsistenz zu garantieren. Beispiele: Zookeeper, etcd, verteilte Systeme, die Konsensprotokolle wie Paxos oder Raft verwenden.
  • AP-System: Opfert die Konsistenz zugunsten der Verfügbarkeit während einer Netzwerkpartition. Das System antwortet weiterhin auf Anfragen, kann aber veraltete oder konfliktbehaftete Daten liefern. Die eventual consistency wird später erreicht. Beispiele: DynamoDB, Cassandra, MongoDB (standardmäßig in einigen Konfigurationen).

Der CAP-Satz gilt für verteilte Datenspeichersysteme. In der Praxis sind Kompromisse notwendig, und es gilt, das Modell zu wählen, das am besten zu den spezifischen Anforderungen der Anwendung passt.