it-swarm.com.de

Warum sind NoSQL-Datenbanken nicht ACID-konform?

Wenn keine ACID-Eigenschaften vorhanden sind, funktioniert die Datenbank in Clustern gut. Aber ACID ist etwas sehr Grundlegendes. Wie kann eine Datenbank gut funktionieren, wenn es keine Atomizität, Konsistenz, Isolation und Haltbarkeit (ACID) gibt?

5
Krekurul

Wie kann eine Datenbank gut funktionieren, wenn es keine Atomizität, Konsistenz, Isolation und Haltbarkeit gibt?

Sie können nicht. Aus diesem Grund wurden diese Funktionen erstellt.

Manchmal können Sie das Fehlen dieser Funktionen umgehen, weil Sie horizontal skalieren müssen oder die Skalierung zu Ihrem ersten und wichtigsten Anliegen wird. Möglicherweise benötigen Sie jetzt keine Konsistenz, möglicherweise können Sie später behandeln. . Möglicherweise müssen nicht alle Daten in der angegebenen Reihenfolge zurückgegeben werden. Möglicherweise möchten Sie, dass die Abfragen parallel über Cluster ausgeführt werden. Oder Ihre Daten selbst sind möglicherweise ziemlich wertvoll.

Schauen Sie sich die wichtigsten Produkte an, die diese Art von Systemen implementieren - im Allgemeinen sind sie schlecht und sie haben viele Fehler. Haben Sie jemals etwas auf Facebook an Ihre Pinnwand gepostet, um zu sehen, wie es verschwindet und mehrmals wieder auftaucht? Oder um ein Gespräch zu führen, das Sie kommentieren, verschwinden Sie für einen längeren Zeitraum und kommen Sie zurück? Das sind Hunderte von Menschen, die daran arbeiten, Daten mit "NoSQL" zu verwalten und PHP zu C++ zu kompilieren. Es funktioniert nicht besonders gut . Es funktioniert und für die meisten Unternehmen ist das weiter, als sie eine Alternative entwickeln können.

2
Evan Carroll

Wenn keine ACID-Eigenschaften vorhanden sind, funktioniert die Datenbank in Clustern gut. Aber ACID ist etwas sehr Grundlegendes. Wie kann eine Datenbank gut funktionieren, wenn es keine Atomizität, Konsistenz, Isolation und Haltbarkeit (ACID) gibt?

Ich verwerfe nichts von Vérace, Evan Carroll & Randolph West.

