Zuhause Persönliche Finanzen Umgang mit Partitionen in NoSQL - Dummies

Umgang mit Partitionen in NoSQL - Dummies

Inhaltsverzeichnis:

Video: Azure Friday | Azure Cosmos DB: Get the Most Out of Provisioned Throughput 2025

Video: Azure Friday | Azure Cosmos DB: Get the Most Out of Provisioned Throughput 2025
Anonim

Das Wort partition wird für zwei unterschiedliche Konzepte in NoSQL land verwendet. Eine Datenpartition ist ein Mechanismus zum Sicherstellen, dass Daten gleichmäßig über einen Cluster verteilt sind. Auf der anderen Seite tritt eine Netzwerkpartition auf, wenn zwei Teile desselben Datenbankclusters nicht miteinander kommunizieren können.

Bei sehr großen Clustersystemen wird es immer wahrscheinlicher, dass ein Ausfall eines Geräts auftritt. Wenn ein Netzwerkwechsel zwischen Servern in einem Cluster fehlschlägt, tritt ein als (im Computerjargon) bezeichnetes Phänomen split brain auf. In diesem Fall empfangen einzelne Server weiterhin Anforderungen, können jedoch nicht miteinander kommunizieren.

Dieses Szenario kann zu Dateninkonsistenzen oder einfach zu einer reduzierten Kapazität bei der Datenspeicherung führen, da die Netzwerkpartition mit den wenigsten Servern aus dem Cluster entfernt wird (oder in wahrer Big-Brother-Weise "abgewählt" wird).).

Tolerierende Partitionen

Sie haben zwei Möglichkeiten, wenn eine Netzwerkpartition auftritt:

  • Fahren Sie auf einer bestimmten Ebene mit Lese- und Schreiboperationen fort.

  • Wählen Sie einen Teil der Partition aus und beschließen Sie, die Daten später zu korrigieren, wenn beide Teile miteinander kommunizieren können. In der Regel wählt der Cluster für jeden fehlenden Master-Partitionsknoten ein Lese-Replikat als neuen Master aus.

Mit Riak können Sie bestimmen, wie oft Daten repliziert werden (standardmäßig drei Kopien - also n = 3) und wie viele Server abgefragt werden müssen, damit ein Lesevorgang erfolgreich ist. Dies bedeutet, dass, wenn sich der primäre Master eines Schlüssels auf der falschen Seite einer Netzwerkpartition befindet, Lesevorgänge weiterhin erfolgreich ausgeführt werden können, wenn die anderen beiden Server verfügbar sind (d. H. R = 2 Lesezugriff).

Riak verarbeitet Schreibvorgänge, wenn der Primärpartitionsserver heruntergefahren wird, indem er ein System verwendet, das angedeutete Übergabe heißt. Wenn Daten ursprünglich repliziert werden, wird der erste Knoten für eine bestimmte Schlüsselpartition zusammen mit (standardmäßig) zwei der folgenden Nachbarknoten geschrieben.

Wenn der primäre Knoten nicht beschrieben werden kann, wird in den nächsten Knoten im Ring geschrieben. Diese Schreibvorgänge werden effektiv an den nächsten Knoten übergeben. Wenn der primäre Server zurückkehrt, werden die Schreibvorgänge an diesen Knoten wiederholt, bevor er die primären Schreibvorgänge wieder übernimmt.

Bei diesen beiden Vorgängen können Inkonsistenzen bei der Versionsverwaltung auftreten, weil sich verschiedene Replikate in unterschiedlichen Versionszuständen befinden können, selbst wenn dies nur für ein paar Millisekunden der Fall ist.

Riak verwendet noch ein anderes System namens aktive Anti - Entropie , um dieses Problem zu lindern. Dieses System durchsucht aktualisierte Werte und stellt sicher, dass die Repliken irgendwann aktualisiert werden, vorzugsweise früher als später.Dadurch werden Konflikte beim Lesen vermieden, während eine hohe Aufnahmedauer beibehalten wird, wodurch ein zweiphasiges Commit vermieden wird, das von anderen NoSQL-Datenbanken mit Master-Slave-, Shared-Nothing-Clusterunterstützung verwendet wird.

