Erläuterung der BASE-Terminologie


170

Das Akronym BASE wird verwendet, um die Eigenschaften bestimmter Datenbanken zu beschreiben, normalerweise NoSQL-Datenbanken. Es wird oft als das Gegenteil von ACID bezeichnet .

Es gibt nur wenige Artikel, die sich mit den Details von BASE befassen, während ACID zahlreiche Artikel enthält, in denen die Eigenschaften von Atomizität, Konsistenz, Isolierung und Haltbarkeit erläutert werden. Wikipedia widmet dem Begriff nur wenige Zeilen .

Dies lässt mich einige Fragen zur Definition :

B asisch A verfügbar, S oft Zustand, E ventuale Konsistenz

Ich habe diese Eigenschaften unter Verwendung dieses Artikels und meiner Vorstellungskraft wie folgt interpretiert :

Grundsätzlich könnte sich auf die wahrgenommene Verfügbarkeit der Daten beziehen. Wenn ein einzelner Knoten ausfällt, ist ein Teil der Daten nicht verfügbar, aber die gesamte Datenschicht bleibt betriebsbereit.

  • Ist diese Interpretation richtig oder bezieht sie sich auf etwas anderes?
  • Update: Könnte dies aus Maus Antwort hervorgehen , dass die gesamte Datenschicht immer neue Daten akzeptiert, dh es gibt keine Sperrszenarien, die verhindern, dass Daten sofort eingefügt werden?

Weicher Zustand : Alles, was ich finden konnte, war das Konzept von Daten, die eine Periodenaktualisierung benötigen. Ohne eine Aktualisierung verfallen die Daten oder werden gelöscht.

  • Das automatische Löschen von Daten in einer Datenbank erscheint mir seltsam.
  • Abgelaufene oder veraltete Daten sind sinnvoller. Dieses Konzept würde jedoch für jede Art von redundantem Datenspeicher gelten, nicht nur für NoSQL. Beschreibt es dann etwas anderes?

Eventuelle Konsistenz bedeutet, dass Updates bei ausreichender Zeit möglicherweise auf alle Server übertragen werden.

  • Diese Eigenschaft ist mir klar.

Kann jemand diese Eigenschaften im Detail erklären?

Oder ist es nur ein weit hergeholtes und bedeutungsloses Akronym, das sich auf die Konzepte von Säuren und Basen bezieht, wie sie in der Chemie zu finden sind?

Antworten:


194

Das Akronym BASE wurde von Eric Brewer definiert , der auch für die Formulierung des CAP-Theorems bekannt ist .

Das CAP-Theorem besagt, dass ein verteiltes Computersystem nicht alle der folgenden drei Eigenschaften gleichzeitig garantieren kann:

  • Konsistenz
  • Verfügbarkeit
  • Partitionstoleranz

Ein BASE-System gibt die Konsistenz auf.

  • Grundsätzlich verfügbar zeigt an, dass das System funktioniert Garantie Verfügbarkeit im Hinblick auf die GAP - Satz.
  • Weicher Zustand zeigt an, dass sich der Zustand des Systems im Laufe der Zeit ändern kann, auch ohne Eingabe. Dies liegt am möglichen Konsistenzmodell.
  • Eventuelle Konsistenz zeigt an, dass das System im Laufe der Zeit konsistent wird, da das System während dieser Zeit keine Eingaben erhält.

Brewer gibt zu, dass das Akronym erfunden ist :

Ich habe mir Anfang dieses Jahres mit meinen Schülern in ihrem Büro das Akronym [the BASE] ausgedacht. Ich bin damit einverstanden, dass es ein bisschen erfunden ist, aber auch "ACID" - viel mehr als die Leute glauben, also dachten wir, es sei gut genug.


33
Grundsätzlich verfügbar garantiert NICHT die Verfügbarkeit. Dies bedeutet, dass es größtenteils verfügbar ist, die Server jedoch aus verschiedenen Gründen ausfallen können.
DarthVader

@Neils, gibt ACID die Verfügbarkeit oder Patitionstoleranz auf?
Pacerier

@Pacerier, hier zeigt das CAP-Theorem seine Fehler :) Wenn das System Partitionstoleranz garantiert, opfert es die Verfügbarkeit im Falle einer Partition. Wenn das System die Verfügbarkeit garantiert, gibt es die Partitionstoleranz auf, was bedeutet, dass eine Partition das System nicht verfügbar (oder inkonsistent) macht. Sie sehen also, dass Verfügbarkeit und Partitionstoleranz Hand in Hand gehen. Weitere Einzelheiten hierzu finden Sie in diesem Artikel .
Niels van der Rest

1
Unwissenschaftlich, aber nach meinen Beobachtungen wird ACID, wenn es um Webdienste geht, am häufigsten mit SOAP in Verbindung gebracht, und BASE ist enger mit REST-Diensten (RESTful) verbunden. Eine ausführlichere Diskussion über die eventuelle Konsistenz finden Sie in der Debatte zwischen MongoDB- und CouchDB-Unterstützern.
Charles Ross

Das "Theorem" der GAP wird mathematisch (aber sehr lesbar) zerlegt und auf einzigartig intelligente Weise von Mark Burgess diskutiert , dessen Artikel ich gerade lese. (Ich wurde dort in erster Linie von Wikipedia verlinkt .)
Wildcard

45

Es hat mit BASE zu tun : Die BASE-Jumper-Art ist grundsätzlich immer verfügbar (für neue Beziehungen), in einem weichen Zustand (keine seiner Beziehungen dauert sehr lange) und schließlich konsistent (eines Tages wird er heiraten).


Ok, Sie sagen also, dass ACID-Datenbanken viel besser sind als BASE?
Pacerier

2
Au contraire macht BASE immer mehr Spaß.
Mau

8
Nun, das ist eigentlich mein tägliches Brot und wenn Sie eine ernsthafte Antwort wollen, ACID.
Mau

1
@Pacerier Eric Brewer hat den Begriff BASE geprägt und gibt an, dass Banken und Finanzinstitute zwar über ACID-Beschränkungen sprechen, diese jedoch in Wirklichkeit nicht streng genommen sind ( highscalability.com/blog/2013/5/1/… )
und

2
@ Pacerier und Mau, was ist mit NewSQL? Würden Sie es NoSQL (BASE) und relational (ACID) vorziehen?
Boris Mocialov

6
  • Grundlegende Verfügbarkeit : Die Datenbank scheint die meiste Zeit zu funktionieren.

  • Soft State : Stores müssen nicht immer schreibkonsistent oder konsistent sein.

  • Eventuelle Konsistenz : Die Daten sollten immer konsistent sein, was die Anzahl der durchgeführten Änderungen betrifft.


4

ACID und BASE sind Konsistenzmodelle für RDBMS bzw. NoSQL. ACID-Transaktionen sind weitaus pessimistischer, dh sie sorgen sich mehr um die Datensicherheit. In der NoSQL-Datenbankwelt sind ACID-Transaktionen weniger in Mode, da einige Datenbanken die Anforderungen an sofortige Konsistenz, Datenaktualität und Genauigkeit gelockert haben, um andere Vorteile wie Skalierbarkeit und Ausfallsicherheit zu erzielen.

BASE steht für -

  • Grundlegende Verfügbarkeit - Die Datenbank scheint die meiste Zeit zu funktionieren.
  • Soft-State - Stores müssen weder schreibkonsistent sein, noch müssen verschiedene Replikate ständig konsistent sein.
  • Eventuelle Konsistenz - Geschäfte weisen zu einem späteren Zeitpunkt Konsistenz auf (z. B. träge zum Zeitpunkt des Lesens).

Daher lockert BASE die Konsistenz, damit das System Anforderungen auch in einem inkonsistenten Zustand verarbeiten kann.

