ĂshtĂ« publikuar versioni i hapur i DBMS Nebula Graph 3.2, i dedikuar pĂ«r ruajtjen efikase tĂ« grupeve tĂ« mĂ«dha tĂ« tĂ« dhĂ«nave tĂ« ndĂ«rlidhura, duke formuar njĂ« grafik qĂ« mund tĂ« pĂ«rmbajĂ« miliarda nyje dhe triliona lidhje. Projekti Ă«shtĂ« shkruar nĂ« gjuhĂ«n C++ dhe shpĂ«rndahet nĂ«n licencĂ«n Apache 2.0. Bibliotekat e klientit pĂ«r aksesin nĂ« DBMS janĂ« pĂ«rgatitur pĂ«r gjuhĂ«t Go, Python dhe Java.
DBMS përdor një arkitekturë të shpërndarë pa ndarje burimesh (shared-nothing), që nënkupton ekzekutimin e proceseve të pavarura dhe autonomë për përpunimin e kërkesave graphd dhe proceseve të ruajtjes storaged. Orkestrimi i lëvizjes së të dhënave dhe ofrimi i metainformatave mbi grafikun kryhet nga shërbimi meta. Për të siguruar koherencën e të dhënave, përdoret një protokoll i bazuar në algoritmin RAFT.
Karakteristikat kryesore të Nebula Graph:
- Sigurimi i sigurisë përmes ofrimit të aksesit vetëm për përdoruesit e identifikuar, të cilët kanë detyrat e përcaktuara përmes sistemit të menaxhimit të aksesit bazuar në role (RBAC).
- Mundësia për të lidhur lloje të ndryshme motorësh ruajtjeje. Mbështetje për zgjerimin e gjuhës së formimit të kërkesave me algoritme të reja.
- Sigurimi i vonesave minimale në leximin ose shkruarjen e të dhënave dhe ruajtja e kapacitetit të lartë. Gjatë testimit në një grumbull me një nyje graphd dhe tre nyje storaged të DB me përmasë 632 GB, e cila përfshin një grafik me 1.2 miliard nyje dhe 8.4 miliard lidhje, vonesat ishin në nivelin e disa millisekondave, ndërsa kapaciteti arrinte deri në 140 mijë kërkesa në sekondë.
- Skalabilitet lineare.
- Një gjuhë kërkesash e ngjashme me SQL, e mjaftueshme e fuqishme dhe e lehtë për t'u kuptuar. Operacione të mbështetura përfshijnë GO (kalim bidirectional i nyjeve të grafit), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (përdorimi i rezultatit të kërkesës së mëparshme). Pasqyrat dhe variablat e përcaktuar nga përdoruesit mbështeten gjithashtu.
- Sigurimi i disponueshmërisë së lartë dhe qëndrueshmërisë ndaj dështimeve.
- Mbështetje për krijimin e snapsotave të gjendjes së DB për të thjeshtuar krijimin e kopjeve rezervë.
- Gati për përdorim industrial (më parë përdoret në infrastrukturën e kompanive JD, Meituan dhe Xiaohongshu).
- Mundësia për të ndryshuar skemat e ruajtjes dhe për të përditësuar të dhënat pa ndaluar ose ndikuar në operacionet që po kryhen.
- Mbështetje për TTL për të kufizuar jetën e të dhënave.
- Komanda për menaxhimin e cilësimeve dhe hosteve të ruajtjes.
- Vegla për menaxhimin e punëve dhe planifikimin e nisjes së punëve (përjashtimisht, përmbushen punët COMPACT dhe FLUSH).
- Operacione për të kërkuar rrugët e plota dhe rrugën më të shkurtër midis nyjeve të caktuara.
- Ndërfaqja OLAP për integrim me platforma të jashtme analitike.
- Ushtritë për importimin e të dhënave nga skedarë CSV ose nga Spark.
- Ekspozimi i metricave për monitorim përmes Prometheus dhe Grafana.
- Ndërfaqja web Nebula Graph Studio për vizualizimin e operacioneve me grafik, navigimin në grafik, projektimin e skemës së ruajtjes dhe ngarkimin e të dhënave.
Në lëshimin e ri:
- Shtuar mbështetje për funksionin extract() për nxjerrjen e nënstringut që përputhet me shprehjen e caktuar.
- Optimizuar cilësimet në skedarin e konfigurimit.
- Shtuar rregullat e optimizimit për eliminimin e operatorit të padëshiruar AppendVertices dhe ndalimin e aplikimit të filtreve të lidhjeve dhe nyjeve.
- E reduktuar sasia e të dhënave që kopjohen për operacionin JOIN, si dhe për operatorët Traverse dhe AppendVertices.
- Optimizuar performancën e SHORTEST PATH dhe SUBGRAPH.
- Përmirësuar ndarja e memories (aktivizuar Arena Allocator).
Burimi: opennet.ru