Wenn ein Konflikt beim Lesen auftritt, verwendet Riak read repair , um zu versuchen, nur die neuesten Daten zurückzugeben. Letztendlich kann die Client-Anwendung jedoch in Abhängigkeit von den von Ihnen verwendeten Konsistenz- und Verfügbarkeitseinstellungen mit mehreren Versionen präsentiert und aufgefordert werden, selbst zu entscheiden.

In einigen Situationen ist dieser Kompromiss wünschenswert, und viele Anwendungen können auf der Grundlage der präsentierten Daten intuitiv wissen, welche Version zu verwenden ist und welche Version zu verwerfen ist.

Sekundäre Indizierung

Sekundäre Indizes sind Indizes für bestimmte Daten innerhalb eines Werts. Die meisten Schlüsselwertspeicher überlassen diese Indizierung der Anwendung. Jedoch ist Riak anders und verwendet ein Schema, das Dokument - basierte Partitionierung genannt wird, das eine sekundäre Indexierung ermöglicht.

Die dokumentbasierte Partitionierung setzt voraus, dass Sie JSON-Strukturen in die Riak-Datenbank schreiben. Sie können dann Indizes für bestimmte benannte Eigenschaften innerhalb dieser JSON-Struktur einrichten (siehe Abbildung):

{"Auftrags-ID": 5001, "Kunden-ID": 1429857, "Auftragsdatum": "2014-09-24 "," Total ": 134. 24}

Wenn Sie eine Anwendung haben, die die Bestellungen eines Kunden für den vorherigen Monat anzeigt, dann möchten Sie alle Datensätze wie gezeigt abfragen, wobei die Kunden-ID ein fester Wert ist (1429857) und das Bestelldatum liegt innerhalb eines bestimmten Bereichs (Anfang und Ende des Monats).

In den meisten Schlüsselwertspeichern erstellen Sie einen anderen Bucket, dessen Schlüssel die kombinierte Kundennummer und der Monat ist. Der Wert ist eine Liste mit Bestellungs-IDs. In Riak fügen Sie jedoch einfach einen sekundären Index sowohl für die Kunden-ID (Ganzzahl) als auch für das Bestelldatum (Datum) hinzu, was zusätzlichen Speicherplatz beansprucht, aber den Vorteil hat, für den Anwendungsentwickler transparent zu sein.

Diese Indizes werden auch live aktualisiert - das bedeutet, dass es keine Verzögerung zwischen der Aktualisierung eines Dokumentwerts in Riak und der Aktualisierung der Indizes gibt. Dieser Live-Zugriff auf Daten ist schwieriger als es scheint. Wenn die Indizes inkonsistent sind, werden Sie niemals die konsistent gehaltenen Daten finden!

Evaluierung von Riak

Basho, die kommerzielle Entität hinter Riak, sagt, dass seine kommende NoSQL-Datenbank der Version 2. 0 immer eine starke Konsistenz hat, eine Behauptung, die andere NoSQL-Anbieter machen. Die Behauptung von NoSQL-Anbietern, immer eine starke Konsistenz zu haben, ist wie der Anspruch, ein starker Vegetarier zu sein … außer sonntags, wenn Sie Roastbeef haben.

Riak ist keine ACID-konforme Datenbank. Ihre Konfiguration kann nicht so geändert werden, dass sie im ACID-Compliance-Modus ausgeführt wird. Clients können während des normalen Betriebs oder während der Netzwerkpartitionen inkonsistente Daten erhalten. Riak handelt mit absoluter Konsistenz für erhöhte Verfügbarkeit und Partitionstoleranz.

