Avaldatud on avatud lÀhtekoodiga Nebula Graph 3.2 andmebaas, mis on mÔeldud suurte omavahel seotud andmekogumite efektiivseks salvestamiseks. Selle graafi struktuur vÔib hÔlmata miljardeid sÔlmi ja triljoneid seoseid. Projekt on kirjutatud C++ keeles ja levitatakse Apache 2.0 litsentsi alusel. Andmebaasi kasutamiseks on kooditeegid loodud Go, Python ja Java keeltele.
Andmebaasis kasutatakse jaotatud arhitektuuri ilma ressursside jagamiseta (shared-nothing), mis tÀhendab sÔltumatute ja iseseisvate pÀringute töötlemise protsesside, nagu graphd, ja andmete salvestamise protsesside, nagu storaged, kÀivitamist. Andmete liikumise orkestreerimine ja graafi meta-informatsiooni pakkumine toimub meta-teenuse kaudu. Andmete jÀrjepidevuse tagamiseks kasutatakse RAFT algoritmil pÔhinevat protokolli.
Nebula Graph peamised omadused:
- Turvalisuse tagamine, andes juurdepÀÀsu ainult autentitud kasutajatele, kelle Ă”igusi hallatakse rollipĂ”hise juurdepÀÀsu haldamise (RBAC) sĂŒsteemi kaudu.
- Erinevate salvestusmootori tĂŒĂŒpide ĂŒhendamise vĂ”imalus. Toetab pĂ€ringukeeli uute algoritmidega.
- Tagab minimaalsed viivitused andmete lugemisel vĂ”i kirjutamisel ning sĂ€ilitab kĂ”rge lĂ€bilaskevĂ”ime. Ăhes sĂ”lmes graphd ja kolmes sĂ”lmes storaged, 632 GB suuruse andmebaasi testimise kĂ€igus, mis sisaldab 1,2 miljardi tipu ja 8,4 miljardi serva graafikut, olid viivitused mĂ”ne millisekundi tasemel ning lĂ€bilaskevĂ”ime ulatus kuni 140 000 pĂ€ringut sekundis.
- Lineaarne skaaleeritavus.
- SQL-sarnane pÀringute keel, piisavalt vÔimas ja arusaadav. Toetatakse selliseid operatsioone nagu GO (kahe suuna graafipunktide lÀbimine), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (eelneva pÀringu tulemuse kasutamine). Toetatakse indekseid ja kasutaja mÀÀratud muutujaid.
- Tagab kÔrge kÀttesaadavuse ja tÔrke suhtes vastupidavuse.
- Toetab andmebaasi olekukÀkkide loomist varukoopia loomise lihtsustamiseks.
- Tööstuslikuks kasutamiseks valmis (juba kasutatakse ettevÔtetes nagu JD, Meituan ja Xiaohongshu).
- Andmete salvestus- ja uuendusskeemide muutmise vÔimalus ilma operatsioonide peatamise vÔi mÔjutamiseta.
- TTL-i toetus andmete eluea piiramiseks.
- KĂ€sud salvestussete ja hostide seadete haldamiseks.
- Tööde haldamise ja kÀivitamisplaani tööriistad (hetkel toetatakse COMPACT ja FLUSH tööde jaoks).
- TĂ€ispika tee ja lĂŒhima tee mÀÀramise toimingud antud tippude vahel.
- OLAP-liides, et integreerida kolmandate osapoolte analĂŒĂŒsiplatformidega.
- Kasutusvahendid andmete importimiseks CSV-failidest vÔi Sparkist.
- Metrika eksportimine jÀlgimiseks Prometheuse ja Grafana abil.
- Veebiliides Nebula Graph Studio operatsioonide visualiseerimiseks, graafis navigeerimiseks, salvestusskeemi projekteerimiseks ja andmete laadimiseks.
Uues vÀljaandes:
- Lisatud extract() funktsiooni tugi, et eraldada alamstring, mis vastab mÀÀratud vÀljendile.
- Seadistused konfiguratsioonifailis on optimeeritud.
- Lisatud optimeerimisreeglid kasutut AppendVertices operaatori eemaldamiseks ja harude ja tippude filtrite rakendamise keelamiseks.
- Minimeeritud andmete maht, mis kopeeritakse JOIN operatsiooni jaoks, samuti Traverse ja AppendVertices operaatorite jaoks.
- Optimeeritud SHORTEST PATH ja SUBGRAPH jÔudlus
- Parandatud mÀluhaldust (kasutatakse Arena Allocatorit).
Allikas: opennet.ru