Gemäß Mythos von Eric Brewer Blog hier In NoSQL : Past, Present, FutureEric Brewer hat einen besonders schönen Abschnitt über die Erklärung der oft schwer verständlichen Ideen von [~ # ~] base [~ # ~] (Basically Available, Soft State, Eventually Consistent)

Ich würde hier auch nicht mehr dazu sagen. Wie kann eine NoSQL-Datenbank gut funktionieren, wenn es keine Atomizität, Konsistenz, Isolation und Haltbarkeit (ACID) gibt?. Weil es nach meinem dba-Fachwissen zu früh ist, dies an dieser Kreuzung zu sagen. Aber ich möchte mit Ihnen die DataStax CEO Billy Bosworth Blog hier aus dem InfoWorld New Tech Forum bei dem die "Top 5 misconceptions about ACID compliance in a nonrelational world. "kann helfen, Ihre einige Fragen zu lösen

  1. Missverständnis Nr. 1: Sie können keine Online-Anwendung ohne ACID-Konformität erstellen

  2. Missverständnis Nr. 2: SÄURE ist ein Alles-oder-Nichts-Vorschlag

  3. Missverständnis Nr. 3: Eventuelle Konsistenz verletzt das "C" in "ACID"

  4. Missverständnis Nr. 4: Datenbanken und Anwendungen haben eine 1: 1-Beziehung, also entweder/oder zwischen relationalen und NoSQL-Technologien

  5. Missverständnis Nr. 5: NoSQL-Datenbanken sind nur für "Web Scale" -Anwendungen vorgesehen. Alles andere verwendet ACID-konforme Technologie

Warum es wichtig ist nach Eric Brewer hat sein Verständnis des Satzes [~ # ~] cap [~ # ~] (Konsistenzverfügbarkeit, Partitionstoleranz) im Lichte von weiter verfeinert neue Technologien. Gleichzeitig verbessern Entwickler, Architekten und Datenbankadministratoren ihr Verständnis für solche Kompromisse. Zumindest erkennen sie, dass wir nicht in einer Einheitswelt leben und die richtigen Technologien für den richtigen Job einsetzen müssen. Diejenigen, die sich von relationalen Missverständnissen befreien, werden die Kraft und die Möglichkeiten dieser neuen Welt verschiedener Datenbanktechnologien nutzen.

Für weitere Informationen NoSQL-Besonderheiten: Die besten Dokumentendatenbanken , hier und hier

2

Das große an NoSQL ist das Konzept von " eventuelle Konsistenz " oder "optimistische Replikation".

Angenommen, nichts in der Datenbank hängt wirklich von der Reihenfolge der Einfügungen, Änderungen oder Löschungen ab, verbessert dies die Leistung erheblich.

Leistung ist schließlich ein Merkmal.

1
Randolph West

Bevor die Leute das Wort "Cluster" sehen und denken, dass dies das nächste "Neue Ding" sein muss und daher "Ein gutes Ding (tm))" sein muss, lesen Sie einfach Ted Dziubas Artikel hier =. Der Titel könnte Ihnen einen Hinweis auf seine Einstellung zu NoSQL-Datenbanken geben.

NoSQL-Datenbanken sind nicht ACID , sie sind BASE (*)! Grundsätzlich verfügbar, weicher Zustand, eventuell konsistent! Dies bedeutet, dass Sie, wenn Amazon dies verwendet, immer in der Lage sein würden, ein Buch von ihnen zu "kaufen", ohne Garantie dafür, ob es dort ist war Lager verfügbar, um Ihre Bestellung zu erfüllen! Sie sind ein Versuch, "zu schlagen" Satz von Brewer ! Ratet mal, was Jim? "Ihr könnt die Gesetze nicht schlagen, ah Physik Jim!" (Mit Entschuldigung an Gene Roddenberry :-)).

Michael Stonebraker ist wirklich ein Mann, dem man zuhören muss, wenn es um Datenbanktechnologie geht. Er ist sowohl im akademischen als auch im kommerziellen Bereich erfolgreich.

Er stimmt der grundlegenden Prämisse von NoSQL zu, dass das, was er nennt OldSQL , gebrochen ist! Er argumentiert nur (gewaltsam), dass das Wegwerfen von Säuregarantien das Baby buchstäblich mit dem Badewasser hinauswirft.

Was er argumentiert, sind ACID-kompatible Datenbanken ohne den Sperr- und Transaktionsaufwand von Systemen wie Oracle, MS SQL Server, PostgreSQL und MySQL unter anderem. Er schlägt auch vor, dass sie an die " Heimat für Software im Ruhestand " gesendet werden sollten :-)!

Wie, darfst du fragen? Nun, zwei Möglichkeiten:

Sein Standpunkt zu NewSQL ist, dass Sie für OLTP Apps) eine Shared-Nothing-Sharded-Architektur benötigen (siehe seine VoltDB - basierend auf HStore) und für OLAP Sie benötigen dedizierte Spaltenspeicher, dh Vertica (basierend auf CStore, den er an HP verkauft hat).

Um die eigentliche Frage direkt zu beantworten: "Warum sind NOSQL-Datenbanken nicht säurekonform?", Weil sie nicht dafür ausgelegt waren. ACID ist eine Menge Arbeit und erfordert viele Ressourcen in der Maschine, aber selbst Google werden gezwungen, zu ACID und SQL zurückzukehren!

NoSQL ist ein Versuch, sich aus grundlegenden Einschränkungen herauszuwinden, und wird infolgedessen fehlschlagen. Das heißt nicht, dass es in bestimmten Bereichen keine Nische geben wird, aber es wird immer genau das sein, Nische!

0
Vérace