Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Apache Cassandra Grundkurs

Virtual Nodes

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Virtual Nodes (virtuelle Knoten) werden in Cassandra eingesetzt, um, das Hinzufügen und Entfernen von Nodes im Cluster zu beschleunigen. Sehen Sie in diesem Video, wie die Mechanismen hinter Virtual Nodes im Detail funktionieren.
03:59

Transkript

Die Verteilung von Daten in Cassandra wird konzeptuell über eine Ringstruktur dargestellt. Das heißt, jede Node im Cluster befindet sich an einer bestimmten Stelle im Ring, verwaltet eine bestimmte Tokenrange und damit kann jeder Datensatz über den Primärschlüssel, einer Node zugeordnet werden. Klassischerweise wird jeder Node ein Token zugeordnet. Bitte beachten Sie, dass das Wort Token mit zwei verschiedenen Bedeutungen verwendet werden kann. Einerseits kann mit Token die Zahl gemeint sein, die aus einem Primärschlüssel berechnet wird. Andererseits kann Token auch synonym zu Tokenrange verwendet werden. An dieser Stelle ist letzteres der Fall. Welche Probleme können also auftreten, wenn jeder Node nur ein Token, also eine große Tokenrange, zugeordnet wird. Beim Ausfall einer Node werden die Replikas stark belastet, um Anfragen zu beantworten oder eine Ersatznode mit Daten zu befüllen. Beim Hinzufügen einer Node werden im Ring benachbarte Nodes beansprucht, um ihren Bereich der Tokenrange an die neue Node abzugeben. Zur Entspannung dieser Probleme wurde in Version 1.2 das Konzept der VNodes, also virtuellen Nodes eingeführt. Jede Node besteht nun aus einer Menge virtueller Nodes. Standardmäßig sind das 256 Stück. Der so genannte "Partitioner" berechnet nach wie vor aus dem "Partition Key", also einem Teil des Primärschlüssels, das Token eines Datensatzes und kann damit die passende VNode zuordnen. Durch diese künstliche Aufteilung einer großen Tokenrange einer Node, in viele kleine Ranges, erzielt man eine im Allgemeinen bessere Verteilung der Daten, über das Cluster hinweg. Auf diese Art und Weise können auch Reparaturprozesse beim Ausfall einer Node sowie Initialisierungsprozesse beim Hinzufügen einer Node besser parallelisiert werden. Des weiteren können unterschiedliche Hardwarevoraussetzungen bei den Nodes berücksichtigt werden, in dem man schwächere Nodes mit einer geringeren Anzahl an VNodes konfiguriert. Cassandra verteilt die Last auch anhand der Anzahl an VNodes. Sehen wir uns einmal einen Ring ohne VNodes an. Es herrscht ein Replikationsfaktor von drei. Das heißt, jeder Datensatz wird über den Partitioner einer Node zugeordnet, aber zusätzlich noch in zwei weiteren Nodes redundant gespeichert. Deshalb sehen Sie beispielsweise das Kästchen mit der 1 insgesamt dreimal auf der rechten Seite. Wenn nun beispielsweise Node Nummer 5 ausfällt, sind zunächst jeweils eine Replika der Daten von Node 5, 3 und 2 ausgefallen. Sobald Node 5 wieder hergestellt wird, muss sie sich wieder mit den anderen Replikas synchronisieren. Sie kann sich die Daten beispielsweise von Node 1, 2 und 3 holen. Node 4 besitzt zwar auch eine Kopie der Daten von Node 5 und Node 6 besitzt auch eine Kopie der Daten von Node 2, aber die Daten zu einer Tokenrange können nur von einer Node zur selben Zeit geholt werden. Dementsprechend ist der Prozess nicht weiter parallelisierbar. Betrachten wir nun das gleiche Szenario mit VNodes. Der Replikationsfaktor ist weiterhin bei 3. Jede Tokenrange wird also immer noch insgesamt 3 mal vorgehalten. Wenn nun Node 5 ausfällt, die insgesamt 7 Replikas von Tokenranges von VNodes enthält, ist das bei der Wiederherstellung nicht so schlimm. Dadurch, dass Node 5 mehrere kleine Pakete synchronisieren muss, kann der Prozess stärker parallelisiert werden und in diesem Beispiel alle vorhandenen Nodes beteiligt werden. Ebenso kann aufgrund der stärkeren Streuung der Tokenranges, über das Cluster hinweg, die Initialisierung einer komplett neuen Node stärker parallelisiert werden und damit beschleunigt werden. In diesem Video haben Sie gesehen, wie virtuelle Nodes funktionieren und warum dieses Konzept eingeführt wurde. Sie haben erfahren, dass Synchronisations- und Initialisierungsprozesse mit Hilfe von VNodes beschleunigt werden und haben verstanden, dass das an der höheren Parallelisierbarkeit liegt.

Apache Cassandra Grundkurs

Lernen Sie, wie Sie Apache Cassandra als hoch verfügbare und skalierbare Datenbank einsetzen können.

2 Std. 11 min (26 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:24.02.2017
Laufzeit:2 Std. 11 min (26 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!