Menü
iX Magazin

NoSQL-Datenbank Cassandra 2.2 mit JSON-Unterstützung

Die freie NoSQL-Datenbank Cassandra bekommt mit Version 2.2 neue Funktionen und mehr Tempo spendiert und beherrscht das JSON-Format. Der Dienstleister Datastax aktualisiert zudem seine dazu passende Entwicklungsumgebung.

vorlesen Drucken Kommentare lesen 13 Beiträge
Apache Cassandra 2.2

Die Entwickler der freien NoSQL-Datenbank Cassandra unter dem Dach der Apache Software Foundation haben Version 2.2 veröffentlicht. Sie bietet Performanceverbesserungen und stellt einige neue Features bereit.

Cassandra ist eine schemaorientierte NoSQL-Datenbank und skaliert von zwei oder drei bis zu mehr als 1000 Nodes im produktiven Betrieb. Bekannte Nutzer der Software sind etwa Apple (mit mehr als 75.000 Nodes) und Netflix (mehr als 7.000). Ein Cassandra-Cluster wird oft über mehrere Rechenzentren verteilt, was sowohl zur Steigerung der Verfügbarkeit als auch aus Performancegründen geschieht, um die Daten räumlich näher beim User vorzuhalten. Die (bei Bedarf weltweite) Replikation der Daten ist konfigurierbar, und die Konsistenzanforderungen lassen sich gegebenenfalls für jeden Request separat einstellen.

Mit User-Defined Functions (UDFs) können Anwender nun eigenen Code auf Cassandra-Nodes ausführen lassen. UDFs sind sogenannte ”pure Funktionen”, das heisst: Bei der Abfolge "Eingabewerte hinein - Verarbeitung - Ausgabewert" entstehen keine Seiteneffekte durch externe Libraries oder I/O. Bevorzugte Programmiersprache ist hierbei Java. Alternativ ist auch JavaScript möglich – aus Performancegründen jedoch nicht zu empfehlen.

Per User-Defined Aggregates (UDAs) kann man eigene Aggregationsfunktionen zusammenstellen. UDFs und UDAs werden mit den Kommandos CREATE FUNCTION beziehungsweise CREATE AGGREGATE erzeugt und automatisch im Cluster verteilt. Es müssen also keine Java-Klassen oder jar-Dateien auf die Server kopiert werden. UDFs sind in Version 2.2 noch experimentell, weil das Sandboxing fehlt, das das Ausführen von bösartigem Code verhindert. Dieses wichtige Feature soll in der kommenden Version 3.0 folgen.

Weiterhin neu ist die Möglichkeit, Daten im JSON-Format in Cassandra zu schreiben und zu lesen. Dabei wird der schemafreie Ansatz nicht aufgegeben – die Datenbank nimmt die Daten in Form von JSON entgegen beziehungsweise stellt sie in diesem Format zur Verfügung. Selbst komplexe Datenmodelle mit Collections, wie Sets und Maps, User-Defined-Types und Tupeln, können in JSON gelesen und geschrieben werden.

Ältere Cassandra-Versionen konnten Zugriffsrechte etwa auf Tabellen nur direkt einem User zuordnen. Mit Version 2.2 hält eine rollenbasierte Autorisierung Einzug, die gerade im internen Unternehmenseinsatz mit vielen Anwendern den Administrationsaufwand erheblich vereinfacht.

Der Betrieb unter Windows Server ist jetzt als ”ready for production“ deklariert, neben aktuellen Linux-Distributionen wird also auch Microsofts Serversystem für den Produktivbetrieb unterstützt. Als Entwicklungsumgebung lässt sich zudem Mac OS X nutzen.

Weiterhin steigerten die Entwickler an einigen Stellen die Performance, beispielsweise mit dem neu eingeführten komprimierten Commit-Log und beim ”Message-Coalescing“, das die Kommunikation der Cassandra-Nodes untereinander optimiert. Details zu Funktionen und Fehlerbehebungen stehen im Changelog.

Passend zum neuen Release stellt DataStax Version 1.4 seiner Entwicklungsumgebung DevCenter bereit. Das Unternehmen bietet kommerzielle Dienste und Werkzeuge rund um Cassandra an. In dessen Blog gibt es zudem weitere Informationen zu den neuen Cassandra-Funktionen. (Robert Stupp) / (tiw)