Menü
iX Magazin

NoSQL-Datenbank Cassandra rüstet SQL-Funktionen nach

vorlesen Drucken Kommentare lesen 43 Beiträge

Alles war wohl doch nicht überflüssig bei den alten relationalen Datenbanken: Vor kurzem erläuterte Google, warum sein F1 wesentliche SQL-Funktionen bietet. Jetzt bauen die Apache-Entwickler in Version 2 ihrer verteilten NoSQL-Datenbank Cassandra typische Fähigkeiten der Vorfahren ein.

Dazu gehören "leichte" Transaktionen, mit denen sich etwa ähnliches realisieren lässt wie mit dem Isolation Level "serializable" bei traditionellen Datenbanken. Unter der Haube benutzt Cassandra dafür das Paxos-Protokoll. Anwendungen vermeiden deshalb dank einer IF-Klausel bei einem INSERT oder UPDATE, einen Datensatz mehrfach einzufügen oder fälschlicherweise zu ändern.

Mit Triggern macht sich Cassandra eine weitere SQL-Eigenheit zu nutze. Die Implementierung ist noch als experimentell gekennzeichnet und soll sich in Version 2.1 ändern. Doch die Funktionsweise entspricht der in relationalen Datenbanken: Mit CREATE TRIGGER ON ... wird einer Datenbankoperation wie dem Einfügen, Ändern oder Löschen eine Funktion zugeordnet, die jeweils vor ihr ausgeführt wird. So lassen sich etwa die Daten prüfen oder ändern. Trigger, die erst nach der Datenbankoperation laufen, gibt es in Cassandra bislang noch nicht.

Cassandras eigene Abfragesprache CQL rüstet auf Protokollebene die Fähigkeit nach, Ergebnisse stückweise auszugeben. Das soll vor Netz- und Speicherüberlastung schützen, wenn sehr große Datenmengen zu übertragen sind. Außerdem verbessert CQL die Unterstützung von Indizes.

Die sichtbaren und internen Änderungen beschreiben diverse Blog-Beiträge bei Datastax. Cassandra 2.0 ist im Quellcode sowie als lauffähige Version für diverse Linux-Varianten, OS X und Windows erhältlich. Im Vergleich mit anderen NoSQL-Datenbanken soll Cassandra die vorhandene Hardware besser ausnutzen, so soll eine Verdoppelung der Knoten den Durchsatz um 100 Prozent steigern.

Siehe dazu auch: