Byl zveřejněn vydání otevřené DBMS Nebula Graph 3.2, určené pro efektivní ukládání velkých sad vzájemně propojených dat, tvořících graf, který může zahrnovat miliardy uzlů a triliony vazeb. Projekt je napsán v jazyce C++ a je distribuován pod licencí Apache 2.0. Klientské knihovny pro přístup k DBMS jsou připraveny pro jazyky Go, Python a Java.
DBMS používá distribuovanou architekturu bez rozdělení prostředků (shared-nothing), což znamená spuštění nezávislých a soběstačných procesů zpracování dotazů graphd a procesů ukládání storaged. Orchestraci přesunu dat a poskytování metainformací o grafu zajišťuje meta-servis. Pro zajištění konzistence dat se používá protokol založený na algoritmu RAFT.
Hlavní vlastnosti Nebula Graph:
- Zajištění bezpečnosti poskytováním přístupu pouze autentizovaným uživatelům, jejichž oprávnění jsou definována systémem řízení přístupu na základě rolí (RBAC).
- Možnost připojení různých typů úložných motorů. Podpora rozšíření jazyka pro formulaci dotazů o nové algoritmy.
- Zajištění minimálních zpoždění při čtení nebo zápisu dat a udržení vysoké propustnosti. Při testování v klastru s jedním uzlem graphd a třemi uzly storaged byla databáze o velikosti 632 GB, zahrnující graf s 1,2 miliardami vrcholů a 8,4 miliardami hran, se zpožděními na úrovni několika milisekund a propustností až 140 tisíc dotazů za sekundu.
- Lineární škálovatelnost.
- SQL-podobný jazyk dotazů, dostatečně mocný a snadno pochopitelný. Podporují se operace jako GO (obousměrné procházení uzlů grafu), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (použití výsledku z předchozího dotazu). Podporují se indexy a uživatelsky definované proměnné.
- Zajištění vysoké dostupnosti a odolnosti vůči poruchám.
- Podpora vytváření snapshotů se stavem databáze pro usnadnění vytváření záloh.
- Připravenost pro průmyslové použití (již se používá v infrastrukturách společností JD, Meituan a Xiaohongshu).
- Možnost změny schématu uložení a aktualizace dat bez zastavení nebo vlivu na prováděné operace.
- Podpora TTL pro omezení životnosti dat.
- Příkazy pro správu nastavení a úložišť.
- Nástroje pro správu úloh a plánování spuštění úloh (zatím jsou podporovány úkoly COMPACT a FLUSH).
- Operace hledání nejdelší cesty a nejkratší cesty mezi danými vrcholy.
- OLAP rozhraní pro integraci s externími analytickými platformami.
- Nástroje pro import dat z CSV souborů nebo z Spark.
- Export metrik pro monitorování pomocí Prometheus a Grafana.
- Webové rozhraní Nebula Graph Studio pro vizualizaci operací s grafem, navigaci po grafu, návrh schématu úložiště a načítání dat.
V novém vydání:
- Byla přidána podpora funkce extract() pro extrakci podřetězce odpovídajícího zadanému výrazu.
- Byla optimalizována nastavení v konfiguračním souboru.
- Byla přidána pravidla optimalizace pro odstranění nepotřebného operátoru AppendVertices a vypnutí aplikace filtrů hran a vrcholů.
- Byl zkrácen objem dat kopírovaných pro operaci JOIN, stejně jako pro operátory Traverse a AppendVertices.
- Byla optimalizována výkonnost SHORTEST PATH a SUBGRAPH.
- Bylo zlepšeno rozdělení paměti (využit Arena Allocator).
Zdroj: opennet.ru
