Cassandra- und NoSQL-Basics, Teil 2

So funktioniert Cassandra

| Autor / Redakteur: Thomas Drilling / Nico Litzel

Das Logo der NoSQL-Datenbank Cassandra
Das Logo der NoSQL-Datenbank Cassandra (Bild: The Apache Software Foundation)

Cassandra zählt zu den derzeit populärsten NoSQL-Datenbanken. Im zweiten Teil geht es um die grundlegende Arbeitsweise von Cassandra.

Hier geht es zum ersten Teil.

Eine Besonderheit von Cassandra ist die einfache horizontale Skalierbarkeit. Zum Hinzufügen weiterer Nodes muss der Nutzer lediglich im Anschluss an die Cassandra-Installation auf dem ersten Node das komplette Cassandra-Paket einschließlich der Konfigurationsdateien auf die anderen Nodes verteilen, wozu verschiedene Tools, wie z. B. Capistrano verwendet werden können.

Dass sich Rechen-, bzw. Rechnerkapazität bei Bedarf so einfach erweitern lässt, ist eine typische Eigenschaft von NoSQL-Datenbanken und von Lösungen aus dem Big-Data-Umfeld. Skalierung bei SQL-Datenbanken ist dagegen für gewöhnlich nur vertikal möglich, also durch einen „dickeren Rechner“ mittels Aufrüsten der Hardware. Das ist mit einem entsprechenden Kostenaufwand verbunden. Zwar gibt es auch für die gängigen SQL-Datenbanken horizontale Skalierungslösungen, die sind aber immer mit einem zusätzlichen Verwaltungsaufwand verbunden und der Einsatz ist daher nur bis zu einer gewissen Größe sinnvoll, weil es dann einen Mechanismus braucht, der für eine zuverlässige Replikation und Konsistenz der Daten sorgt.

Hinzu kommt, dass durch eine horizontale Skalierung durch das Ergänzen weiterer DB-Knoten sich auch Transaktionen auf die einzelnen Knoten verteilen würden, was die ACID-Eigenschaften einer Datenbanktransaktion per Definition erschwert. Man braucht dann einen zusätzlichen Transaktionsmanager, der die Transaktionen auf die einzelnen Nodes verteilt. Verteilte NoSQL-Architekturen wie Cassandra hingegen können theoretisch unbegrenzt wachsen.

So oder so sind Replikationen in einem RDBMS komplex und fehleranfällig, weil die meisten relationalen Datenbankmanagementsysteme hierzu nach einem Master/Slave-Verfahren arbeiten, wobei stets einige Knoten als Master deklariert werden. Da aber in einem solchen Replikationsmodell nicht alle Knoten gleich sind, kann es beim Ausfall einzelner Master-Knoten Probleme geben. Das ist beim redundanten Ansatz von NoSQL-Architekturen ausgeschlossen.

Cassandra unter der Lupe

Zwar wird Cassandra den Wide-Column Stores zugerechnet, das ist aber bei Licht betrachtet nicht ganz korrekt. Genau genommen kombiniert Cassandra ein Googles Big Table ähnliches Datenmodell mit dem Key-Value-Store-Konzept von Amazon Dynamo. Aus Letzterem resultiert vor allem die einfache Skalierbarkeit.

Bis 2011 betrieb Facebook als Cassandra-Erfinder den seinerzeit größten Cassandra-Cluster, der aus 150 Hosts bestand, eine einzige Datenbank beherbergte und ausschließlich dazu diente, die Suchfunktion in den Inboxes der Facebook-Anwender bereit zu stellen.

Cassandra ist in Java und RubyGems geschrieben und läuft nur unter UNIX-ähnlichen Systemen, wie Mac OS X und Linux. Gerade mit relationalen Datenbanken vertraute Entwickler sollten sich den Aufbau und das Datenmodell von Cassandra näher ansehen, da gewisse Ähnlichkeiten bestehen und im Datenmodell neben grundsätzlich neuen Begriffen auch einige vertraute auftauchen, die allerdings bei Cassandra eine gänzlich andere Bedeutung haben.

Cassandra-Administration

Cassandra wird vorwiegend über die Kommandozeile administriert, wenngleich es inzwischen einige von DataStax bereit gestellte, grafische Werkzeuge gibt. Das frei verfügbare OpsCenter zum Beispiel ist ein Management- und Überwachungstool für Cassandra-Cluster. Es kann unter anderem von der DataStax-Seite heruntergeladen werden.

OpsCenter erlaubt eine grafische Überwachung und Verwaltung von Cassandra-Clustern.
OpsCenter erlaubt eine grafische Überwachung und Verwaltung von Cassandra-Clustern. (DataStax)

Die Enterprise Edition von DataStax bietet allerdings deutlich mehr Funktionen als die Community-Version.

Ebenfalls von DataStax stammt das DataStax DevCenter, ein einfach zu handhabendes visuelles Abfrage-Werkzeug, das ein komfortables Erstellen von CQL-Abragen und -Befehlen erlaubt.

DevCenter erlaubt eine komfortables Erstellen von CQL-Abfragen.
DevCenter erlaubt eine komfortables Erstellen von CQL-Abfragen. (DataStax)

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43734593 / Infrastruktur)