Avalikustatud on Nebula Graph 3.2 avatud lÀhtekoodiga andmebaas, mis on mÔeldud suurte omavahel seotud andmekogumite tÔhusaks salvestamiseks ja mis vÔib sisaldada miljardeid sÔlmi ning triljoneid sidemeid. Projekt on kirjutatud C++ keeles ja seda levitatakse Apache 2.0 litsentsi alusel. Andmebaasi klientraamatukogud on ette valmistatud Go, Python ja Java keelte jaoks.
Andmebaasis kasutatakse jagatud ressursside arhitektuuri (shared-nothing), mis eeldab sÔltumatute ja iseseisvate pÀringute töötlemise protsesside (graphd) ja ladustamise protsesside (storaged) kÀivitamist. Andmete liikumise koordineerimise ja graafi meta-informatsiooni pakkumise eest vastutab meta-teenus. Andmete jÀrjekindluse tagamiseks kasutatakse RAFT alusel pÔhinevat protokolli.
Nebula Graphi pÔhijooned:
- Turvalisuse tagamine, pakkudes juurdepÀÀsu ainult autentitud kasutajatele, kelle Ă”igused mÀÀratakse rollipĂ”hise juurdepÀÀsuhalduse (RBAC) sĂŒsteemi kaudu.
- Erinevat tĂŒĂŒpi salvestusmootorite ĂŒhendamise vĂ”imalus. Toetatakse pĂ€ringute genereerimise keele laiendamist uute algoritmidega.
- Minimaalsed viivitused andmete lugemisel vĂ”i kirjutamisel ning kĂ”rge lĂ€bilaskevĂ”ime sĂ€ilitamine. Testides ĂŒhesĂ”lmelises klastris, millel on ĂŒks graphd sĂ”lm ja kolm storaged sĂ”lme, ning andmebaas suurusega 632 GB, mis sisaldab 1,2 miljardi sĂ”lmega ja 8,4 miljardi servaga graafi, olid viivitused mĂ”ne millisekundi tasemel ning lĂ€bilaskevĂ”ime ulatus kuni 140 000 pĂ€ringut sekundis.
- Lineaarne skaleeritavus.
- SQL-sarnane pÀringute keel, piisavalt vÔimas ja lihtne mÔista. Toetatakse selliseid operatsioone nagu GO (kahe suuna sÔlmede lÀbimine), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (eelneva pÀringu tulemuse kasutamine). Toetatakse indekseid ja kasutaja mÀÀratletud muutujad.
- KÔrge kergesti kergesti kergesti kergesti kasutatav. JÔudlus.
- Toetatakse andmebaasi oleku lÔike tegemise snapshotide loomist, et hÔlbustada varukoopiate tegemist.
- Tööstuslikuks kasutuseks valmis (juba kasutatakse ettevÔtete JD, Meituan ja Xiaohongshu infrastruktuuris).
- Salvestusskeemi muutmise ja andmete vÀrskendamise vÔimalus ilma olemasolevate operatsioonide peatamise vÔi mÔjutamiseta.
- TTL tugi andmete eluea piiramise jaoks.
- Halduskommandod salvestuspingete ja seadete haldamiseks.
- Tööde haldamise ja tööde kÀivitamise kavandamise tööriistad (praegu toetatakse töid COMPACT ja FLUSH).
- Full path ja lĂŒhima tee otsingu toimingud antud tipude vahel.
- OLAP-liides analĂŒĂŒtikaplatvormide integreerimiseks.
- Utiliitide CSV-failidest vÔi Sparkist andmete importimiseks.
- Meetmete eksportimise vÔimalus jÀlgimiseks kasutades Prometheust ja Grafanat.
- Nebula Graph Studio veebiliides graafiga töötamiseks, graafis navigeerimiseks, salvestusstruktuuri projekteerimiseks ja andmete laadimiseks.
Uues vÀljaandes:
- Toodud funktsiooni extract() tugi alamstringide vÀljavÔtmiseks vastavalt mÀÀratud vÀljendile.
- Konfiguratsioonifailis on optimeeritud seadistused.
- Optimeerimisreeglid on lisatud, et eemaldada kasutu AppendVertices operaator ja keelata servade ja sÔlmede filtrite rakendamine.
- VĂ€hendati andmemahtu, mis kopeeritakse JOIN operatsiooniks, samuti Traverse ja AppendVertices operaatorite jaoks.
- SHORTEST PATH ja SUBGRAPH jÔudlust on optimeeritud.
- MĂ€lu jaotust on parendatud (kasutatud on Arena Allocator).
Allikas: opennet.ru