Das Ausführen von Riak im Modus für starke Konsistenz bedeutet, dass seine Lesereplikate gleichzeitig mit dem primären Master aktualisiert werden. Dies beinhaltet eine zweiphasige Festschreibung - im Grunde genommen schreibt der Hauptknoten in die anderen Knoten, bevor er bestätigt, dass der Schreibvorgang abgeschlossen ist.

Zum Zeitpunkt dieses Schreibens unterstützt Riaks starker Konsistenzmodus keine sekundären Indizes oder komplexen Datentypen (zum Beispiel JSON). Hoffentlich wird Basho dieses Problem in zukünftigen Versionen der Datenbank beheben.

Riak Search (eine umbenannte und integrierte Suchmaschine von Apache Solr verwendet ein eventuell konsistentes Update-Modell) kann bei Verwendung starker Konsistenz zu falschen Ergebnissen führen. Diese Situation tritt auf, weil möglicherweise Daten geschrieben und dann die Transaktion abgebrochen wird, aber die Daten weiterhin für die Indizierung verwendet werden - wodurch ein "falsch-positives" Suchergebnis verbleibt - das Ergebnis ist für die Suchabfrage nicht mehr gültig.

Riak verwendet auch einen separaten Sentinel-Prozess , um zu bestimmen, welcher Knoten bei Failover-Bedingungen ein Master wird. Dieser Prozess ist jedoch nicht hoch verfügbar, was bedeutet, dass es für einige Sekunden möglich ist, dass während eine neue Kopie des -Schirmprozesses online geschaltet wird, ein neuer Knoten nicht hinzugefügt werden kann oder ein neuer Meister gewählt. Sie müssen diese Möglichkeit bei Hochspannungs-Failover-Bedingungen kennen.

Riak hat einige nette Features für Anwendungsentwickler, wie sekundäre Indizierung und integrierte JSON-Wertunterstützung. Die Datenbankreplikation für die Notfallwiederherstellung in anderen Datencentern ist nur in der kostenpflichtigen Version verfügbar, deren Preis auf ihrer Website zu finden ist (Mietpreise werden angezeigt, Lizenzpreise nur für die Anwendung angegeben).

Das Riak Control-Clusterüberwachungstool wird wegen seiner Verzögerungszeit bei der Überwachung von Clustern ebenfalls nicht besonders geschätzt. Riak ist sehr vielversprechend, und wenn Basho in zukünftigen Versionen mehr Enterprise - level Cluster-Management-Einrichtungen hinzufügen wird, wird es zu einem Best-in-Class-Produkt.

Umgang mit Partitionen in NoSQL - Dummies

Die Wahl des Herausgebers

Wie man die Socialcast Mobile App benutzt - dummies

Wie man die Socialcast Mobile App benutzt - dummies

Sogar die stoischste Anwendung wie Microsoft Excel hat ein begleitendes Smartphone-App, natürlich hat Socialcast auch eine. Wenn es so wäre, wäre es nicht wirklich eine Ausrede zu sagen, dass Socialcast nicht sehr sozial wäre, wenn du es nicht mit in die große Welt außerhalb deiner Zelle mitnehmen könntest. Die mobile App ...

Wie man das App Verzeichnis von Yammer benutzt - dummies

Wie man das App Verzeichnis von Yammer benutzt - dummies

Sie haben vielleicht gehört: "Es gibt eine App dafür. "Nun, das ist der Fall bei Yammer, der als einzige Ressource für die Vernetzung am Arbeitsplatz funktioniert. Aber Yammer bietet Ihnen auch eine Menge Apps, mit denen Sie Ihr Arbeitsleben noch einfacher gestalten können. Es gibt zwei Möglichkeiten, auf das App-Verzeichnis zuzugreifen: Option ...

So ​​verwenden Sie die Yammer-Analysetools - Dummies

So ​​verwenden Sie die Yammer-Analysetools - Dummies

