lansarea unei baze de date open-source , destinată pentru stocarea eficientă a seturilor mari de date interconectate, formând un grafic care poate conține miliarde de noduri și trilioane de legături. Proiectul este scris în C++ și sub licența Apache 2.0. Bibliotecile client pentru accesarea bazei de date sunt pregătite pentru limbajele Go, Python și Java. Startup-ul care dezvoltă baza de date VESoft a primit acum câteva zile un prim lot de investiții în valoare de 8 milioane de dolari.
În baza de date există o arhitectură distribuită fără partajarea resurselor (shared-nothing), ceea ce implică rularea de procese de procesare a interogărilor graphd și procese de stocare storaged independente și autonome. Orchestrarea transferului de date și furnizarea de metainformații despre grafic sunt gestionate de un serviciu de metadat. Pentru a asigura coerența datelor, se folosește un protocol bazat pe algoritmul .
Caracteristici principale ale Nebula Graph:
- Asigurarea prin furnizarea accesului exclusiv utilizatorilor autentificați, a căror autoritate este definită printr-un sistem de gestionare a accesului pe bază de roluri (RBAC).
- conexiuni între diferite tipuri de motoare de stocare. Suport pentru extinderea limbajului de interogare cu noi algoritmi.
- Asigurarea unor întârzieri minime la citirea sau scrierea datelor și menținerea unei capacități de transfer ridicate. În clusterul format dintr-un nod graphd și trei noduri storaged, baza de date având o dimensiune de 632 GB, care include un grafic cu 1,2 miliarde de vârfuri și 8,4 miliarde de arce, întârzierile au fost la nivelul a câtorva milisecunde, iar capacitatea de transfer a ajuns la 140.000 de interogări pe secundă.
- Scalabilitate liniară.
- Limbaj de cereri asemănător SQL, suficient de puternic și ușor de înțeles. Sunt acceptate operații precum GO (parcurgerea bidirecțională a nodurilor graficului), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (utilizarea rezultatului de la cererea anterioară). Se suportă indecși și variabile definite de utilizator.
- Asigurarea disponibilității ridicate și a rezistenței la defecțiuni.
- Suport pentru crearea de instantanee cu un eșantion al stării bazei de date pentru a facilita realizarea copiilor de rezervă.
- Pregătit pentru aplicare industrială (deja folosit în infrastructura companiilor JD, Meituan și Xiaohongshu).
- Posibilitatea de a schimba schema de stocare și de a actualiza datele fără oprirea sau influențarea operațiunilor în curs.
- Suport TTL pentru limitarea duratei de viață a datelor.
- Comenzi pentru gestionarea setărilor și gazdelor de stocare.
- Instrumente pentru gestionarea lucrărilor și planificarea desfășurării acestora (în prezent, sunt acceptate lucrările COMPACT și FLUSH).
- Operații de căutare a celei mai scurte căi și a căii complete între nodurile date.
- Interfață OLAP pentru integrarea cu platforme externe de analiză.
- Utilitare pentru importul de date din fișiere CSV sau din Spark.
- Exportul metricilor pentru monitorizare prin Prometheus și Grafana.
- Interfața web
pentru vizualizarea operațiunilor cu graficul, navigarea prin grafic, proiectarea schemei de stocare și încărcarea datelor.
Sursa: opennet.ro
