Rilascio del DBMS orientato ai grafi Nebula Graph 3.2

È stato pubblicato il rilascio del DBMS aperto Nebula Graph 3.2, progettato per l'archiviazione efficiente di grandi insiemi di dati interconnessi che formano un grafico che può contare miliardi di nodi e trilioni di connessioni. Il progetto è scritto in C++ e distribuito sotto la licenza Apache 2.0. Le librerie client per l'accesso al DBMS sono predisposte per i linguaggi Go, Python e Java.

Il DBMS utilizza un'architettura distribuita senza condivisione di risorse (shared-nothing), che implica l'avvio di processi di elaborazione di query grafiche indipendenti e autosufficienti e di processi di archiviazione storaged. Il metaservizio orchestra il movimento dei dati e fornisce metainformazioni sul grafico. Per garantire la coerenza dei dati viene utilizzato un protocollo basato sull'algoritmo RAFT.

Caratteristiche principali di Nebula Graph:

  • Garantire la sicurezza limitando l'accesso solo agli utenti autenticati le cui autorizzazioni sono impostate tramite un sistema di controllo degli accessi basato sui ruoli (RBAC).
  • Possibilità di connettere diversi tipi di storage engine. Supporto per espandere il linguaggio di generazione delle query con nuovi algoritmi.
  • Garantire una latenza minima durante la lettura o la scrittura dei dati e mantenere un throughput elevato. Durante il test in un cluster di un nodo graphd e tre nodi storaged, un database da 632 GB, incluso un grafico di 1.2 miliardi di vertici e 8.4 miliardi di bordi, le latenze sono state di pochi millisecondi e il throughput è stato fino a 140mila richieste al secondo.
  • Scalabilità lineare.
  • Un linguaggio di query simile a SQL potente e di facile comprensione. Le operazioni supportate includono GO (attraversamento bidirezionale dei vertici del grafico), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (utilizzando il risultato di una query precedente). Sono supportati gli indici e le variabili definite dall'utente.
  • Garantire elevata disponibilità e resilienza ai guasti.
  • Supporto per la creazione di istantanee con una sezione dello stato del database per semplificare la creazione di copie di backup.
  • Pronto per l'uso industriale (già utilizzato nelle infrastrutture di JD, Meituan e Xiaohongshu).
  • La possibilità di modificare lo schema di archiviazione dei dati e aggiornarlo senza interrompere o influenzare le operazioni in corso.
  • Supporto TTL per limitare la durata dei dati.
  • Comandi per la gestione delle impostazioni e degli host di archiviazione.
  • Strumenti per la gestione dei lavori e la programmazione dell'avvio dei lavori (tra le opere attualmente supportate ci sono COMPACT e FLUSH).
  • Operazioni per trovare il percorso completo e il percorso più breve tra vertici dati.
  • Interfaccia OLAP per l'integrazione con piattaforme di analisi di terze parti.
  • Utilità per importare dati da file CSV o da Spark.
  • Esporta metriche per il monitoraggio utilizzando Prometheus e Grafana.
  • Interfaccia web di Nebula Graph Studio per la visualizzazione di operazioni sui grafici, la navigazione nei grafici, la progettazione di schemi di archiviazione e caricamento dei dati.

Nella nuova versione:

  • Aggiunto il supporto per la funzione extract() per estrarre una sottostringa che corrisponde a una determinata espressione.
  • Impostazioni ottimizzate nel file di configurazione.
  • Aggiunte regole di ottimizzazione per rimuovere l'inutile operatore AppendVertices e disabilitare l'applicazione dei filtri edge e vertex.
  • La quantità di dati copiati per l'operazione JOIN, nonché per gli operatori Traverse e AppendVertices, è stata ridotta.
  • Prestazioni ottimizzate del PERCORSO PIÙ CORTO e del SOTTOGRAFO
  • Allocazione della memoria migliorata (Arena Allocator abilitato).

Fonte: opennet.ru

Aggiungi un commento