Release der Open Source-Datenbank , die effizient für die Speicherung großer Mengen miteinander verbundener Daten, die ein Graph bilden, ausgelegt ist und Milliarden von Knoten und Billionen von Verbindungen umfassen kann. Das Projekt ist in C++ geschrieben und wird unter der Apache 2.0-Lizenz veröffentlicht. Die Client-Bibliotheken für den Zugriff auf die Datenbank sind für die Programmiersprachen Go, Python und Java verfügbar. Das aufstrebende Datenbank-Startup VESoft hat vor einigen Tagen eine erste Investitionsrunde in Höhe von 8 Millionen Dollar abgeschlossen.
In der Datenbank gibt es eine verteilte Architektur ohne Ressourcenaufteilung (shared-nothing), die den Betrieb unabhängiger und eigenständiger Prozesse zur Abfrageverarbeitung (graphd) und zur Datenspeicherung (storaged) ermöglicht. Die Orchestrierung des Datentransfers und die Bereitstellung von Metainformationen über den Graphen übernimmt ein Metadienst. Um die Datenkonsistenz zu gewährleisten, wird ein protokollbasierter Algorithmus verwendet .
Hauptmerkmale von Nebula Graph:
- Die Sicherheit wird durch den Zugang nur für authentifizierte Benutzer gewährleistet, deren Berechtigungen über ein rollenbasiertes Zugriffskontrollsystem (RBAC) gesteuert werden.
- unterstützt die Verbindung verschiedener Typen von Speichermotoren. Unterstützung für die Erweiterung der Abfragesprache durch neue Algorithmen.
- Die Gewährleistung minimaler Latenzen beim Lesen oder Schreiben von Daten und die Aufrechterhaltung einer hohen Bandbreite. Bei einem Cluster mit einem Knoten (graphd) und drei Knoten (storaged), bei einer Datenbankgröße von 632 GB, die einen Graphen mit 1,2 Milliarden Knoten und 8,4 Milliarden Kanten umfasst, lagen die Latenzen im Bereich von wenigen Millisekunden, und die Bandbreite erreichte bis zu 140.000 Anfragen pro Sekunde.
- Lineare Skalierbarkeit.
- SQL-ähnliche Abfragesprache, die leistungsstark und einfach zu verstehen ist. Es werden Operationen wie GO (bidirektionales Durchlaufen der Graphknoten), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (Nutzung des Ergebnisses der vorherigen Anfrage) unterstützt. Indizes und benutzerdefinierte Variablen werden ebenfalls unterstützt.
- Gewährleistung hoher Verfügbarkeit und Fehlertoleranz.
- Unterstützung bei der Erstellung von Snapshots mit dem Zustand der Datenbank zur Vereinfachung von Sicherungskopien.
- Bereit für industrielle Anwendungen (bereits in der Infrastruktur von Unternehmen wie JD, Meituan und Xiaohongshu im Einsatz).
- Möglichkeit zur Änderung des Speicherschemas und zur Aktualisierung von Daten ohne Unterbrechung oder Einfluss auf die ausgeführten Operationen.
- TTL-Unterstützung zur Begrenzung der Lebensdauer von Daten.
- Befehle zur Verwaltung von Speichereinstellungen und Hosts.
- Tools zur Verwaltung von Arbeiten und zur Planung der Ausführung von Aufgaben (derzeit werden die Aufgaben COMPACT und FLUSH unterstützt).
- Operationen zur Suche nach dem vollständigen und dem kürzesten Pfad zwischen gegebenen Knoten.
- OLAP-Schnittstelle zur Integration mit externen Analyseplattformen.
- Utilities zum Import von Daten aus CSV-Dateien oder aus Spark.
- Der Export von Metriken zur Überwachung erfolgt über Prometheus und Grafana.
- Web-Interface
dient zur Visualisierung von Graphoperationen, zur Navigation im Graphen und zur Gestaltung des Speicherschemas sowie zum Laden von Daten.
Quelle: opennet.ru
