Έκδοση του γραφήματος Νεφελώματος DBMS με προσανατολισμό γραφήματος 3.2

Δημοσιεύτηκε η κυκλοφορία του ανοιχτού DBMS Nebula Graph 3.2, σχεδιασμένο για αποτελεσματική αποθήκευση μεγάλων συνόλων διασυνδεδεμένων δεδομένων που σχηματίζουν ένα γράφημα που μπορεί να αριθμεί δισεκατομμύρια κόμβους και τρισεκατομμύρια συνδέσεις. Το έργο είναι γραμμένο σε C++ και διανέμεται με την άδεια Apache 2.0. Οι βιβλιοθήκες πελατών για πρόσβαση στο DBMS είναι προετοιμασμένες για τις γλώσσες Go, Python και Java.

Το DBMS χρησιμοποιεί μια κατανεμημένη αρχιτεκτονική χωρίς κοινή χρήση πόρων (shared-nothing), η οποία συνεπάγεται την έναρξη ανεξάρτητων και αυτάρκων διαδικασιών επεξεργασίας ερωτημάτων γραφήματος και αποθηκευμένων διαδικασιών αποθήκευσης. Η μετα-υπηρεσία ενορχηστρώνει την κίνηση των δεδομένων και παρέχει μετα-πληροφορίες για το γράφημα. Για να εξασφαλιστεί η συνέπεια των δεδομένων, χρησιμοποιείται ένα πρωτόκολλο που βασίζεται στον αλγόριθμο RAFT.

Κύρια χαρακτηριστικά του Nebula Graph:

  • Εξασφάλιση ασφάλειας με τον περιορισμό της πρόσβασης μόνο σε πιστοποιημένους χρήστες των οποίων τα δικαιώματα ορίζονται μέσω ενός συστήματος ελέγχου πρόσβασης βάσει ρόλου (RBAC).
  • Δυνατότητα σύνδεσης διαφορετικών τύπων μηχανών αποθήκευσης. Υποστήριξη για επέκταση της γλώσσας ερωτημάτων με νέους αλγόριθμους.
  • Εξασφάλιση ελάχιστου λανθάνοντος χρόνου κατά την ανάγνωση ή εγγραφή δεδομένων και διατήρηση υψηλής απόδοσης. Όταν δοκιμάστηκε σε ένα σύμπλεγμα ενός κόμβου γραφήματος και τριών αποθηκευμένων κόμβων, μιας βάσης δεδομένων 632 GB, που περιλαμβάνει ένα γράφημα 1.2 δισεκατομμυρίων κορυφών και 8.4 δισεκατομμυρίων ακμών, οι καθυστερήσεις ήταν μερικά χιλιοστά του δευτερολέπτου και η απόδοση ήταν έως και 140 χιλιάδες αιτήματα ανά δευτερόλεπτο.
  • Γραμμική επεκτασιμότητα.
  • Μια γλώσσα ερωτημάτων που μοιάζει με SQL που είναι ισχυρή και κατανοητή. Οι υποστηριζόμενες λειτουργίες περιλαμβάνουν GO (αμφίδρομη διέλευση κορυφών γραφήματος), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (χρησιμοποιώντας το αποτέλεσμα από προηγούμενο ερώτημα). Υποστηρίζονται ευρετήρια και μεταβλητές που ορίζονται από το χρήστη.
  • Εξασφάλιση υψηλής διαθεσιμότητας και ανθεκτικότητας σε αστοχίες.
  • Υποστήριξη για τη δημιουργία στιγμιότυπων με ένα τμήμα της κατάστασης της βάσης δεδομένων για την απλοποίηση της δημιουργίας αντιγράφων ασφαλείας.
  • Έτοιμο για βιομηχανική χρήση (ήδη χρησιμοποιείται στις υποδομές των JD, Meituan και Xiaohongshu).
  • Η δυνατότητα αλλαγής του σχήματος αποθήκευσης δεδομένων και ενημέρωσης του χωρίς διακοπή ή επηρεασμό των συνεχιζόμενων λειτουργιών.
  • Υποστήριξη TTL για περιορισμό της διάρκειας ζωής δεδομένων.
  • Εντολές για τη διαχείριση των ρυθμίσεων και των κεντρικών υπολογιστών αποθήκευσης.
  • Εργαλεία για τη διαχείριση εργασιών και τον προγραμματισμό εκκινήσεων εργασιών (από τις εργασίες που υποστηρίζονται αυτήν τη στιγμή είναι COMPACT και FLUSH).
  • Πράξεις εύρεσης του πλήρους μονοπατιού και του συντομότερου μονοπατιού μεταξύ δεδομένων κορυφών.
  • Διεπαφή OLAP για ενοποίηση με πλατφόρμες αναλυτικών στοιχείων τρίτων.
  • Βοηθητικά προγράμματα για την εισαγωγή δεδομένων από αρχεία CSV ή από το Spark.
  • Εξαγωγή μετρήσεων για παρακολούθηση με χρήση Prometheus και Grafana.
  • Διεπαφή ιστού Nebula Graph Studio για οπτικοποίηση λειτουργιών γραφήματος, πλοήγηση γραφημάτων, σχεδιασμό αποθήκευσης δεδομένων και σχημάτων φόρτωσης.

Στη νέα έκδοση:

  • Προστέθηκε υποστήριξη για τη συνάρτηση extract() για εξαγωγή μιας υποσυμβολοσειράς που ταιριάζει με μια δεδομένη έκφραση.
  • Βελτιστοποιημένες ρυθμίσεις στο αρχείο διαμόρφωσης.
  • Προστέθηκαν κανόνες βελτιστοποίησης για την αφαίρεση του άχρηστου τελεστή AppendVertices και την απενεργοποίηση της εφαρμογής φίλτρων ακμών και κορυφών.
  • Ο όγκος των δεδομένων που αντιγράφηκαν για τη λειτουργία JOIN, καθώς και για τους τελεστές Traverse και AppendVertices, έχει μειωθεί.
  • Βελτιστοποιημένη απόδοση του SHORT PATH και του SUBGRAPH
  • Βελτιωμένη κατανομή μνήμης (Ενεργοποιήθηκε το Arena Allocator).

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο