Grundlagen der Datenbanken
Welche Beschreibung des CAP-Theorems für eine verteilte Datenbank, die Kopien der Daten auf mehreren Servern hält, ist zutreffend?
- AIst das Netzwerk zwischen den Servern partitioniert, lassen sich Konsistenz (jeder Server liefert den neuesten Wert) und Verfügbarkeit (jede Anfrage erhält eine Antwort) nicht gleichzeitig vollständig erfüllen
- BBei geeignetem Entwurf lassen sich Konsistenz, Verfügbarkeit und Partitionstoleranz stets alle gleichzeitig erfüllen
- CPartitionstoleranz bedeutet, Netzwerkverbindungen doppelt auszulegen, damit das Netzwerk zwischen den Servern nie partitioniert wird
Antwort und Erläuterung anzeigen
Antwort: A. Ist das Netzwerk zwischen den Servern partitioniert, lassen sich Konsistenz (jeder Server liefert den neuesten Wert) und Verfügbarkeit (jede Anfrage erhält eine Antwort) nicht gleichzeitig vollständig erfüllen
Das CAP-Theorem zeigt, dass eine verteilte Datenbank die folgenden drei Eigenschaften nicht alle gleichzeitig vollständig erfüllen kann: Konsistenz (Consistency: Lesen von einem beliebigen Server liefert das Ergebnis des letzten Schreibvorgangs), Verfügbarkeit (Availability: Jeder nicht ausgefallene Server beantwortet jede Anfrage) und Partitionstoleranz (Partition Tolerance: Das System arbeitet weiter, auch wenn die Kommunikation zwischen Servern unterbrochen ist). Da sich Netzwerkpartitionen in der Praxis nicht vermeiden lassen, lautet der Kern: Tritt eine Partition auf, muss das System wählen, ob es der Konsistenz Vorrang gibt und die Antwort auf manche Anfragen einstellt oder der Verfügbarkeit Vorrang gibt und weiter antwortet, wobei veraltete Werte zurückgegeben werden dürfen. Ohne Partition lassen sich Konsistenz und Verfügbarkeit beide erfüllen. Viele NoSQL-Produkte geben der Verfügbarkeit Vorrang und setzen auf Eventual Consistency, bei der sich die Kopien mit der Zeit angleichen. Partitionstoleranz bedeutet nicht, Verbindungen doppelt auszulegen, sondern die Eigenschaft, auch bei einer Partition weiterzuarbeiten.