CAP-Theorem

Das Akronym CAP steht für die englischsprachigen Begriffe Consistency (Konsistenz), Availability (Verfügbarkeit) und Partition Tolerance (Ausfalltoleranz). Die Erkenntnisse des CAP-Theorems spielen bei verteilten Datenbanksystemen eine zentrale Rolle. Und die verteilten Datenbanksysteme selbst stellen eine Basistechnologie der meisten NoSQL-Systeme dar, weil sich mittlerweile die Erkenntnis durchgesetzt hat, dass die im Web2.0-Zeitalter zu verarbeitenden Datenmengen und die zu bedienenden Anwenderzahlen nur noch auf der Basis dynamisch skalierbarer ("scale-up") Rechner-/Servernetze realisieren lassen.

Eric A. Brewer hat im Jahr 2000 die CAP-Erkenntnisse noch als Vermutung formuliert, die dann 2002 von Gilbert und Nancy Lynch als das CAP-Theorem bewiesen werden konnten.

Definition der Begriffe

  • Consistency meint die Konsistenz der gespeicherten Daten. In verteilten Systemen mit replizierten Daten muss sichergestellt sein, dass nach Abschluss einer Transaktion auch alle Replikate des manipulierten Datensatzes aktualisiert werden.
  • Availability meint Verfügbarkeit im Sinne akzeptabler Antwortzeiten. Die Frusttoleranz bei Wartezeiten auf Anfrageergebnissen ist bei kaufwilligen Kunden deutlich niedriger als bei Mitarbeitern, die ihr Arbeitstempo einfach dem der Anwendung anpassen. Untersuchungen großer Internet-Handelskonzerne zeigen, dass langsame Seiten die Kunden ganz schnell zu anderen Anbietern wechseln lassen. Bei E-Commerce-Anwendungen ist die Antwortzeit als elementare und äußerst kritische Anforderung zu bewerten und insbesondere auch Lastspitzen einzukalkulieren.
  • Partition Tolerance meint die Ausfalltoleranz der Rechner-/Servernetze. Das gesamte System muss stabil laufen unabhängig davon, ob ein Server geplant ausfällt (Wartung, Herausnehmen aus Altersgründen) oder ungeplant (Absturz aus technischem Defekt oder aufgrund von Softwarefehlern) oder ob neue Server ins Netz eingefügt werden. Auch der Ausfall einer Kommunikationsverbindung muss verkraftet werden, ohne dass die Anwendungen bzw. die Anwender etwas davon bemerken. Damit Daten auch nach Ausfall eines Servers vorhanden sind, werden sie repliziert auf verschiedenen Servern gespeichert.

Definition des Theorems

In verteilen Systemen sind die drei Anforderungen nach Konsistenz (Consistency), Verfügbarkeit (Availability), Ausfalltoleranz (Partition Tolerance) nicht vollständig vereinbar und nur maximal zwei von dreien sind erreichbar.

Relationale und NoSQL-Ansichten auf das CAP-Theorem
Relationale und NoSQL-Ansichten auf das CAP-Theorem

Für jede Anwendung mit ihren spezifischen Anforderungen muss daher individuell entschieden werden, ob sie als eine CA-, CP-, AP-Applikation zu realisieren ist.

  • RDBMS sind im Bereich der CA/CP-Anwendungen einzuordnen. Konsistenz ist bei den relationalen Systemen oberstes Postulat. Sie wird mittels des relationalen Transaktionskonzepts und den ACID-Eigenschaften? implementiert. Den Anforderungen nach Ausfalltoleranz und Verfügbarkeit wird vorrangig durch sehr hochwertige und sehr leistungsfähige Hardware genüge getan.
  • Währenddessen rückt bei den NoSQL-Systemen die Konsistenz sehr in den Hintergrund. AP-Applikationen stellen hier die Hauptanwendungen dar. Für Internet-Anwendungen stehen die Postulate "immerwährender" Verfügbarkeit und "grenzenloser" Skalierbarkeit im Vordergrund. Hinsichtlich der Konsistenz wurde die Idee des Eventually Consistent entwickelt mit dem Konsistenzmodell BASE.

Quellen:

  • Brewer, E.A.: "Towards Robust Distributed Systems", Folien zur Keynote des 19. ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing, Portland, Oregon, USA, 2000
  • Brown, J.: "Brewer's CAP Theorem", 11.01.2009, Stand: 25.05.2011
  • Gilbert, S., Lynch, N.: "Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web-Services", ACM Transactions on Computer Systems, 2002
  • Edlich, Friedland, Hampe, Brauer: „NoSQL – Einstieg in die Welt der nichtrelationalen Web2.0- Anwendungen“, Hanser-Verlag, 2010, ISBN 978-3-446-42355-8
  • Oracle: "Technical Comparision of Oracle Database vs. IBM DB2 UDB: Focus on Performance", Oracle White Paper, Februar 2002

Weiterführende Literatur:

  • Frey, M.: „Etablierte Datenmodelle der NoSQL-Familie und ihre spezifischen Eigenschaften im Kontext von Cloud-Datenbanken“, Bachelorarbeit, FH Köln, Institut für Informatik, 08/2010

Weiterführende Links:

Kategorie: Neue DB-Entwicklungen , Grundlagen,NoSQL, C