CAP-Theorem vs. BASE (NoSQL)


12

CAP-Theorem vs. BASE (NoSQL)

Hallo, ich versuche, ein kleines Papier für meine Arbeit über NoSQL zu schreiben, und habe das CAP-Theorem so beschrieben, dass die meisten NoSQL-Datenbanken, wenn nicht alle, daran festhalten. Ich habe später einen Artikel über den Unterschied zwischen NoSQL und RDBMS gelesen, in dem angegeben wurde, dass NoSQL-Datenbanken das ACID-Gegenstück BASE verwenden.

Ich kenne die Eigenschaften von BASE, ACID und CAP, aber es fällt mir schwer herauszufinden, in welcher Beziehung das CAP-Theorem und BASE zueinander stehen. So wie ich es verstehe, führt der CAP-Satz zum Akronym BASE, aber ist es die richtige Schlussfolgerung? Oder sind es zwei verschiedene Ansätze, um eine Datenbank zu „bauen“, um die sich einige ähnliche Eigenschaften teilen?

In diesem Blog-Beitrag (http://www.johndcook.com/blog/2009/07/06/brewer-cap-theorem-base/) schreibt der Autor:

Es ist schwieriger, Software in der fehlertoleranten BASE-Welt zu entwickeln als in der anspruchsvollen ACID-Welt, aber das CAP-Theorem von Brewer besagt, dass Sie keine Wahl haben, wenn Sie skalieren möchten. Wie Brewer in dieser Präsentation hervorhebt, besteht jedoch ein Kontinuum zwischen ACID und BASE. Sie können je nach Ihren Prioritäten entscheiden, wie nah Sie an einem Ende des Kontinuums oder am anderen sein möchten.

In einem anderen Artikel schreibt der Autor:

Viele der NOSQL-Datenbanken haben vor allem die Anforderungen an die Konsistenz gelockert, um eine bessere Verfügbarkeit und Partitionierung zu erreichen. Dies führte zu Systemen, die als BASE bekannt sind (Grundsätzlich verfügbar, Soft-State, eventuell konsistent). Diese haben keine Transaktionen im klassischen Sinne und führen zu Einschränkungen des Datenmodells, um bessere Partitionsschemata (wie das Dynamo-System usw.) zu ermöglichen. Eine umfassendere Diskussion von CAP, ACID und BASE finden Sie in dieser Einführung.

Dies zeigt deutlich, dass CAP zu BASE führt.

Ich hoffe, jemand kann mir das klarstellen und meine Verwirrung beseitigen.

Danke
- Mestika

Antworten:


15

CAP ist im Grunde ein Kontinuum, entlang dessen sich BASE und ACID an entgegengesetzten Enden befinden.

CAP-Diagramm

CAP ist Konsistenz, Verfügbarkeit und Partitionstoleranz. Grundsätzlich können Sie 2 davon auswählen, aber Sie können nicht alle 3 tun.

ACID konzentriert sich auf Konsistenz und Verfügbarkeit.

BASE konzentriert sich auf Partitionstoleranz und -verfügbarkeit und wirft Konsistenz aus dem Fenster.


1
Eine gute ACID-Datenbank sollte sich auf Konsistenz und Partitionstoleranz konzentrieren, da das Herauswerfen der Partitionstoleranz aus dem Fenster (um es in Ihren Worten auszudrücken) die Konsistenz bei jedem Auftreten einer Partition beeinträchtigen würde.
Peter

ACID konzentriert sich nicht auf die Verfügbarkeit. Das 'A' steht für Atomicity und deckt Dinge wie Abbruch - Rollback - Neustart ab.
Momo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.