Lanso një version të ri të DB-së së hapur Nebula Graph 3.2, e cila është e dizajnuar për ruajtjen efikase të grupeve të mëdha të të dhënave të lidhura me njëra-tjetrën, duke formuar një grafik që mund të përfshijë miliarda nyje dhe triliona lidhjesh. Projekti është shkruar në gjuhën C++ dhe shpërndahet nën licencën Apache 2.0. Bibliotekat klientore për qasjen në DB janë përgatitur për gjuhët Go, Python dhe Java.
Në DB aplikohet një arkitekturë e shpërndarë pa ndarje burimesh (shared-nothing), e cila parashikon ekzekutimin e proceseve të pavarura dhe autonome të përpunimit të kërkesave graphd dhe proceseve të ruajtjes storaged. Orkestrimi i lëvizjes së të dhënave dhe ofrimi i metainformacionit mbi grafikun menaxhohet nga shërbimi meta. Për sigurimin e një konsistentës së të dhënave përdoret një protokoll mbi bazën e algoritmit RAFT.
Karakteristikat kryesore të Nebula Graph:
- Sigurimi i sigurisë përmes ofrimit të aksesit vetëm për përdoruesit e autentikuar, të cilat autorizimet e tyre janë vendosur përmes një sistemi të menaxhimit të aksesit të bazuar në role (RBAC).
- Mundësia e lidhjes të tipeve të ndryshme të motorëve të ruajtjes. Mbështetje për zgjatjen e gjuhës së formimit të kërkesave me algoritma të rinj.
- Sigurimi i vonesave minimale në leximin ose shkruajjen e të dhënave dhe mbajtja e një kapaciteti të lartë kalimtar. Gjatë testimit në një klaster me një nyje graphd dhe tre nyje storaged të DB-së prej 632 GB, që përfshin një grafik me 1.2 miliard nyje dhe 8.4 miliard skaje, vonesat ishin në nivelin e disa milisekondave, ndërsa kapaciteti kalimtar arriti deri në 140 mijë kërkesa në sekondë.
- Zgjerueshmëri lineare.
- Gjuha e pyetjeve të ngjashme me SQL, e mjaftueshme e fuqishme dhe e lehtë për t'u kuptuar. Mbështeten operacione si GO (kalimi dyanshëm i nyjeve të graph-it), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (përdorimi i rezultatit nga kërkesa e mëparshme). Indekset dhe variablat e përcaktuar nga përdoruesi mbështeten.
- Sigurimi i një disponibiliteti të lartë dhe qëndrueshmëri ndaj dështimeve.
- Mbështetje për krijimin e snapshot-eve që kapin gjendjen e DB për të lehtësuar krijimin e kopjeve rezervë.
- Gati për përdorim industrial (më se përdoret në infrastrukturën e kompanive JD, Meituan dhe Xiaohongshu).
- Mundësia e ndryshimit të skemës së ruajtjes dhe azhurnimit të të dhënave pa ndalur ose ndikuar në operacionet në zhvillim.
- Mbështetje TTL për kufizimin e kohës së jetës së të dhënave.
- Komandat për menaxhimin e konfigurimeve dhe hosteve të ruajtjes.
- Mjetet për menaxhimin e punëve dhe planifikimin e nisjes së punëve (nga punët, për momentin mbështeten COMPACT dhe FLUSH).
- Operacionet e kërkimit të rrugës së plotë dhe rrugës më të shkurtër midis kulmave të dhëna.
- Interfaca OLAP për integrimin me platformat e jashtme të analizës.
- Utilitat për importimin e të dhënave nga skedarët CSV ose nga Spark.
- Eksportimi i metrikave për monitorim përmes Prometheus dhe Grafana.
- Ndërfaqja Web e Nebula Graph Studio për vizualizimin e operacioneve me graf, navigimin në graf, dizajnimin e skemës së ruajtjes dhe ngarkimin e të dhënave.
NĂ« versionin e ri:
- Shtuar mbështetje për funksionin extract() për nxjerrjen e një nënstringe që i përgjigjet shprehjes së dhënë.
- Optimizuar konfigurimet në skedarin e konfigurimit.
- Shtuar rregulla optimizimi për heqjen e operatorit të padobishëm AppendVertices dhe çaktivizimin e aplikimit të filtrave të skajeve dhe kulmave.
- Reduktuar volumi i të dhënave të kopjuara për operacionin JOIN, si dhe për operatorët Traverse dhe AppendVertices.
- Optimizuar performancën SHORTEST PATH dhe SUBGRAPH.
- Përmirësuar shpërndarjen e memorjes (duke përdorur Arena Allocator).
Burimi: opennet.ru
