© Excellent backgrounds/Shutterstock.com
Java Magazin
Die Highlights der Graphdatenbank Neo4j 3.0

Mehr Power für Graphen


In den vergangenen fünfzehn Jahren hat sich für Neo4j viel getan und die einstige Java-Bibliothek zur Verwaltung von Datennetzen ist jetzt eine weltweit genutzte Datenbank. Die Version 3.0 hat in drei Kernbereichen einen Sprung nach vorne gemacht: Leistung, Anwenderfreundlichkeit und Infrastruktur.

Die 3er-Version von Neo4j bringt eine große Menge neuer Features, Verbesserungen und Änderungen mit. Vor allem bei der Skalierbarkeit und der Leistung hat sich einiges getan. Denn obwohl Graphdaten nicht als Massendaten ausgelegt sind, und unsere Anwender die bislang existierenden Limits nie erreicht haben, gab es schon seit Längerem den Wunsch, diese zu entfernen. Eigentlich möchte man in seinem Graphmodell nur qualitativ hochwertige Daten speichern, bei denen durch Vorverarbeitung schon Rauschen und Artefakte entfernt wurden – es sei denn, man ist auf der Suche nach solchen Artefakten. Durch den immer breiteren Einsatz besonders im Handel, Telekommunikations- und Netzwerkumfeld, sowie bei Industrie 4.0 und dem Internet of Things wird die Menge der gespeicherten Graphdaten in den nächsten Jahren jedoch beträchtlich ansteigen, sodass wir schon jetzt dafür vorsorgen wollten.

Daher ist jetzt die Anzahl der Knoten, Kanten und Eigenschaften in einem Neo4j-Graph nicht mehr künstlich limitiert. Die Größe der Dateisysteme und die Schreibgeschwindigkeit von Festplatten sind damit die begrenzenden Faktoren. Um trotz der größeren Adressierbarkeit den Platzbedarf für die größeren Block-Offsets zu verringern, nutzen wir komprimierte Pointer, die nur minimalen Speicher benötigen. Für unsere Lucene-Integration haben wir ein automatisches Sharding implementiert, da ein einzelner Lucene-Index nur 2,4 Milliarden Dokumente umfassen kann.

Außerdem wurde in vielen Integrations- und Clustertests sichergestellt, dass Neo4j auch auf großen Maschinen gut skaliert. Innerhalb unserer Partnerschaft mit IBM wird die Datenbank auf Maschinen mit bis zu 160 Kernen und bis zu 512 GB RAM auf Herz und Nieren geprüft. Für die Zukunft ist die Unterstützung von CAPI-Flash mit mehr als 50 TB RAM in Arbeit.

Unser effizienter, kostenbasierter Abfrageplaner für Cypher wird jetzt auch für Statements genutzt, die in die Datenbank schreiben. Bisher war das nur für reine Leseabfragen der Fall. Besonders bei komplexen, gemischten Lese-Schreib-Abfragen profitiert man jetzt vom höheren Durchsatz, da durch die transaktional aktuellen Statistiken bessere Entscheidungen für die Ermittlung eines Ausführungsplan...

Java Magazin
Die Highlights der Graphdatenbank Neo4j 3.0

Mehr Power für Graphen

In den vergangenen fünfzehn Jahren hat sich für Neo4j viel getan und die einstige Java-Bibliothek zur Verwaltung von Datennetzen ist jetzt eine weltweit genutzte Datenbank. Die Version 3.0 hat in drei Kernbereichen einen Sprung nach vorne gemacht: Leistung, Anwenderfreundlichkeit und Infrastruktur.

Michael Hunger


In den vergangenen fünfzehn Jahren hat sich für Neo4j viel getan und die einstige Java-Bibliothek zur Verwaltung von Datennetzen ist jetzt eine weltweit genutzte Datenbank. Die Version 3.0 hat in drei Kernbereichen einen Sprung nach vorne gemacht: Leistung, Anwenderfreundlichkeit und Infrastruktur.

Die 3er-Version von Neo4j bringt eine große Menge neuer Features, Verbesserungen und Änderungen mit. Vor allem bei der Skalierbarkeit und der Leistung hat sich einiges getan. Denn obwohl Graphdaten nicht als Massendaten ausgelegt sind, und unsere Anwender die bislang existierenden Limits nie erreicht haben, gab es schon seit Längerem den Wunsch, diese zu entfernen. Eigentlich möchte man in seinem Graphmodell nur qualitativ hochwertige Daten speichern, bei denen durch Vorverarbeitung schon Rauschen und Artefakte entfernt wurden – es sei denn, man ist auf der Suche nach solchen Artefakten. Durch den immer breiteren Einsatz besonders im Handel, Telekommunikations- und Netzwerkumfeld, sowie bei Industrie 4.0 und dem Internet of Things wird die Menge der gespeicherten Graphdaten in den nächsten Jahren jedoch beträchtlich ansteigen, sodass wir schon jetzt dafür vorsorgen wollten.

Daher ist jetzt die Anzahl der Knoten, Kanten und Eigenschaften in einem Neo4j-Graph nicht mehr künstlich limitiert. Die Größe der Dateisysteme und die Schreibgeschwindigkeit von Festplatten sind damit die begrenzenden Faktoren. Um trotz der größeren Adressierbarkeit den Platzbedarf für die größeren Block-Offsets zu verringern, nutzen wir komprimierte Pointer, die nur minimalen Speicher benötigen. Für unsere Lucene-Integration haben wir ein automatisches Sharding implementiert, da ein einzelner Lucene-Index nur 2,4 Milliarden Dokumente umfassen kann.

Außerdem wurde in vielen Integrations- und Clustertests sichergestellt, dass Neo4j auch auf großen Maschinen gut skaliert. Innerhalb unserer Partnerschaft mit IBM wird die Datenbank auf Maschinen mit bis zu 160 Kernen und bis zu 512 GB RAM auf Herz und Nieren geprüft. Für die Zukunft ist die Unterstützung von CAPI-Flash mit mehr als 50 TB RAM in Arbeit.

Unser effizienter, kostenbasierter Abfrageplaner für Cypher wird jetzt auch für Statements genutzt, die in die Datenbank schreiben. Bisher war das nur für reine Leseabfragen der Fall. Besonders bei komplexen, gemischten Lese-Schreib-Abfragen profitiert man jetzt vom höheren Durchsatz, da durch die transaktional aktuellen Statistiken bessere Entscheidungen für die Ermittlung eines Ausführungsplan...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang