Verwalten Verfügbarkeit in NoSQL

Wie bei anderen Arten NoSQL-Datenbank, mit Schlüssel-Wert speichert, können Sie einige Konsistenz für einige Verfügbarkeit handeln. Key-Wert speichert bieten in der Regel eine große Auswahl an Konsistenz und Haltbarkeit Modelle - das heißt, zwischen Verfügbarkeit und Partitionstoleranz und zwischen konsistente und Partitionstoleranz.

Einige Schlüssel-Wert-Läden gehen viel weiter auf die Konsistenz Arm, BASE für die vollständige ACID Transaktionskonsistenz Unterstützung verlassen. Das Verständnis, wo die Grenze zu ziehen können Sie verkürzen die Liste der möglichen Datenbanken helfen, für Ihren Anwendungsfall zu prüfen.

Handels Konsistenz

Key-Wertspeicher handeln typischerweise Konsistenz der Daten (das heißt, die Fähigkeit, immer die neueste Kopie eines Wertes unmittelbar nach einem Update zu lesen), um Schreibzeiten zu verbessern.

Voldemort, Riak und Oracle NoSQL sind alle schließlich im Einklang Schlüssel-Wert speichert. Sie verwenden eine Methode namens lesen Reparatur. Hier sind die beiden Schritte, lesen Reparatur:

  1. Zu der Zeit, einen Datensatz zu lesen, festzustellen, welche von mehreren verfügbaren Werte für einen Schlüssel ist die neueste und gültigste ein.

  2. Wenn der letzte Wert nicht entschieden werden kann, dann wird die Datenbank-Client mit allen Wert Optionen angezeigt und bleibt für sich zu entscheiden.

Gute Beispiele für die Verwendung schließlich konsistente Schlüssel-Wert-Shops gehören das Senden Social-Media-Beiträge und Anzeigen gezielt an Anwender zu liefern. Wenn ein Tweet ist spät oder ein Fünf-Minuten-alte Anzeige kommt gezeigt, gibt es keinen katastrophalen Datenverlust.

Implementieren von ACID-Unterstützung

Aero-Spike und Redis sind bemerkenswerte Ausnahmen zu eventuellen Konsistenz. Beide verwenden Shared-Nothing Cluster, die jede Taste bedeutet, hat die folgende:

  • Ein Master-Knoten: Nur die Meister geben Antworten für eine einzelne Taste, die dafür sorgt, dass Sie die neueste Version haben.

  • Mehrere Slave Replikatknoten: Diese enthalten Kopien aller Daten auf einem Master-Knoten. Aero-Spike bietet vollständige ACID Transaktionskonsistenz, indem Änderungen sofort auf die Festplatte geschrieben werden, bevor die Transaktion als abgeschlossen an den Datenbank-Client markiert ist.

Aero-Spike schafft, dass bei sehr hohen Geschwindigkeiten zu tun (die Ansprüche entkräftet, dass Säure mit verringert Schreibgeschwindigkeit). Aero-Spike Griffe nativ roh SSDs für Daten-Schreiben durch eine langsamere Betriebssysteme Dateisystem-Unterstützung zu umgehen.

Natürlich bedeuten mehr SSDs höhere Serverkosten. Sie können entscheiden, dass Redis mit (konfiguriert, dass alle Daten auf der Festplatte zu spülen, wie es kommt) schnell genug ist und eine ausreichende Haltbarkeit für Ihre Bedürfnisse garantiert. Die Standardeinstellung in Redis ist, Daten auf der Festplatte alle paar Sekunden zu spülen, ein kleines Fenster von möglichen Datenverlust zu verlassen, wenn ein Server ausfällt.

Hier sind einige Beispiele, bei denen Sie ein ACID-konforme Schlüssel-Wert-Speicher müssen:

  • Wenn die Sensordaten zu empfangen, die Sie benötigen für ein Experiment.

  • In einem Messaging-System, in dem Sie den Eingang gewährleisten muss.

    Redis zum Beispiel bietet eine Publish / Subscribe-Mechanismus, der als Messaging-Server-Backend fungiert. Diese Funktion mit ACID-Unterstützung in Kombination ermöglicht eine dauerhaft Messaging.

Menü