Zuhause Persönliche Finanzen Anwendung von Konsistenzmethoden in NoSQL - Dummies

Anwendung von Konsistenzmethoden in NoSQL - Dummies

Inhaltsverzeichnis:

Video: Anwendung von Blitzhypnose in der Praxis 2024

Video: Anwendung von Blitzhypnose in der Praxis 2024
Anonim

Die Eigenschaft Konsistenz einer Datenbank bedeutet, dass Sobald Daten erfolgreich in eine Datenbank geschrieben wurden, können die folgenden Abfragen auf die Daten zugreifen und eine konsistente Sicht auf die Daten erhalten. In der Praxis bedeutet das: Wenn Sie einen Datensatz in eine Datenbank schreiben und diesen Datensatz sofort anfordern, sehen Sie ihn garantiert. Es ist besonders nützlich für Dinge wie Amazon-Bestellungen und Banküberweisungen.

Die Konsistenz ist eine gleitende Skala und ein Thema, das hier zu tief ist. In der NoSQL-Welt fällt die Konsistenz jedoch in der Regel in eines von zwei Lagern:

  • ACID-Konsistenz (ACID steht für Atomicity, Consistency, Isolation, Durability): ACID bedeutet, dass Daten vollständig konsistent sind, sobald Daten geschrieben sind. liest.

  • Eventual Consistency (BASE): BASE bedeutet, dass sobald die Daten geschrieben sind, sie schließlich zum Lesen angezeigt werden.

Es herrscht ein Kampf zwischen Leuten, die glauben, dass eine starke Konsistenz in einer Datenbank nicht erforderlich ist und diejenigen, die es absolut für notwendig halten ( Menschen bis NoSQL Unternehmen übersetzen "Marketingabteilungen! ).

Die Realität ist irgendwo dazwischen. Ist es wichtig, dass der Facebook-Post einer Person fünf Minuten lang nicht von allen Freunden gesehen wird? Nein wahrscheinlich nicht. Ändern Sie "Facebook-Post" in "Milliarden-Dollar-Finanztransaktion" und Ihre Einstellung ändert sich schnell! Welchen Konsistenzansatz Sie wählen, hängt von der Situation ab. Nach meiner Erfahrung ist jedoch in unternehmenskritischen Unternehmenssystemsituationen immer eine starke Konsistenz die erste Wahl.

ACID

ACID ist ein allgemeiner Satz von Prinzipien für Transaktions-Systeme, nicht etwas, das nur mit relationalen Systemen oder sogar nur mit Datenbanken verbunden ist, so dass es sich lohnt, darüber zu wissen. ACID bedeutet im Grunde: " Diese Datenbank verfügt über Möglichkeiten, um Daten zu beschädigen oder zu verlieren, ", was nicht für alle Datenbanken gilt. Tatsächlich bietet die große Mehrheit der NoSQL-Datenbanken keine ACID-Garantien.

Foundation DB, MarkLogic und Neo4j sind bemerkenswerte Ausnahmen. Einige NoSQL-Datenbanken bieten eine Garantie niedrigerer Qualität an, die als Prüfen und Festlegen bezeichnet wird, die überprüft, ob eine andere Person ein Dokument geändert hat, bevor eine Transaktion abgeschlossen werden kann. Dieses Verhalten ist normalerweise begrenzt, da es tendenziell auf einer Einzelsatzbasis implementiert wird.

MongoDB ist eine bemerkenswerte Datenbank, die Check- und Set-Funktionen bereitstellt. Mit MongoDB kann ein gesamter Knotenwert von Daten während einer Aktualisierung gesperrt werden, wodurch alle Lese- und alle Schreibvorgänge bis zum Abschluss der Operation verhindert werden.Das Unternehmen arbeitet jedoch daran, diese Einschränkung aufzuheben.

BASE

BASE bedeutet, dass die Datenbank, anstatt ACID-Garantien zu geben, eine abstimmbare Balance zwischen Konsistenz und Datenverfügbarkeit hat. Dies ist in der Regel der Fall, wenn Knoten in einem bestimmten Datenbankcluster als primäre Manager eines Teils der Datenbank fungieren und andere Knoten schreibgeschützte Replikate enthalten.

Um sicherzustellen, dass alle Clients alle Updates sehen (dh sie haben eine konsistente Sicht auf die Daten), muss ein Schreibzugriff auf den primären Knoten, der die Daten enthält, gesperrt werden, bis alle gelesenen Replikate auf dem neuesten Stand sind. Dies wird als zwei - Phasen-Commit bezeichnet - die Änderung wird lokal vorgenommen, aber angewendet und nur dann an den Client bestätigt, wenn alle anderen Knoten aktualisiert wurden.

BASE lockert diese Anforderung auf, so dass nur eine Teilmenge der Knoten, die dieselben Daten enthalten, aktualisiert werden muss, damit die Transaktion erfolgreich ist. Einige Zeit nachdem die Transaktion festgeschrieben wurde, wird das schreibgeschützte Replikat aktualisiert.

Der Vorteil dieses Ansatzes ist, dass Transaktionen schneller festgeschrieben werden. Lesbare Live-Repliken zu haben, bedeutet auch, dass Sie Ihre Datenleselast verbreiten können, wodurch das Lesen beschleunigt wird.

Der Nachteil ist, dass Clients, die sich mit einigen der gelesenen Replikate verbinden, veraltete Informationen für einen unbestimmten Zeitraum sehen können. In einigen Szenarien ist dieser Zustand in Ordnung. Wenn du eine neue Nachricht auf Facebook postest und einige deiner Freunde sie nicht für ein paar Minuten sehen, ist das kein großer Verlust. Wenn Sie jedoch einen Zahlungsauftrag an Ihre Bank senden, möchten Sie möglicherweise eine sofortige Transaktion.

Ein alternativer Ansatz für schreibgeschützte Replikate besteht darin, einen gemeinsam genutzten - nothing -Cluster zu haben, in dem nur ein Knoten in einem Cluster immer einen bestimmten Teil der Datenbank bedient.

Shared-Nothing bedeutet nicht, dass Sie die Replikation verlieren. Datenbanken, die diese Methode verwenden, replizieren in der Regel ihre Daten in einen sekundären Bereich auf einem anderen primären Knoten oder Knoten - aber nur ein Knoten ist der Master für Lese- und Schreibvorgänge zu jeder Zeit.

Shared-Nothing-Cluster haben den Vorteil eines einfacheren Konsistenzmodells, erfordern jedoch ein zweiphasiges Commit für Replikate. Diese Tatsache bedeutet, dass die Transaktion gesperrt wird, während alle Replikate aktualisiert werden. (Eine interne Sperre plus Sperren für andere Knoten ergibt zwei Phasen.)

Dies hat jedoch normalerweise weniger Auswirkungen als freigegebene Datencluster mit schreibgeschützten Replikaten, da Replikdatenbereiche mit gemeinsam genutztem Nichts keine Leseanforderungen für diese erhalten. Teil der Datenbank. Daher sind zweiphasige Commits in einem Shared-Nothing-Cluster schneller als in einem Cluster mit lesbaren Repliken.

ACID oder BASIS wählen?

Wie Sie vielleicht erwarten würden, liegt ein Großteil des Arguments darin, dass NoSQL-Anbieter sich von ihren Konkurrenten unterscheiden können, indem sie einen anderen, einzigartigen Ansatz beanspruchen. Interessant ist jedoch die Anzahl der NoSQL-Anbieter mit ACID-Konformität in ihrer Roadmap.

Einige NoSQL-Datenbanken haben ACID-Konformität in ihrer Roadmap, obwohl sie Befürworter von BASE sind, was zeigt, wie relevant ACID-Garantien für Unternehmens-, Mission - kritische Systeme sind.

Viele Unternehmen verwenden BASE-Konsistenz-Produkte, wenn sie Ideen testen, weil sie kostenlos sind, migrieren dann aber zu einer ACID-kompatiblen kostenpflichtigen Datenbank, wenn sie in einem geschäftskritischen System live gehen möchten.

Der einfachste Weg, um zu entscheiden, ob Sie ACID benötigen, ist die Berücksichtigung der Interaktionen, die Benutzer und andere Systeme mit Ihren Daten haben. Wenn Sie beispielsweise Daten hinzufügen oder aktualisieren, ist es wichtig, dass die nächste Abfrage die Änderung erkennt. Mit anderen Worten hängen wichtige Entscheidungen vom aktuellen Stand der Datenbank ab? Würden leicht überholte Daten bedeuten, dass diese Entscheidungen tödlich sein könnten?

Bei Finanzdienstleistungen ist die Notwendigkeit von Konsistenz offensichtlich. Denken Sie an Händler, die Aktien kaufen. Sie müssen den Barbestand vor dem Handel überprüfen, um sicherzustellen, dass sie das Geld haben, um den Handel zu decken. Wenn sie das richtige Guthaben nicht sehen, entscheiden sie sich, Geld für eine andere Transaktion auszugeben. Wenn die von ihnen abgefragte Datenbank letztendlich nur konsistent ist, sehen sie möglicherweise keinen Mangel an ausreichenden Mitteln und setzen ihre Organisation somit finanziellen Risiken aus.

Ähnliche Fälle können für ACID über BASE in der Gesundheits-, Verteidigungs-, Geheimdienst- und anderen Sektoren aufgebaut werden. Es läuft jedoch alles auf die Daten und die Wichtigkeit sowohl der Aktualität als auch der Datensicherheit hinaus.

Anwendung von Konsistenzmethoden in NoSQL - Dummies

Die Wahl des Herausgebers

Wie man Facebook für Social Media Engagement einsetzt - dummies

Wie man Facebook für Social Media Engagement einsetzt - dummies

Ein großartiges Tool für Social Media Engagement, Facebook behauptet, eine Milliarde monatlich aktive Nutzer zu haben (Stand Oktober 2012) und ist damit eines der größten sozialen Netzwerke der Welt. Facebook bietet mehrere Ebenen mit öffentlichen und privaten Informationen, je nachdem, welche Funktionen Mitglieder verwenden und wie Mitglieder ihre Datenschutzeinstellungen konfigurieren. Interaktionen ...

Verwenden von Google+ für Social Media Engagement - Dummies

Verwenden von Google+ für Social Media Engagement - Dummies

Unter den neuesten Social Media-Websites, Google+ ( oft abgekürzt als G +) traf im September 2012 400 Millionen Nutzer, so Vic Gundrota bei Google. Obwohl Wikipedia berichtet, dass nur 100 Millionen Google+ Nutzer aktiv sind, sind das immer noch viele Nutzer. Trotz seiner großen Nutzerschaft kann sich Google+ viel intimer als andere fühlen ...

Verwendung von Flickr zum Hochladen von Bildern auf Blogbeiträge - Dummies

Verwendung von Flickr zum Hochladen von Bildern auf Blogbeiträge - Dummies

Wenn Sie ein Foto haben Für die Verwendung in Ihrem Blog vorbereitet, können Sie sie in das Web hochladen. Sie können zwei Methoden anwenden, um Ihr Bild online zu schalten: Direkt in Ihren Blog hochladen: Die meisten Blog-Plattformen und -Software ermöglichen es Ihnen, Bilder direkt in Ihren Blog hochzuladen. Eine gute Sache über einen direkten Upload ...

Die Wahl des Herausgebers

Zoomen und Schwenken in AutoCAD - Dummys

Zoomen und Schwenken in AutoCAD - Dummys

AutoCAD erleichtert das Schwenken, indem es Bildlaufleisten und Echtzeit-Schwenken bietet. Beim Echtzeit-Panning (im Gegensatz zum Vorgabezeit-Panning?) Können Sie Objekte auf dem Bildschirm sehen, wenn Sie die Maus nach oben und unten oder vor und zurück bewegen. Natürlich bewegt sich der Standpunkt, nicht die Objekte. Sowohl das Schwenken als auch das Zoomen ändern die Ansicht ...

Mit AutoCAD LT 2005 DesignCenter - Dummies

Mit AutoCAD LT 2005 DesignCenter - Dummies

DesignCenter ist ein dummer Name für eine nützliche, wenn auch etwas ausgelastete Palette. Die DesignCenter-Palette ist praktisch für das Extrahieren von Daten aus allen Arten von Zeichnungen. Während sich die Eigenschaftenpalette mit Objekteigenschaften beschäftigt, behandelt die DesignCenter-Palette hauptsächlich benannte Objekte: Ebenen, Linientypen, Blockdefinitionen (dh Symboldefinitionen), Textstile und andere Organisationsobjekte ...

Was Sie über AutoCAD-Koordinatensysteme wissen sollten - Dummies

Was Sie über AutoCAD-Koordinatensysteme wissen sollten - Dummies

Jeder Punkt in einer AutoCAD-Zeichnungsdatei kann identifiziert werden durch seine X-, Y-, Z-Koordinaten. (In den meisten 2D-Zeichnungen ist der Z-Koordinatenwert 0. 0.) Dieses Koordinatensystem wird in AutoCAD als Weltkoordinatensystem oder WCS bezeichnet. Koordinateneingabe Die direkteste Methode, um Punkte präzise einzugeben, ist die Eingabe von Zahlen mit dem ...

Die Wahl des Herausgebers

Beschreibungen und Bedeutungen von Spotify Icons - Dummies

Beschreibungen und Bedeutungen von Spotify Icons - Dummies

Spotify verwendet mehrere kleine Symbole, um bestimmte Features eines Tracks zu identifizieren oder Wiedergabeliste. Die folgende Tabelle gibt einen hilfreichen kleinen Überblick darüber, was die gebräuchlichsten Symbole eigentlich bedeuten. Spotify-Symbole Symbol Beschreibung Bedeutung Symbol "Kette" Dieses Symbol wird möglicherweise neben einer Playlist-Spur angezeigt. Das bedeutet, dass Sie nicht spielen können ...

Finden neue Musik mit Last. fm und Spotify - Dummies

Finden neue Musik mit Last. fm und Spotify - Dummies

Sich auf das Hören von Musik zu beschränken, die nach dem klingt, was man bereits mag, kann langweilig sein - wenn man aus dieser Form ausbrechen will, kann Spotify helfen. Wenn Sie Last verwenden. Mit iTunes können Sie nur Musik scrobbeln, die sich bereits in Ihrer Bibliothek befindet. Aber mit Spotify können Sie beliebige Spuren scrobbeln ...

Fixe Probleme mit dem Spotify-Offline-Modus - Dummies

Fixe Probleme mit dem Spotify-Offline-Modus - Dummies

Wenn Sie keine Internetverbindung haben, können Sie Wenn Sie ein Premium-Konto haben, können Sie Spotify weiterhin im Offline-Modus ausführen - Sie können weiterhin auf Tracks zugreifen, die Sie im Offline-Modus als verfügbar markieren. Aber was ist, wenn Sie sicher sind, dass Sie eine Internetverbindung haben, aber Sie erhalten trotzdem eine Nachricht in Spotify mit der Aussage, dass Sie sich in ...