Bol vydaná verzia open-source databázy Nebula Graph 3.2, navrhnutá na efektívne ukladanie rozsiahlych súborov prepojených údajov vytvárajúcich graf, ktorý môže obsahovať miliardy uzlov a trilióny väzieb. Projekt je napísaný v jazyku C++ a distribuuje sa pod licenciou Apache 2.0. Klientské knižnice na prístup k databáze sú pripravené pre jazyky Go, Python a Java.
V databáze sa používa distribuovaná architektúra bez zdieľania zdrojov (shared-nothing), ktorá predpokladá spustenie nezávislých a samostatných procesov spracovania dotazov graphd a procesov ukladania storaged. Orchestráciu presunu údajov a poskytovanie meta-informácií o grafe zabezpečuje meta-servis. Na zabezpečenie konzistencie údajov sa používa protokol na báze algoritmu RAFT.
Hlavné vlastnosti Nebula Graph:
- Zabezpečenie bezpečnosti prostredníctvom poskytovania prístupu iba autentifikovaným používateľom, ktorých práva sú nastavované cez systém riadenia prístupu na základe rolí (RBAC).
- Možnosť pripojenia rôznych typov úložných motorov. Podpora rozšírenia jazyka na formulovanie dopytov novými algoritmami.
- Zabezpečenie minimálnych latencií pri čítaní alebo zápise údajov a udržanie vysokej priepustnosti. Pri testovaní v klastri s jedným uzlom graphd a tromi uzlami storaged s databázou veľkosti 632 GB, ktorá obsahovala graf s 1,2 miliardy vrcholov a 8,4 miliardy hrán, boli latencie na úrovni niekoľkých milisekúnd a priepustnosť dosiahla až 140 000 dotazov 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 na monitorovanie pomocou Prometheus a Grafana.
- Webové rozhranie Nebula Graph Studio na vizualizáciu operácií s grafom, navigáciu po grafe, návrh schémy uloženia a načítanie dát.
V novom vydaní:
- Pridaná podpora funkcie extract() na vyžiadanie podreťazca, ktorý zodpovedá zadanému výrazu.
- Optimalizované nastavenia v konfiguračnom súbore.
- Pridané optimalizačné pravidlá na odstránenie nepotrebného operátora AppendVertices a vypnutie použitia filtrov hrán a vrcholov.
- Znížený objem dát, ktoré sa kopírujú pre operáciu JOIN, ako aj pre operátory Traverse a AppendVertices.
- Optimalizovaná výkonnosť SHORTEST PATH a SUBGRAPH.
- Zlepšené rozdelenie pamäte (použitý Arena Allocator).
Zdroj: opennet.ru
