Wie funktioniert Cassandra horizontale Skalierung ?
Habe ich beobachtet wie ein video auf Cassandra-Datenbank, die sich als sehr effektiv und wirklich erklärt einiges über Cassandra. Ich habe auch bereit einige Artikel und Bücher über Cassandra, aber die Sache, die ich nicht verstehen konnte ist, wie Cassandra horizontale Skalierung. Durch die horizontal skalieren, ich meine weitere Knoten Hinzugefügt werden, um mehr Raum.
Wie ich verstehe, dass jeder Knoten die gleichen Daten, die ich.e, wenn ein Knoten verfügt über 1 TB an Daten und repliziert zu anderen Knoten dies bedeutet, dass alle n Knoten enthalten jeweils 1TB Daten. Bin ich hier etwas fehlt ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie sind etwas fehlt. Daten müssen nicht dupliziert werden n Zeiten, wo n wird die Anzahl der Knoten. Würden Sie in der Regel konfigurieren Sie Ihre Replikations-Faktor (RF), die niedriger ist als die Anzahl der Knoten (N).
Beispielsweise RF = 3, N = 5. Was bedeutet jede Zeile wird 3-mal dupliziert werden über zufällig ausgewählte 3 Knoten 5 Knoten (plus der unberührten Kopie). Wenn ein Knoten ausfällt, haben Sie 3 Kopien an anderer Stelle auf die anderen Knoten.
Funktioniert dies besser in größeren Clustern, z.B. RF = 5, N = 100.
Höheren RF-verbessert die Daten-Redundanz und Geschwindigkeit, verringert aber Ihre Schreibgeschwindigkeit. So gibt es ein Gleichgewicht, wenn Ihre RF ist sehr hoch, wie RF = N, müssten Sie sehr hohe Daten-Redundanz, hohe Widerstandskraft gegen knotenausfälle und hohen Durchsatz Lesen. Auf der anderen Seite Ihre schreib-Durchsatz sehr gering ist, da die Daten repliziert werden muss, um alle Knoten. Wenn ein Knoten ausfällt, in diesem Szenario das schreiben fehlschlagen könnte (je nach client-Konfiguration), wie gewünscht Replikations-Faktor nicht erreicht werden kann.
Die Anzahl der Replikate (d.h. die identischen Daten), die Sie speichern möchten, und für jede partition (Zeile/Stück Daten) ist konfigurierbar. Also, wenn du n Knoten, Sie könnten in der Theorie die Datenbank zu replizieren jede partition n-mal. Dann, horizontale Skalierung würde nicht auftreten, wenn Sie weitere Knoten Hinzugefügt werden. Allerdings, wenn Sie für die Anzahl von Repliken, die 1 oder 2, haben Sie mehr Platz pro Knoten zum speichern von Daten horizontal. Die neuen Daten können dann in den neuen Knoten. Beachten Sie aber, dass mit weniger Replikate, Sie haben eine größere chance, Daten zu verlieren, wenn jede Menge von Knoten nach unten gehen zu einer bestimmten Zeit.
Ja, eine Menge.
Replikation geschieht je nach der Replikation Faktor für den Schlüsselraum. Also, wenn Replikations-Faktor ist 2, zwei Replikate erstellt werden. In einem 20-Knoten-cluster, dies würde bedeuten, nur 3 Knoten wird ein Satz von Daten, die andere 17-Knoten den rest der Daten.
Daten in Knoten aufgeteilt wird, basierend auf den Daten in den Spalten als clustering-Schlüssel. So ein Satz von Zeilen, dass die gleichen Daten in einer cluster-Schlüssel wird in der Spalte platziert werden, in einem einzigen Knoten. Dies ist, um sicherzustellen, dass eine Abfrage brauchen Sie nur Treffer, die diese Knoten erfüllen die Abfrage.
Ja, nicht alle Knoten sind unbedingt Kopien von einander. Je nach Grad der Verfügbarkeit, die ich unterstützen möchte, kann ich meinen Replikation Faktor unteren als die Gesamtzahl der Knoten.
Sagen wir mal so, ich habe ein 2 node cluster mit Replikation Faktor 2. Also in diesem Fall jeder Knoten hat eine vollständige Kopie der Daten. Wenn ich bin running out of disk, ich kann zu lindern einige, dass durch das hinzufügen eines neuen Knotens, während das halten meine Replikations-Faktor-Einstellung 2 (3 Knoten, HF-2).
In dieser Weise, wenn jede Festplatte hat 1 TB Speicher, und ich bin bei 900GB auf jeden, das hinzufügen eines neuen Knoten (während meinem RF das gleiche) macht jeder Knoten dafür verantwortlich nur 2/3 der Daten. Also in diesem Fall würde jeder Knoten halten 600GB Daten (freigeben bis 300GB auf meine 2 vorhandenen Knoten). Und so ich erhöhte meine Festplatte Kapazität von horizontaler Skalierung.
Der Haken ist, dass, obwohl ich 3 Knoten, ich kann es wirklich nur leisten, zu verlieren, einer von Ihnen. Wenn ich verliere zwei Knoten, dann kann ich nicht dienen, meine Fragen.
A replication factor von 3 bedeutet, dass es drei Kopien der Daten innerhalb eines Clusters. Die Replikation Faktor bestimmt auch die Anzahl der Knoten zurück, wenn mittels quorum liest/schreibt. Ein Kollegium Lesen/schreiben bedeutet, dass die Abfrage gesendet wird (RF/2 + 1). Angesichts eines RF-3, die Abfrage wird gesendet werden, um zwei Knoten (Dezimalstellen sind immer abgerundet). Wenn Sie immer das tun, Kollegium liest und schreibt, Sie haben immer konsistente Antworten als mindestens ein Knoten im replica set hat die Daten, die abgefragt wird.
Aus dem Buch Praktische Cassandra, was bedeutet, dass das, was die Formel RF/2 +1 - die Anzahl der Kopien ein Schlüsselraum
Ich denke, das Stück fehlt, ist das Verständnis tokenization. Der cluster hat eine Reihe von tokens, die Bandbreite aufgeteilt ist zwischen den Knoten für das Eigentum. Wenn Daten eingefügt werden, erhält er einen token, der bestimmt seine Platzierung im cluster. (Hinweis: das ist die primäre token Platzierung, und mit einer RF=3, es wäre an zwei anderen stellen in das cluster, in denen die Daten existieren würde.)
Daher, wenn Sie 9 Knoten, die token-Sortiment ist unterteilt in 9 Abschnitte, und die Daten werden über die 9-Knoten als ein token zugewiesen. Wenn jedoch der cluster mit 90 Knoten, der das token-Sortiment gliedert sich in 90 Sektionen und der Daten zugewiesen bekommt und platziert über 90 Knoten.
Verständnis Token und die Platzierung ist entscheidend, und sollte nicht verwechselt werden mit der Topologie.