Η Yandex κυκλοφόρησε τον πηγαίο κώδικα του DBMS της «YDB»

Πρόσφατα ανακοινώθηκε ότι η Yandex κυκλοφόρησε τον πηγαίο κώδικα για το DBMS της, "YDB" , ο οποίος υλοποιεί υποστήριξη για τη διάλεκτο SQL και τις συναλλαγές ACID.

Το ΣΔΒΔ δημιουργήθηκε από την αρχή και αρχικά αναπτύχθηκε με στόχο τη διασφάλιση της ανοχής σφαλμάτων , της αυτόματης αποκατάστασης από βλάβες και της επεκτασιμότητας. Αξίζει να σημειωθεί ότι η Yandex λάνσαρε λειτουργικά clusters YDB, που περιλαμβάνουν περισσότερους από 10 κόμβους, αποθηκεύοντας εκατοντάδες petabytes δεδομένων και διαχειριζόμενοι εκατομμύρια κατανεμημένες συναλλαγές ανά δευτερόλεπτο.

Βασικές καινοτομίες της YDB

Ένα από τα βασικά χαρακτηριστικά του YDB είναι η χρήση ενός σχεσιακού μοντέλου δεδομένων με πίνακες. Η YQL ( YDB Query Language) χρησιμοποιείται για την υποβολή ερωτημάτων και τον ορισμό του σχήματος δεδομένων. Είναι μια διάλεκτος της SQL προσαρμοσμένη για εργασία με μεγάλες, κατανεμημένες βάσεις δεδομένων . Κατά τη δημιουργία ενός σχήματος αποθήκευσης, υποστηρίζεται μια ομαδοποίηση πινάκων σε μορφή δέντρου, παρόμοια με τους καταλόγους σε ένα σύστημα αρχείων. Παρέχεται ένα API για την εργασία με δεδομένα σε μορφή JSON.

Αξιοσημείωτη είναι επίσης η ικανότητά του να δημιουργεί διαμορφώσεις ανεκτικές σε σφάλματα που συνεχίζουν να λειτουργούν όταν δίσκοι, κόμβοι, racks, ακόμη και μεμονωμένα κέντρα δεδομένων αποτυγχάνουν. Το YDB υποστηρίζει σύγχρονη ανάπτυξη και αναπαραγωγή σε τρεις ζώνες διαθεσιμότητας, διατηρώντας παράλληλα την εύρυθμη λειτουργία του συμπλέγματος σε περίπτωση βλάβης μιας ζώνης.

Συμβατότητα με πρόσβαση σε δεδομένα μέσω ερωτημάτων σάρωσης, σχεδιασμένη για την εκτέλεση ad-hoc αναλυτικών ερωτημάτων στη βάση δεδομένων, εκτελούμενη σε λειτουργία μόνο για ανάγνωση και επιστρέφοντας μια ροή grpc.

Επιπλέον, ξεχωρίζει για την αποθήκευση δεδομένων απευθείας σε συσκευές μπλοκ χρησιμοποιώντας το εγγενές στοιχείο PDisk και το επίπεδο VDisk. Εκτός από το VDisk, εκτελείται και το DSProxy, το οποίο αναλύει τη διαθεσιμότητα και την απόδοση των δίσκων για να τους αποκλείσει σε περίπτωση που εντοπιστούν προβλήματα.

Άλλα αξιοσημείωτα χαρακτηριστικά περιλαμβάνουν:

  • Μια ευέλικτη αρχιτεκτονική που σας επιτρέπει να δημιουργήσετε διάφορες υπηρεσίες πάνω από το YDB, μέχρι τις συσκευές εικονικού αποκλεισμού και τις επίμονες ουρές. Καταλληλότητα για διαφορετικούς τύπους φόρτου εργασίας: OLTP και OLAP (αναλυτικά ερωτήματα).
  • Υποστήριξη για διαμορφώσεις πολλών χρηστών (πολλαπλών χρηστών) και διαμορφώσεων χωρίς διακομιστή.
  • Δυνατότητα ελέγχου ταυτότητας πελατών. Οι χρήστες μπορούν να δημιουργήσουν τα δικά τους εικονικά συμπλέγματα και βάσεις δεδομένων σε μια κοινή κοινόχρηστη υποδομή, λαμβάνοντας υπόψη την κατανάλωση πόρων ως προς τον αριθμό των αιτημάτων και το μέγεθος δεδομένων ή ενοικιάζοντας/κρατώντας ορισμένους υπολογιστικούς πόρους και χώρο αποθήκευσης.
  • Δυνατότητα προσαρμογής της ωφέλιμης ζωής των εγγραφών για την αυτόματη διαγραφή απαρχαιωμένων δεδομένων.
  • Η αλληλεπίδραση με το DBMS και η υποβολή αιτημάτων γίνεται χρησιμοποιώντας τη διεπαφή γραμμής εντολών, την ενσωματωμένη διεπαφή ιστού ή το YDB SDK, το οποίο παρέχει βιβλιοθήκες για C++, C# (.NET), Go, Java, Node.js, PHP και Python.
  • Αυτόματη ανάκτηση από βλάβες με ελάχιστη καθυστέρηση στις εφαρμογές και αυτόματη διατήρηση καθορισμένου πλεονασμού κατά την αποθήκευση δεδομένων.
  • Αυτόματη δημιουργία ευρετηρίων στο πρωτεύον κλειδί και δυνατότητα ορισμού δευτερευόντων ευρετηρίων για βελτίωση της αποτελεσματικότητας της αυθαίρετης πρόσβασης στηλών.
  • Οριζόντια επεκτασιμότητα. Καθώς το φορτίο και το μέγεθος των αποθηκευμένων δεδομένων αυξάνεται, το σύμπλεγμα μπορεί να επεκταθεί απλώς συνδέοντας νέους κόμβους. Τα επίπεδα υπολογισμού και αποθήκευσης είναι ξεχωριστά, επιτρέποντάς σας να κλιμακώνετε τον υπολογισμό και την αποθήκευση ξεχωριστά. Το ίδιο το DBMS παρακολουθεί την ομοιόμορφη κατανομή των δεδομένων και το φορτίο, λαμβάνοντας υπόψη τους διαθέσιμους πόρους υλικού. Είναι δυνατή η υλοποίηση γεωγραφικά κατανεμημένων διαμορφώσεων που καλύπτουν πολλαπλά κέντρα δεδομένων σε διαφορετικά μέρη του κόσμου.
  • Υποστήριξη για ένα μοντέλο ισχυρής συνέπειας και συναλλαγές ACID κατά την επεξεργασία ερωτημάτων που εκτείνονται σε πολλούς κόμβους και πίνακες. Για να βελτιώσετε την απόδοση, μπορείτε να απενεργοποιήσετε επιλεκτικά τον έλεγχο συνέπειας.
  • Αυτόματη αναπαραγωγή δεδομένων, αυτόματη κατάτμηση (διαμερισμός, διαμοιρασμός) όταν αυξάνεται το μέγεθος ή το φορτίο και αυτόματη φόρτωση και εξισορρόπηση δεδομένων μεταξύ κόμβων.

Τέλος, αξίζει να σημειωθεί ότι το YDB χρησιμοποιείται σε έργα Yandex, ο κώδικας είναι γραμμένος σε C/C++ και διανέμεται με την άδεια Apache 2.0. Μπορείτε να βρείτε τον πηγαίο κώδικα, καθώς και περισσότερες λεπτομέρειες σχετικά με αυτό, στον ακόλουθο σύνδεσμο.


Προσθήκη ως προτιμώμενης πηγής στην Google