Yammer rühmt sich damit als "führendes soziales Unternehmensnetzwerk für Unternehmen" um die Arbeit intelligenter und schneller zu erledigen. "Woher weißt du, ob das wahr ist? Ein guter Weg, um zu sehen, wie es für Sie funktioniert, ist die Analyse von Yammer. Wie greifen Sie auf diese großartigen Tools zu? Es ist einfach. Log ...

Die Wahl des Herausgebers

Die Evolution von Distributed Computing für Big Data - Dummies

Die Evolution von Distributed Computing für Big Data - Dummies

Hinter allen wichtigen Trends des letzten Jahrzehnts, einschließlich Serviceorientierung, Cloud Computing, Virtualisierung und Big Data, ist eine grundlegende Technologie namens Distributed Computing. Einfach gesagt, ohne die Verteilung von Datenverarbeitung wäre keiner dieser Fortschritte möglich. Distributed Computing ist eine Technik, mit der einzelne Computer über geografische Gebiete hinweg miteinander vernetzt werden können, so als ob ...

Drei Anbieter mit Data Mining-Produkten - Dummies

Drei Anbieter mit Data Mining-Produkten - Dummies

Es gibt mehrere Anbieter, die Data-Mining-Produkte verkaufen, die Sie vielleicht in Betracht ziehen möchten. Verwenden Sie mit Ihrem Data Warehouse. Hier sind drei, die eine Überlegung wert sind. Microsoft Microsoft hat das serverseitige Data Mining mit Microsoft SQL Server 2005 eingeführt. Obwohl es nicht so ausgereift und ausgeklügelt wie SAS und SPSS ist, hat Microsoft im Laufe der Zeit seine Fähigkeit bewiesen ...

Grundlagen der Big-Data-Integration - Dummies

Grundlagen der Big-Data-Integration - Dummies

Die fundamentalen Elemente der Big-Data-Plattform verwalten Daten auf neue Weise verglichen mit der traditionellen relationalen Datenbank. Dies liegt daran, dass Skalierbarkeit und hohe Leistung erforderlich sind, um sowohl strukturierte als auch unstrukturierte Daten zu verwalten. Komponenten des Big-Data-Ökosystems von Hadoop bis NoSQL DB, MongoDB, Cassandra, ...

Die Wahl des Herausgebers

So ​​stellen Sie eine Verbindung zu Spotify Mobile her - Dummies

So ​​stellen Sie eine Verbindung zu Spotify Mobile her - Dummies

Die meisten modernen Smartphones sind Wi-Fi-fähig. In ein lokales Netzwerk können Sie Spotify-Tracks mithilfe von Wi-Fi auf Ihr Telefon streamen. Sie können Spotify Mobile zu Hause und über Wi-Fi-Netzwerke in Hotels und Cafés problemlos nutzen - Sie müssen nur sicherstellen, dass Sie angemeldet und verbunden sind. ...

Wie Spotify funktioniert - Dummies

Wie Spotify funktioniert - Dummies

Wie Spotify funktioniert, kann Auswirkungen auf den Festplattenspeicher Ihres Computers haben. Internetverbindung. Spotify funktioniert anders als viele andere Online-Musikdienste, weil es auf mehrere Arten angewiesen ist, um Ihnen reibungslos Musik ohne Verzögerungen zu liefern. In Computing-Sprechen, das Maß der Verzögerung zwischen Anfordern eines Songs und Hören es ...

So ​​erreichen Sie Spotify Support - Dummies

So ​​erreichen Sie Spotify Support - Dummies

Es kann vorkommen, dass Sie eine kleine Hilfe beim Navigieren und Verwenden von Spotify benötigen von deinen Spotify Freunden. Sie können jederzeit Support @ spotify per E-Mail senden. com mit Ihrer Frage oder melden Sie sich bei Twitter an und senden Sie einen Tweet an @spotify. Stellen Sie sicher, dass Sie alle Informationen einschließen, die dem Support-Team helfen könnten, einschließlich Ihres Benutzernamens, damit sie ...