Vier gewinnt...

Neo4j 4.0 erschienen: Der Fokus liegt auf Performance und Skalierbarkeit

Michael Simons

© Shutterstock / Eduard Muzhevskyi

Das aktuelle Major Release von der Graphendatenbank Neo4j trägt die Nummer 4.0.. Mehr als ein Jahr nach dem Release von Version 3.5 erscheint Neo4j 4.0 dieser Tage offiziell. Michael Simons, Software Engineer bei Neo4j, hat die Neuerungen für uns zusammengefasst.

Neo4j 4.0 baut auf die bekannte, native Graph-Engine auf und bietet die Grundlagen für aktuelle und kommende Applikationen:

  • Performance: Die Datenbank-Engine ist in der Lage, konsistent niedrige Antwortzeiten auch bei Abfragen über mehrere Knoten und Kanten hinweg in großen, verbundenen Datenmengen zu gewährleisten
  • Agilität: Der Graph wird prinzipiell schemalos gestaltet und kann so problemlos den sich ändernden Geschäftsanforderungen gepasst werden, gleichzeitig steht mit Cypher eine deklarative Abfragesprache zur Verfügung, die es nicht nur Entwicklern ermöglicht, diesen Graphen zu nutzen.
  • Zugänglichkeit: Tools um die Datenbank herum ermöglichen Zugang für Datenanalysten und Entwickler gleichermaßen.
  • Sicherheit: Sensitive Daten erfordern entsprechende Behandlung: Die Unterstützung von LDAP und entsprechenden Directory-Services, rollenbasierter Zugriff und Security-Logs unterstützen dies.
  • High-Availability und Skalierbarkeit: Causal-Clustering ermöglicht nicht nur einen kontinuierlichen 24×7 Betrieb, sondern auch Skalierbarkeit.

Emil Eifrem, CEO und Mitbegründer von Neo4j, äußerte sich im Zuge der Veröffentlichung von Neo4j 4.0 ebenfalls zum Release:

Mit Neo4j 4.0 heben wir die Messlatte für Graphdatenbanken deutlich an. Unser verstärktes Investment in der Entwicklung hat sich im neuen Release voll ausgezahlt – mit höherer Skalierbarkeit, Performance und Sicherheit von Graphdatenbanken, wie auch Datenbanken im Allgemeinen. Unsere Kunden fordern uns immer wieder mit neuen Graph-Anwendungen und wünschen sich dafür unbegrenzte Skalierbarkeit sowie mehr Flexibilität in der Entwicklung und Bereitstellung. Gleichzeitig müssen Sicherheit und Datenschutz gewahrt werden. Mit Neo4j 4.0 gehen wir auf diese Herausforderung gezielt ein.

Skalierbarkeit im Fokus

Neo4j 4.0 baut auf den oben genannten Säulen auf und adressiert insbesondere die Skalierbarkeit, weil Datenbestände kontinuierlich wachsen, diverse Quellen und diverse Nutzer haben. Zusätzlich zur Skalierung durch Clustering, das Datenbestände repliziert und schnellere Antwortzeiten durch Verteilung von Abfragen auf mehrere Knoten ermöglicht, bringt Neo4j mit Fabric ein neues Feature, das Speicherung, Verarbeitung und Analyse von verteilten Datenbeständen über mehre Datenbanken ermöglicht. Fabric unterstützt Abfragen über einen einzigen, großen Graphen, der aus mehreren Shards gebildet wird
genauso wie verteilte Abfragen über mehrere Graphen mit anschließender Kombination und Aggregation dieser Daten. Mehr zu Fabric findet sich in der Dokumentation.

Sicherheit via RBAC

Es muss eigentlich nicht erwähnt werden, dass Daten zugriffssicher abgespeichert werden müssen. Neo4j unterstützt seit jeher mehrere unterschiedliche Directory-Services. Neu mit Version 4.0 sind feingranulare Benutzer- und Rollenkonzepte. Einzelnen Benutzern oder Rollen kann detailliert zugewiesen werden, welche Knoten, Eigenschaften und Beziehungen sie lesen, schreiben und traversieren dürfen. Mehr zu den neuen Möglichkeiten, Rechte zu definieren, finden sich in der entsprechenden Gebrauchsanweisung.

Feingranulares Berechtigungssystem (Quelle: Neo4j)

Agilität unter dem Aspekt flexibler Deployments

Mit Neo4j 4.0 kann Neo4j in einer Instanz mehrere Datenbanken („Multidatabase“) verwalten. Diese Datenbanken arbeiten in Isolation von einander und ermöglichen, verschiedene Themen wie Mandantenfähigkeit in B2B und SaaS Szenarien, Instanzen für unterschiedliche Staging-Szenarien während der Entwicklung aber auch regulatorische Aspekte zu adressieren.Auch im Kontext Multidatabase kann Fabric genutzt werden, um eine übergeordnete Sicht zu erstellen.

Agilität unter dem Aspekt Performance

Neo4j 4.0 integriert sich vollständig in eine reaktive Systemarchitektur. Für mehrere Programmiersprachen stehen reaktive Treiber zu Verfügung, die vom Client bis zum Server durchgehend reaktive Programmierung ermöglichen.Mit Spring Data Neo4j RX steht eine experimentelle Spring Data Integration zur Verfügung, die auf dem reaktiven Treiber aufsetzt und heute schon genutzt werden kann. Gerrit Meier beschreibt sie in seinem Artikel auf Medium. Ich selbst beschreibe im Artikel „Reactive multi-tenancy with Neo4j 4.0 and SDN/RX“ viele der in dieser Meldung beschrieben Features und skizziert eine mögliche Verwendung.

Verwandte Themen:

Geschrieben von
Michael Simons
Michael Simons
Michael ist Vater, Ehemann, Radfahrer und Java Champion. Er ist Autor des ersten deutschen Buchs über Spring Boot 2 und Spring 5. Michael ist Software Engineer bei Neo4j. Als Mitgründer und Leiter der EuregJUG in Aachen ist Michael seit langem in der Community-Arbeit engagiert.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: