udgivelsen af den åbne DBMS , designet til effektiv opbevaring af store mængder sammenkoblede data, der danner en graf med milliarder af noder og trillioner af forbindelser. Projektet er skrevet i C++ og er under Apache 2.0-licensen. Klientbiblioteker til adgang til DBMS'en er forberedt til sprog som Go, Python og Java. Startuppen VESoft, der udvikler DBMS, modtog for nogle dage siden den første tranche investeringer på 8 millioner dollars.
I DBMS'en er der en distribueret arkitektur uden ressourceunderopdeling (shared-nothing), hvilket indebærer kørsel af uafhængige og selvforsynende processer til forespørgselsbehandling (graphd) og lagringsprocesser (storaged). Orkestrering af databevægelser og levering af metadata om grafen håndteres af en metatjeneste. For at sikre datakonsistens bruges en protokol baseret på algoritmen .
Hovedfunktioner i Nebula Graph:
- Sikring af ved kun at give adgang til autentificerede brugere, hvis rettigheder defineres via et rollebaseret adgangskontrolsystem (RBAC).
- tilslutning af forskellige typer lagringsmotorer. Understøttelse af udvidelsen af forespørgselssprog med nye algoritmer.
- Sikring af minimale forsinkelser ved læsning eller skrivning af data og opretholdelse af høj gennemstrømning. I et klynge bestående af en graphd-node og tre storaged-noder med en database på 632 GB, der indeholder en graf med 1,2 milliarder noder og 8,4 milliarder kanter, var forsinkelserne på niveau med nogle få millisekunder, og gennemstrømningen nåede op til 140.000 forespørgsler pr. sekund.
- Lineær skalerbarhed.
- SQL-lignende forespørgselssprog, der er både kraftfuldt og let at forstå. Understøttede operationer inkluderer GO (tovejsovergang af grafnoder), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (brug af resultatet fra den tidligere forespørgsel). Indekser og brugerdefinerede variabler understøttes.
- Sikring af høj tilgængelighed og fejlsikkerhed.
- Understøttelse af oprettelse af snapshots af database tilstand for at lette oprettelsen af backup.
- Klar til industriel anvendelse (allerede i brug i infrastrukturen hos virksomheder som JD, Meituan og Xiaohongshu).
- Mulighed for at ændre lagringsskemaet og opdatere data uden at stoppe eller påvirke igangværende operationer.
- TTL-support for limiting the lifespan of data.
- Commands for managing storage settings and hosts.
- Tools for job management and scheduling (currently, only COMPACT and FLUSH jobs are supported).
- Operations for finding the full path and the shortest path between given vertices.
- OLAP interface for integration with third-party analytics platforms.
- Utilities for importing data from CSV files or from Spark.
- Eksport af metrics til overvågning ved hjælp af Prometheus og Grafana.
- Web-interface
til visualisering af grafoperationer, navigation i grafen, design af lagringsskema og dataindlæsning.
Kilde: opennet.ru
