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 2024

Video: Azure Friday | Azure Cosmos DB: Get the Most Out of Provisioned Throughput 2024
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

Optimierung sozialer Medien: Anpassung von Inhalten an Specialty Channels - Dummies

Optimierung sozialer Medien: Anpassung von Inhalten an Specialty Channels - Dummies

Eine der besten Möglichkeiten, um Zusätzliche Meilenzahl von Ihren Sozialmedieninhalt ist, sie umzupacken und sie auf verschiedenen Kanälen freizugeben. Wenn Sie einen Blogbeitrag haben und den Beitrag direkt über Social Sharing bewerben, können Sie diesen Blogpost in eine herunterladbare PDF-Datei umwandeln. Wenn die ...

Social-Media-Optimierung: SMART Marketing - Dummies

Social-Media-Optimierung: SMART Marketing - Dummies

Wenn Sie Ihre Social Media-Ziele definiert haben, haben Sie Ihr Ziel identifiziert Zielgruppe und fand heraus, wo sie auf Social-Media-Kanälen zu finden sind, nutzte die Daten aus Analyse-Programmen, um die optimale Zeit zu bestimmen, um in sozialen Medien aktiv zu sein, und eine umfassende Social-Media-Verhaltenspolitik setzen Sie sind bereit, zu bewegen ...

Social Media Optimierung: Was Sie über Semantic Markup wissen sollten - Dummies

Social Media Optimierung: Was Sie über Semantic Markup wissen sollten - Dummies

Wenn Sie möchten Um mit Ihrer Social-Media-Optimierungsstrategie wirklich erfolgreich zu sein, müssen Sie etwas über semantisches Markup wissen. Einfach gesagt ist semantisches Markup ein standardisierter Weg, um Code zu schreiben, der eine Webseite für dumme Maschinen wie Suchmaschinen leicht verständlich macht. Es ist eine Möglichkeit, den Inhalt einer Webseite mit Anmerkungen zu versehen ...

Die Wahl des Herausgebers

Online-Community-Manager sollten ihre Ausbildung ausweiten - Dummies

Online-Community-Manager sollten ihre Ausbildung ausweiten - Dummies

Haben Sie keine Angst, etwas Neues zu lernen. Dies kann bedeuten, dass Sie Artikel über Ihre Branche, die Marke und das Online-Community-Management lesen. Dies kann bedeuten, dass Sie nach Bildung suchen, die es Ihnen ermöglicht, Ihre Community besser zu betreiben. Es schadet nie, grundlegendes Web- oder Blog-Design zu kennen und auf dem neuesten Stand der Technik zu bleiben. Außerdem ...

Online-Community-Manager sollten mit Beispiel führen - Dummies

Online-Community-Manager sollten mit Beispiel führen - Dummies

Ihre Community orientiert sich an Ihnen. Wenn du schwörst und nistest, werden die Mitglieder wissen, dass dieses Verhalten in Ordnung ist. Wenn Sie aber jeden Morgen fröhlich grüßen, folgen sie Ihrem Beispiel. Sogar Leute, die von Drama und Negativität angezogen werden, werden sich entweder an der guten Miene beteiligen, oder sie werden so müde ...

Online Community-Manager Bleiben Sie auf dem neuesten Stand der Trends - dummies

Online Community-Manager Bleiben Sie auf dem neuesten Stand der Trends - dummies

Ob es sich um Ihre Online-Community handelt oder nicht müssen Sie sich der Marktentwicklung bewusst sein. Was kaufen Leute? Wie kommunizieren sie online? Geben sie mehr oder weniger Geld aus? Welche Lebensmittel, Gadgets oder Moden sind rein oder raus? Um auf dem neuesten Stand der Trends zu bleiben, sollten Sie wissen, was und was so ist.

Die Wahl des Herausgebers

Kennenlernen der Aufgabenleiste in Outlook 2007 - dummies

Kennenlernen der Aufgabenleiste in Outlook 2007 - dummies

Ausblick 2007 eine neue Funktion namens To-Do-Leiste, die alle Dinge, die Sie tun müssen, zusammenfasst und sie in einem Bereich auf der rechten Seite des Outlook-Bildschirms anzeigt. Das Ziel der To-Do-Leiste ist es, Ihnen mitzuteilen, was Sie auf einen Blick tun müssen, anstatt ...

ÄNdern der Größe einer Notiz in Outlook 2013 - Hinweise für Dummies

ÄNdern der Größe einer Notiz in Outlook 2013 - Hinweise für Dummies

In Outlook 2013 befolgen alle Regeln dass andere Windows-Boxen folgen, also wenn Sie ein alter Hase beim Verschieben und Ändern der Größe von Boxen in Windows sind, werden Sie in Ordnung sein. Wenn Sie mit Windows und Dialogfeldern noch nicht vertraut sind, machen Sie sich keine Sorgen - Notizen lassen sich genauso einfach in der Größe ändern wie zum Schreiben und Lesen. Ändern ...

Kennenlernen von Ansichten in Outlook 2007 - Dummys

Kennenlernen von Ansichten in Outlook 2007 - Dummys

In Outlook 2007 verfügt jedes Outlook-Modul über eine eigene Auswahl von Ansichten. Jede Art von Ansicht ist so organisiert, dass ein bestimmtes Merkmal Ihrer Informationen auf den ersten Blick sichtbar wird. Sie können die Art ändern, wie Sie eine Ansicht anzeigen, indem Sie sie sortieren, filtern oder gruppieren. Sie können mit Ansichten nicht falsch gehen, weil Sie ...