Inhaltsverzeichnis:
Video: searchxml auf einen Blick 2024
Wie bei anderen NoSQL-Datenbanktypen können Sie bei Schlüsselwert-Stores einige Konsistenz für eine gewisse Verfügbarkeit eintauschen. Schlüsselwertspeicher bieten in der Regel eine breite Palette von Konsistenz- und Haltbarkeitsmodellen, dh zwischen Verfügbarkeit und Partitionstoleranz sowie zwischen Konsistenz- und Partitionstoleranz.
Einige Key-Value-Stores gehen weit über den Consistency-Arm hinaus und setzen BASE für die vollständige ACID-Transaktionskonsistenzunterstützung aus. Wenn Sie wissen, wo Sie die Linie zeichnen können, können Sie die Liste der potenziellen Datenbanken verkürzen, die für Ihren Anwendungsfall berücksichtigt werden müssen.
Handelskonsistenz
Schlüsselwertspeicher handeln in der Regel die Konsistenz in den Daten (dh die Fähigkeit, immer die neueste Kopie eines Werts unmittelbar nach einer Aktualisierung zu lesen), um die Schreibzeiten zu verbessern…
Voldemort, Riak und Oracle NoSQL sind alle schließlich konsistente Schlüsselwert-Speicher. Sie verwenden eine Methode namens read repair . Hier sind die zwei Schritte, die in read repair :
-
Stellen Sie beim Lesen eines Datensatzes fest, welcher von mehreren verfügbaren Werten für einen Schlüssel der neueste und gültigste ist.
-
Wenn der letzte Wert nicht bestimmt werden kann, wird der Datenbank-Client mit allen Wertoptionen dargestellt und kann selbst entscheiden.
Gute Beispiele für die Verwendung von möglicherweise konsistenten Schlüsselwert-Stores sind das Senden von Social-Media-Posts und das Senden von s an Zielbenutzer. Wenn ein Tweet zu spät kommt oder ein Fünf-Minuten-alter angezeigt wird, gibt es keinen katastrophalen Datenverlust.
Implementieren von ACID-Unterstützung
Aerospike und Redis sind bemerkenswerte Ausnahmen von eventueller Konsistenz. Beide verwenden shared-nothing Cluster, was bedeutet, dass jeder Schlüssel Folgendes hat:
-
Ein Master-Knoten: Nur die Master geben Antworten für einen einzelnen Schlüssel, wodurch sichergestellt wird, dass Sie die neueste Kopie haben.
-
Mehrere Slave-Replikatknoten: Diese enthalten Kopien aller Daten auf einem Master-Knoten. Aerospike bietet volle ACID-Transaktionskonsistenz, indem Modifikationen sofort auf die Festplatte geschrieben werden können, bevor die Transaktion als abgeschlossen für den Datenbank-Client markiert wird.
Aerospike schafft dies mit sehr hohen Geschwindigkeiten (was Behauptungen widerlegt, dass ACID die Schreibgeschwindigkeit verringert). Aerospike verarbeitet nativ SSDs für das Schreiben von Daten unter Umgehung der Dateisystemunterstützung langsamerer Betriebssysteme.
Natürlich bedeuten mehr SSDs höhere Serverkosten. Sie können entscheiden, dass die Verwendung von Redis (das so konfiguriert ist, dass alle Daten bei der Ankunft auf die Festplatte übertragen werden) schnell genug ist und eine ausreichende Haltbarkeit für Ihre Anforderungen garantiert.Die Standardeinstellung in Redis besteht darin, Daten alle paar Sekunden auf die Festplatte zu spülen, wodurch ein kleines Fenster mit potenziellem Datenverlust verbleibt, wenn ein Server ausfällt.
Hier einige Beispiele für den Fall, dass Sie einen ACID-kompatiblen Schlüsselwertspeicher benötigen:
-
Wenn Sie Sensordaten erhalten, die Sie für ein Experiment benötigen.
-
In einem Nachrichtensystem, in dem Sie den Erhalt garantieren müssen.
Redis bietet zum Beispiel einen Publish / Subscribe-Mechanismus, der als Nachrichtenserver-Back-End fungiert. Diese Funktion kombiniert mit ACID-Unterstützung ermöglicht eine dauerhafte Nachrichtenübermittlung.