Release der offenen DBMS , die für die effiziente Speicherung großer Mengen miteinander verknüpfter Daten konzipiert ist, die einen Graphen bilden, der Milliarden von Knoten und Billionen von Verbindungen umfassen kann. Das Projekt ist in C++ geschrieben und unter der Apache 2.0-Lizenz. Die Client-Bibliotheken für den Zugriff auf die DBMS wurden für die Programmiersprachen Go, Python und Java vorbereitet. Das aufstrebende DBMS-Startup VESoft hat vor einigen Tagen die erste Finanzierungsrunde in Höhe von 8 Millionen Dollar.
In der DBMS wird eine verteilte Architektur ohne Ressourcenteilung (shared-nothing) impliziert, die den Betrieb unabhängiger und autarker Anfrageverarbeitungsprozesse graphd und Speicherdienste storaged vorsieht. Die Orchestrierung des Datentransfers und die Bereitstellung von Metainformationen über den Graphen erfolgen durch einen Metadienst. Um die Datenkonsistenz zu gewährleisten, wird ein Protokoll auf Basis des .
Hauptmerkmale von Nebula Graph:
- Sicherstellung durch den Zugang nur für authentifizierte Benutzer, deren Berechtigungen durch ein rollenbasiertes Zugriffsmanagementsystem (RBAC) festgelegt werden.
- Verbindungen zu verschiedenen Typen von Speichermotoren. Unterstützung zur Erweiterung der Abfragesprache durch neue Algorithmen.
- Gewährleistung minimaler Latenzen bei Lesen oder Schreiben von Daten und Aufrechterhaltung einer hohen Durchsatzrate. Bei einem Cluster aus einem graphd-Knoten und drei storaged-Knoten betrug die Datenbankgröße 632 GB und umfasste einen Graphen mit 1,2 Milliarden Knoten und 8,4 Milliarden Kanten, wobei die Latenzen im Bereich mehrerer Millisekunden lagen und die Durchsatzrate bis zu 140.000 Anfragen pro Sekunde betrug.
- Lineare Skalierbarkeit.
- SQL-ähnliche Abfragesprache, die ausreichend leistungsfähig und einfach zu verstehen ist. Unterstützte Operationen umfassen GO (bidirektionales Durchlaufen der Knoten im Diagramm), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (Nutzung des Ergebnisses aus der vorherigen Anfrage). Indizes und benutzerdefinierte Variablen werden unterstützt.
- Gewährleistung einer hohen Verfügbarkeit und Ausfallsicherheit.
- Unterstützung für die Erstellung von Snapshots mit dem aktuellen Status der Datenbank zur Erleichterung von Backups.
- Bereitschaft für den industriellen Einsatz (bereits in der Infrastruktur von Unternehmen wie JD, Meituan und Xiaohongshu im Einsatz).
- Möglichkeit, das Speicherungsschema und die Datenaktualisierung ohne Unterbrechung oder Beeinträchtigung der laufenden Operationen vorzunehmen.
- TTL-Unterstützung zur Begrenzung der Lebensdauer von Daten.
- Befehle zur Verwaltung von Einstellungen und Speichergastgebern.
- Werkzeuge zur Verwaltung von Aufgaben und zur Planung des Ausführungsstarts (derzeit werden nur die Operationen COMPACT und FLUSH unterstützt).
- Operationen zur Suche nach dem vollständigen Pfad und dem kürzesten Pfad zwischen gegebenen Knoten.
- OLAP-Schnittstelle zur Integration mit externen Analyseplattformen.
- Hilfsprogramme zum Import von Daten aus CSV-Dateien oder aus Spark.
- Export von Metriken zur Überwachung mithilfe von Prometheus und Grafana.
- Weboberfläche
zur Visualisierung von Graphoperationen, zur Navigation im Graphen, zum Entwurf des Speicherschemas und zum Laden von Daten.
Quelle: opennet.ru
