Bolo zverejnené vydanie otvoreného DBMS Nebula Graph 3.2, určeného na efektívne ukladanie veľkých sád vzájomne prepojených údajov, ktoré tvoria graf, ktorý môže počítať miliardy uzlov a bilióny spojení. Projekt je napísaný v C++ a distribuovaný pod licenciou Apache 2.0. Klientske knižnice pre prístup k DBMS sú pripravené pre jazyky Go, Python a Java.
DBMS používa distribuovanú architektúru bez zdieľania zdrojov (shared-nothing), čo znamená spustenie nezávislých a sebestačných procesov spracovania grafických dotazov a procesov ukladania. Meta-služba organizuje pohyb údajov a poskytuje metainformácie o grafe. Na zabezpečenie konzistentnosti údajov sa používa protokol založený na algoritme RAFT.
Hlavné funkcie Nebula Graph:
- Zabezpečenie bezpečnosti obmedzením prístupu iba na overených používateľov, ktorých povolenia sú nastavené prostredníctvom systému riadenia prístupu na základe rolí (RBAC).
- Možnosť pripojenia rôznych typov skladovacích motorov. Podpora rozšírenia jazyka generovania dotazov o nové algoritmy.
- Zabezpečenie minimálnej latencie pri čítaní alebo zápise údajov a udržanie vysokej priepustnosti. Pri testovaní v zhluku jedného grafového uzla a troch uložených uzlov, 632 GB databázy, vrátane grafu 1.2 miliardy vrcholov a 8.4 miliardy hrán, boli latencie niekoľko milisekúnd a priepustnosť bola až 140 tisíc požiadaviek za sekundu.
- Lineárna škálovateľnosť.
- Dotazovací jazyk podobný SQL, ktorý je výkonný a ľahko pochopiteľný. Podporované operácie zahŕňajú GO (obojsmerné prechádzanie vrcholmi grafu), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (s použitím výsledku z predchádzajúceho dotazu). Podporované sú indexy a používateľom definované premenné.
- Zabezpečenie vysokej dostupnosti a odolnosti voči poruchám.
- Podpora vytvárania snímok s výrezom stavu databázy na zjednodušenie vytvárania záložných kópií.
- Pripravené na priemyselné použitie (už používané v infraštruktúre JD, Meituan a Xiaohongshu).
- Možnosť zmeniť schému ukladania údajov a aktualizovať ju bez zastavenia alebo ovplyvnenia prebiehajúcich operácií.
- Podpora TTL na obmedzenie životnosti dát.
- Príkazy na správu nastavení a hostiteľov úložiska.
- Nástroje na riadenie práce a plánovanie spúšťania prác (z aktuálne podporovaných diel sú COMPACT a FLUSH).
- Operácie hľadania úplnej cesty a najkratšej cesty medzi danými vrcholmi.
- Rozhranie OLAP pre integráciu s analytickými platformami tretích strán.
- Pomôcky na import údajov zo súborov CSV alebo zo Spark.
- Exportujte metriky na monitorovanie pomocou Prometheus a Grafana.
- Webové rozhranie Nebula Graph Studio na vizualizáciu grafových operácií, navigáciu v grafoch, navrhovanie schém ukladania dát a načítania.
V novom vydaní:
- Pridaná podpora pre funkciu extract() na extrahovanie podreťazca, ktorý sa zhoduje s daným výrazom.
- Optimalizované nastavenia v konfiguračnom súbore.
- Pridané pravidlá optimalizácie na odstránenie zbytočného operátora AppendVertices a zakázanie aplikácie okrajových a vrcholových filtrov.
- Množstvo dát skopírovaných pre operáciu JOIN, ako aj pre operátory Traverse a AppendVertices bolo znížené.
- Optimalizovaný výkon funkcie SHORTEST PATH a SUBGRAPH
- Vylepšené prideľovanie pamäte (Arena Allocator povolený).
Zdroj: opennet.ru