vydanie otvorenej DBMS , určené na efektívne ukladanie veľkých súborov vzájomne prepojených dát, tvoriacich graf, ktorý môže zahŕňať miliardy uzlov a trilióny väzieb. Projekt je napísaný v jazyku C++ a pod licenciou Apache 2.0. Klientske knižnice na prístup k DBMS sú pripravené pre jazyky Go, Python a Java. Rozvíjajúca sa startupová spoločnosť VESoft pred niekoľkými dňami získala prvú tranžu investícií vo výške 8 miliónov dolárov.
V DBMS distribuovaná architektúra bez rozdelenia zdrojov (shared-nothing), ktorá predpokladá spustenie nezávislých a samoobslužných procesov spracovania dopytov graphd a procesov ukladania storaged. Orchestráciou presunu dát a poskytovaním meta-informácií o grafe sa zaoberá meta-servis. Na zabezpečenie konzistencie dát sa používa protokol založený na algoritme .
Hlavné vlastnosti Nebula Graph:
- Zabezpečenie prostredníctvom poskytovania prístupu iba autentifikovaným používateľom, ktorých oprávnenia sú určené prostredníctvom systému správy prístupu na základe rolí (RBAC).
- pripojenia rôznych typov úložných enginov. Podpora rozšírenia jazyka formulovania dopytov novými algoritmami.
- Zabezpečenie minimálnych oneskorení pri čítaní alebo zápise dát a udržanie vysokej priepustnosti. Pri klastri z jedného uzla graphd a troch uzlov storaged DB s veľkosťou 632 GB, vrátane grafu s 1,2 miliardy vrcholov a 8,4 miliardy hrán, boli oneskorenia na úrovni niekoľkých milisekúnd a priepustnosť dosiahla až 140 tisíc dopytov za sekundu.
- Lineárna škálovateľnosť.
- Jazyk dopytov podobný SQL, dostatočne silný a jednoduchý na pochopenie. Podporujú sa také operácie ako GO (dvojúčelové prechádzanie vrcholov grafu), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (použitie výsledku z predchádzajúceho dopytu). Podporujú sa indexy a používateľom definované premenné.
- Zabezpečenie vysokej dostupnosti a odolnosti voči chybám.
- Podpora vytvárania snímok so stavom databázy na zjednodušenie vytvárania záloh.
- Pripravenosť na priemyselné použitie (už sa používa v infraštruktúre spoločností JD, Meituan a Xiaohongshu).
- Možnosť zmeny schémy ukladania a aktualizácie údajov bez zastavenia alebo ovplyvnenia vykonávaných operácií.
- Podpora TTL na obmedzenie životnosti údajov.
- Príkazy na správu nastavení a hostiteľov úložiska.
- Nástroje na správu úloh a plánovanie spustenia úloh (z prác zatiaľ podporované COMPACT a FLUSH).
- Operácie hľadania celej cesty a najkratšej cesty medzi zadanými vrcholmi.
- OLAP rozhranie pre integráciu s externými analytickými platformami.
- Nástroje na import dát z CSV súborov alebo zo Sparku.
- Export metrik pre monitorovanie pomocou Prometheus a Grafana.
- Webové rozhranie
na vizualizáciu operácií s grafom, navigáciu po grafe, návrh schémy ukladania a nahrávanie dát.
Zdroj: opennet.ru