Beispiel : Es würde niemanden stören, wenn ihr Tweet für kurze Zeit in ihrem sozialen Netzwerk inkonsistent wäre. Es ist wichtiger, eine sofortige Antwort zu erhalten, als einen konsistenten Status der Benutzerinformationen zu haben.


1
Eventuelle Konsistenz hat tatsächlich unerwünschte Auswirkungen. Haben Sie jemals eine Verlangsamung des LinkedIn-Chats erlebt? Sie antworten mit einem Satz und dann mit einem anderen. Aufgrund der eventuellen Konsistenz oder der fehlenden ordnungsgemäßen Implementierung werden Ihre beiden Antworten zusammengeschaltet. Ja, Sie haben am Ende 2 Antworten im Chat erhalten, aber diese sind nicht in der beabsichtigten Reihenfolge.
zmechanic

2

Um die anderen Antworten zu ergänzen, wurden die Akronyme abgeleitet, um eine Skala zwischen den beiden Begriffen anzuzeigen, um zu unterscheiden, wie zuverlässig Transaktionen oder Anforderungen zwischen RDMS und Big Data waren.

Aus diesem Artikel Säure gegen Base

In der Chemie misst der pH-Wert die relative Basizität und Azidität einer wässrigen Lösung (Lösungsmittel in Wasser). Die pH-Skala reicht von 0 (stark saure Substanzen wie Batteriesäure) bis 14 (stark alkalische Substanzen wie Lüge); reines Wasser bei 25 ° C hat einen pH-Wert von 7 und ist neutral.

Dateningenieure haben geschickt Säure gegen Base von Chemikern ausgeliehen und Akronyme erstellt, die zwar nicht genau in ihrer Bedeutung sind, aber dennoch zutreffende Darstellungen dessen sind, was in einem bestimmten Datenbanksystem geschieht, wenn die Zuverlässigkeit der Transaktionsverarbeitung diskutiert wird.

Ein weiterer Punkt, da ich mit Big Data mithilfe von Elasticsearch arbeite. Zur Verdeutlichung ist eine Instanz von Elasticsearch ein Knoten, und eine Gruppe von Knoten bildet einen Cluster.

Aus praktischer Sicht hat BA (Basic Available) in diesem Zusammenhang die Idee, mehrere Masterknoten für den Elasticsearch-Cluster und seine Operationen zu verwenden.

Wenn Sie 3 Hauptknoten haben und der aktuell leitende Hauptknoten ausfällt, bleibt das System in Betrieb, wenn auch in einem weniger effizienten Zustand, und ein anderer Hauptknoten tritt an seine Stelle als Hauptleitknoten. Wenn zwei Masterknoten ausfallen, bleibt das System weiterhin in Betrieb und der letzte Masterknoten übernimmt.


0

Es könnte nur sein, dass ACID eine Reihe von Eigenschaften ist, die Substanzen aufweisen (in der Chemie), und BASE eine komplementäre Reihe von Eigenschaften ist. Es könnte also nur sein, den Kontrast zwischen den beiden zu zeigen, aus denen das Akronym besteht, und dann 'Grundsätzlich verfügbar' Soft State Eventual Consistency 'wurde als Vollform entschieden.


2
Das mag erklären, wie das Akronym entstanden ist, erklärt aber nicht, was die verschiedenen Eigenschaften bedeuten .
Jmb

Die Verwendung von Wörtern wie "Grundsätzlich", die in Bezug auf die Bedeutung, die sie einbringen, nicht einmal von Bedeutung sind, legt nahe, dass das Akronym zuerst ausgewählt wurde (ACID vs BASE) und dann festgestellt wurde, dass die Wörter die Teile des Akronyms irgendwie ausfüllen . Das ist wahrscheinlich der Grund, warum wir nicht so viele Erklärungen und Verweise finden (im Vergleich zu den Wörtern von ACID, deren Erklärung Sie auf jeder Seite finden, die über RDBMS spricht), was diese Wörter bedeuten.
siebenheaven

Ich finde das interessant richtig, da "Grundsätzlich verfügbar" so erzwungen erscheint.
Ricardo Pedroni
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.