🏠 » Lexikon » C » CAP-Theorem

CAP-Theorem

Das CAP-Theorem beschreibt eine Eigenschaft von verteilten Datenbanksystemen. Die Abkürzung "CAP" steht dabei für die englischen Begriffe "Consistency", "Availibility" und "Partition Tolerance". Auf Deutsch bedeuten diese drei Begriffe "Konsistenz", "Verfügbarkeit" und "Ausfalltoleranz".

Konsistenz im CAP Theorem beschreibt in diesem Zusammenhang die Konsistenz der Daten. Das bedeutet, dass alle Clients in dem verteilten System zum gleichen Zeitpunkt die gleichen Daten sehen können.

Verfügbarkeit im CAP-Theorem bedeutet, dass die Antwortzeiten des Systems akzeptabel sind. Die akzeptable Zeitspanne hängt mitunter auch davon ab, wer das System nutzt. Manche Nutzergruppen können länger warten, als andere.

Die Ausfalltoleranz im CAP-Theorem steht in diesem Zusammenhang dafür, dass das System auch bei Ausfall einzelner Knoten noch stabil läuft.

Bei dem CAP-Theorem von verteilten Datenbanksystemen geht es darum, dass diese drei genannten Eigenschaften nicht alle gleichzeitig erfüllt sein können. Es können maximal zwei der drei Eigenschaften vollständig erfüllt sein.

CAP-Theorem - Aufba und Funktionsweise

Das CAP-Theorem ist wie ein Dreieck aufgebaut. Jede Spitze steht dabei für eine der drei Eigenschaften des Systems. Da es nicht möglich ist, alle drei Eigenschaften zur gleichen Zeit zu erfüllen, muss man sich beim Aufbau eines Systems für eine Kombination aus zwei Eigenschaften entscheiden. Daraus entstehen dann CP-, AP- oder CA-Systeme.

Da in nahezu allen Bereichen eine hohe Verfügbarkeit des Systems gewünscht ist, treten CP-Systeme in der Praxis nicht sehr oft auf. Bei diesen Systemen führt eine Partitionierung des Netzwerks dazu, dass der Teil des Netzes, welcher konsistent gehalten werden kann, verfügbar bleibt, der Rest allerdings nicht.

Bei CA-Systeme geht es darum, die Konsistenz und die Verfügbarkeit eines Systems sicherzustellen.

AP-Systeme versuchen die Verfügbarkeit und die Ausfalltoleranz sicherzustellen. Dadurch, dass sie nicht immer konsistent sind, reagiert das System auf Netzwerkpartitionierungen mit nicht gegebener Konsistenz. Das System reagiert zwar auf Anfragen, aber die Antworten sind dabei nicht notwendigerweise konsistent.

Die theoretische Beschreibung des CAP-Theorems ist eine idealisierte Definition, die nicht vollständig in die Praxis umzusetzen ist, da die Grenzen oft der einzelnen Eigenschaften, wann diese erfüllt sind und wann nicht, oft verschwimmen oder auch die Systeme untereinander gemischt werden.

CAP-Theorem - Beispiele aus der Praxis

In der Praxis gibt es bekannte Beispiele für den Einsatz des CAP-Theorems. Ein bekanntes Beispiel für ein AP-System ist DNS, also das "Domain Name System". Dabei handelt es sich um einen der wichtigsten Dienste in IP-basierten Netzwerken. Es kümmert sich um die Auflösung von Hostnamen zu IP-Adressen. Die Verfügbarkeit dieses Dienstes ist sehr hoch. Ebenso ist die Ausfalltoleranz sehr hoch. Fällt ein DNS-Server aus, macht sich das in den meisten Fällen beim Nutzer nicht bemerkbar. Jedoch ist die Konsistenz hier nicht gegeben. Wird im System ein DNS-Eintrag geändert, kann es einige Zeit dauern, bis diese Änderung bei allen Clients angekommen ist.

Ein Beispiel aus der Praxis für ein CA-System ist das "Relationale Datenbank Management System". Solche Datenbanksysteme wollen vor allem eine hohe Konsistenz und eine hohe Verfügbarkeit erreichen. Je nachdem in was für einem Netzwerk ein solches System betrieben wird, müssen RDMS nicht gut mit einer Netzwerkpartitionierung umgehen können.

Ein Beispiel aus der Praxis für CA-Systeme sind diverse Anwendungen aus dem Finanzbereich. Hier ist eine Konsistenz besonders wichtig, da beispielsweise ein eingezahlter oder abgehobener Geldbetrag auch wirklich gebucht werden muss. Des Weiteren muss das System in diesem Bereich auch zuverlässig gegenüber Ausfällen sein, damit die Konsistenz auch weiterhin gegeben ist. Die Verfügbarkeit an dieser Stelle ist nicht so wichtig. Fällt ein System aus, darf es auch vorübergehend nicht verfügbar sein.

CAP-Theorem - Definition & Erklärung - Zusammenfassung

Im Zusammenhang mit dem Lexikoneintrag CAP-Theorem sollte man sich folgende Punkte merken:

  • Das CAP-Theorem von verteilten Datenbanksystemen besagt, dass die drei genannten Eigenschaften ("Consistency", "Availibility" und "Partition Tolerance") nie alle gleichzeitig erfüllt sein können.
  • Das CAP-Theorem ist wie ein Dreieck aufgebaut.
  • Das CAP-Theorem ist eine idealisierte Definition, die nicht vollständig in die Praxis umzusetzen ist, da die Grenzen der einzelnen Eigenschaften oft verschwimmen oder auch die Systeme untereinander gemischt werden.