NoSQL: Eine höhere Schreib-/Leseleistung für Graphendatenbank Neo4j
Das neue Neo4j 2.2 ist ein sich vorrangig auf eine bessere Performance stützendes Release der weltweit verbreitetsten quelloffenen Graphendatenbank.
- Alexander Neumann
Neo Technology hat die Verfügbarkeit von Neo4j 2.2 bekannt gegeben. Die weltweit verbreitetste Graphendatenbank soll nun eine deutlich verbesserte Schreib-/Leseleistung bieten. Dafür sorgen wohl ein neuer Optimierer für die Neo4j-eigene Abfragesprache Cypher und der neue In-Memory-Graph-Cache sowie Verbesserungen der Datenbank-Engine und insbesondere die neue, schnelle Schreibpuffer-Architektur. Sie sollen zu verkürzten Ladevorgängen von Graphen führen und die Leistung von Anwendungen mit gleichzeitig durchgeführten Transaktionen steigern.
Im Vergleich zur vorherigen Version erzielt Neo4j 2.2 eine offenbar zehn- bis hundertmal höhere Schreib-/Leseleistung. Gleichzeitig wird die verfügbare Hardware anscheinend effizienter genutzt. Machbar wird diese Leistungssteigerung durch das erwähnte schnellere Puffern von Updates und ein neues, vereinheitlichtes Transaktionsprotokoll, das jetzt für den Graphen sowie für dessen Indizes zur Verfügung steht. Für den Erstimport sehr großer Graphen greift Neo4j 2.2 auf ein neues Bulk-Import-Dienstprogramm zurück, das Daten aus externen Quellen mit einer Geschwindigkeit von mehr als einer Millionen Datensätzen pro Sekunde importieren können soll. Dadurch unterstützt die Datenbank Graphen mit mehreren Millionen Knoten und Beziehungen.
Der neue In-Memory-Graph-Cache steigert offenbar den Lesedurchsatz um das bis zu 10fache für Leseanwendungen mit vielen gleichzeitigen Transaktionen. Der Cypher-Optimierer wählt nun die beste Ausführungsplanung für Abfragen anhand integrierter statistischer Informationen über Größe und Form des Graphen. Hinzugekommen sind in Neo4j 2.2 noch neue Features zur Visualisierung von Graphen und Abfrageplänen sowie neue integrierte Tutorien und Lernmaterialien, auf die zum Beispiel die Release Notes eingehen.
Was sind Graphendatenbanken?
Bei Graphendatenbanken liegt der Fokus auf der Modellierung und Speicherung der Daten in Form von Knoten und Kanten. Die Knoten enthalten in Form von Properties Eigenschaften eines Objekts, während die Kanten Beziehungen zwischen den Objekten (Knoten) darstellen. Auch Kanten und Beziehungen lassen sich über Properties näher beschreiben. Zielgruppe für solche Graphendatenbanken sind Anwendungen, bei denen die Beziehungen zwischen den Objekten und eine performante Navigation in den Beziehungen im Mittelpunkt stehen. Neo4j eignet sich entsprechend für vernetzte Daten und lässt sich zum Beispiel bei sozialen Netzwerken, beim Routing, der Ursachenforschung, bei wissenschaftlichen Anwendungen, der Empfehlungsermittlung und der Verwaltung von komplexen Objektmodellen einsetzen.
Graphendatenbanken sind zwar nur eine Spielart der sogenannten NoSQL-Datenbanken, doch eine mit Potenzial. So haben die Analysten von Forrester prognostiziert, dass 2017 25 Prozent der Unternehmen Graphendatenbanken nutzen werden. Neo4j ist in diesem Segment unter den Open-Source-Varianten derzeit der deutliche Marktführer. Die Vorgängerversion Neo4j 2.1 erschien vor rund einem Jahr. (ane)