Zurück zur Übersicht

Begriff

CAP Theorem

Distributed Systems Computer Science S3
2 Quellen 0 Lernpfade 0 Backlinks enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Das Grundgesetz der verteilten Systeme. Eric Brewer (Google) sagte 2000: "Du kannst nicht alles haben." Es gibt drei Wünsche:

  1. Consistency (Konsistenz): Alle Knoten sehen zur gleichen Zeit die gleichen Daten. (Jeder Read bekommt den letzten Write).
  2. Availability (Verfügbarkeit): Jeder Request bekommt eine Antwort (kein Timeout/Error), egal wer down ist.
  3. Partition Tolerance (Ausfalltoleranz): Das System läuft weiter, auch wenn das Netzwerkkabel durchschnitten wird (Split Brain). Das Theorem: Wähle zwei. (In einem verteilten System über Netzwerk musst du P wählen. Also wähle C oder A).
  • CP (Consistency/Partition): Wenn Netzwerk kaputt -> Fehler werfen, aber Daten sauber halten. (Banken, Redis, MongoDB default).
  • AP (Availability/Partition): Wenn Netzwerk kaputt -> Antwort geben ("Hier sind alte Daten"), aber niemals down gehen. (Cassandra, DNS, Amazon Warenkorb).

Merksatz: Ein Theorem, das besagt, dass ein verteiltes Datensystem von den drei Eigenschaften Konsistenz (C), Verfügbarkeit (A) und Partitionstoleranz (P) gleichzeitig nur zwei garantieren kann.


Quick-Check

  1. CA?
    Gibt es nicht in verteilten Systemen. Ein System, das nicht partitionstolerant ist (kein Netzwerk), ist eine einzelne Datenbank auf einem PC (Oracle). Sobald Netzwerk da ist, ist P unvermeidbar.
  2. Beweis?
    Gilbert & Lynch haben es 2002 formal bewiesen. Es ist mathematisch unmöglich.
  3. Relation zu BASE?
    BASE-Datenbanken wählen AP. ACID-Datenbanken wählen CP (oder CA im Single-Node-Fall).