Öppen källkod DBMS-version , utformad för att effektivt lagra stora mängder relaterad data som bildar en graf som kan innehålla miljarder noder och biljoner länkar. Projektet är skrivet i C++ och under Apache 2.0-licensen. Klientbibliotek för åtkomst till DBMS är förberedda för språken Go, Python och Java. DBMS-startupen VESoft för några dagar sedan Den första investeringen är på 8 miljoner dollar.
I databashanteringssystem en distribuerad delad-ingenting-arkitektur som kör oberoende och självständiga grafiska frågebehandlingsprocesser och lagrade lagringsprocesser. Orkestreringen av dataförflyttning och tillhandahållandet av metainformation om grafen hanteras av metatjänsten. För att säkerställa datakonsistens används ett protokoll baserat på en algoritm .
Huvuddragen i Nebula Graph:
- säkerhet genom att endast bevilja åtkomst till autentiserade användare vars behörigheter är inställda via ett rollbaserat åtkomstkontrollsystem (RBAC).
- anslutning av olika typer av lagringsmotorer. Stöd för att utöka frågespråket med nya algoritmer.
- Säkerställer minimal latens vid läsning eller skrivning av data och bibehåller hög datahastighet. På I ett kluster med en grafnod och tre lagrade noder hade en 632 GB stor databas innehållande en graf med 1.2 miljarder noder och 8.4 miljarder kanter latenser på flera millisekunder och ett dataflöde på upp till 140 tusen förfrågningar per sekund.
- Linjär skalbarhet.
- Ett SQL-liknande frågespråk som är kraftfullt och lätt att förstå. Funktioner som stöds inkluderar GO (dubbelriktad genomgång av grafens hörn), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (med hjälp av resultatet från en tidigare fråga). Index och användardefinierade variabler stöds.
- Säkerställa hög tillgänglighet och motståndskraft mot misslyckanden.
- Stöd för att skapa ögonblicksbilder med en del av databastillståndet för att förenkla skapandet av säkerhetskopior.
- Klar för industriell användning (används redan i infrastrukturen för JD, Meituan och Xiaohongshu).
- Möjligheten att ändra datalagringsschemat och uppdatera det utan att stoppa eller påverka pågående verksamhet.
- TTL-stöd för att begränsa datalivslängden.
- Kommandon för att hantera inställningar och lagringsvärdar.
- Verktyg för att hantera arbete och schemalägga arbetsstarter (av de verk som för närvarande stöds är COMPACT och FLUSH).
- Operationer för att hitta hela vägen och den kortaste vägen mellan givna hörn.
- OLAP-gränssnitt för integration med tredjepartsanalysplattformar.
- Verktyg för att importera data från CSV-filer eller från Spark.
- Exportera mätvärden för övervakning med Prometheus och Grafana.
- webbgränssnitt
för att visualisera grafoperationer, grafnavigering, designa lagringsscheman och ladda data.
Källa: opennet.ru
