Objavljeno je izdanje otvorenog DBMS Nebula Graph 3.2, dizajniranog za efikasno skladištenje velikih skupova međusobno povezanih podataka koji formiraju graf koji može brojati milijarde čvorova i trilione veza. Projekat je napisan na C++ i distribuiran pod licencom Apache 2.0. Klijentske biblioteke za pristup DBMS-u pripremljene su za jezike Go, Python i Java.
DBMS koristi distribuiranu arhitekturu bez deljenja resursa (shared-nothing), što implicira pokretanje nezavisnih i samodovoljnih procesa obrade grafskih upita i procesa skladištenja. Meta-servis orkestrira kretanje podataka i pruža meta-informacije o grafu. Da bi se osigurala konzistentnost podataka, koristi se protokol baziran na RAFT algoritmu.
Glavne karakteristike Nebula Graph:
- Osiguravanje sigurnosti ograničavanjem pristupa samo na provjerene korisnike čije su dozvole postavljene putem sistema kontrole pristupa zasnovanog na ulozi (RBAC).
- Mogućnost povezivanja različitih tipova motora za skladištenje podataka. Podrška za proširenje jezika za generiranje upita novim algoritmima.
- Osiguravanje minimalne latencije prilikom čitanja ili pisanja podataka i održavanje visoke propusnosti. Kada je testiran u grupi od jednog grafskog čvora i tri uskladištena čvora, baze podataka od 632 GB, uključujući graf od 1.2 milijarde vrhova i 8.4 milijarde ivica, latencije su bile nekoliko milisekundi, a propusnost do 140 hiljada zahtjeva u sekundi.
- Linearna skalabilnost.
- Jezik upita sličan SQL-u koji je moćan i lako razumljiv. Podržane operacije uključuju GO (dvosmjerno prelazak vrhova grafa), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (koristeći rezultat iz prethodnog upita). Podržani su indeksi i korisnički definirane varijable.
- Osiguravanje visoke dostupnosti i otpornosti na kvarove.
- Podrška za kreiranje snimaka sa delom stanja baze podataka radi pojednostavljenja kreiranja rezervnih kopija.
- Spremno za industrijsku upotrebu (već se koristi u infrastrukturi JD, Meituan i Xiaohongshu).
- Mogućnost promjene šeme skladištenja podataka i ažuriranja bez zaustavljanja ili utjecaja na tekuće operacije.
- TTL podrška za ograničavanje trajanja podataka.
- Naredbe za upravljanje postavkama i hostovima za pohranu.
- Alati za upravljanje poslom i zakazivanje pokretanja radova (od trenutno podržanih radova su COMPACT i FLUSH).
- Operacije pronalaženja kompletne putanje i najkraće staze između datih vrhova.
- OLAP interfejs za integraciju sa analitičkim platformama trećih strana.
- Uslužni programi za uvoz podataka iz CSV datoteka ili iz Spark-a.
- Izvezite metriku za praćenje pomoću Prometheusa i Grafane.
- Nebula Graph Studio web sučelje za vizualizaciju rada grafa, navigaciju grafom, dizajniranje pohrane podataka i šeme učitavanja.
U novom izdanju:
- Dodata podrška za funkciju extract() za izdvajanje podniza koji odgovara datom izrazu.
- Optimizirane postavke u konfiguracijskoj datoteci.
- Dodata pravila optimizacije za uklanjanje beskorisnog operatora AppendVertices i onemogućavanje primjene filtera rubova i vrhova.
- Količina podataka kopiranih za JOIN operaciju, kao i za operatore Traverse i AppendVertices je smanjena.
- Optimizirane performanse NAJKRAĆEG PUTA i PODGRAF-a
- Poboljšana alokacija memorije (Arena Allocator je omogućen).
izvor: opennet.ru