Η Yandex άνοιξε τον κώδικα για ένα κατανεμημένο DBMS YDB που υποστηρίζει SQL

Η Yandex δημοσίευσε τον πηγαίο κώδικα του κατανεμημένου DBMS YDB, το οποίο υλοποιεί υποστήριξη για τη διάλεκτο SQL και τις συναλλαγές ACID. Το DBMS δημιουργήθηκε από την αρχή και αρχικά αναπτύχθηκε με στόχο τη διασφάλιση της ανοχής σφαλμάτων, της αυτόματης ανάκτησης από βλάβες και της επεκτασιμότητας. Σημειώνεται ότι η Yandex έχει λανσάρει λειτουργικά συμπλέγματα YDB, συμπεριλαμβανομένων περισσότερων από 10 χιλιάδων κόμβων, που αποθηκεύουν εκατοντάδες petabyte δεδομένων και εξυπηρετούν εκατομμύρια κατανεμημένες συναλλαγές ανά δευτερόλεπτο. Το YDB χρησιμοποιείται σε έργα Yandex όπως Market, Cloud, Smart Home, Alice, Metrica και Auto.ru. Ο κώδικας είναι γραμμένος σε C/C++ και διανέμεται με την άδεια Apache 2.0. Για εξοικείωση και γρήγορη εκκίνηση, μπορείτε να χρησιμοποιήσετε ένα έτοιμο δοχείο Docker.

Χαρακτηριστικά έργου:

  • Χρησιμοποιώντας ένα μοντέλο σχεσιακών δεδομένων με πίνακες. Για τα ερωτήματα και τον καθορισμό του σχήματος δεδομένων, χρησιμοποιείται η γλώσσα YQL (YDB Query Language), η οποία είναι μια διάλεκτος της SQL προσαρμοσμένη για εργασία με μεγάλες κατανεμημένες βάσεις δεδομένων. Κατά τη δημιουργία ενός σχήματος αποθήκευσης, υποστηρίζεται μια ομαδοποίηση πινάκων που μοιάζει με δέντρο, που θυμίζει καταλόγους σε ένα σύστημα αρχείων. Παρέχεται ένα API για εργασία με δεδομένα σε μορφή JSON.
    Η Yandex άνοιξε τον κώδικα για ένα κατανεμημένο DBMS YDB που υποστηρίζει SQL
  • Υποστήριξη για πρόσβαση σε δεδομένα χρησιμοποιώντας ερωτήματα σάρωσης που έχουν σχεδιαστεί για την εκτέλεση αναλυτικών ερωτημάτων ad-hoc στη βάση δεδομένων, που εκτελούνται σε λειτουργία μόνο για ανάγνωση και επιστρέφουν μια ροή grpc.
  • Η αλληλεπίδραση με το DBMS και η αποστολή αιτημάτων πραγματοποιείται χρησιμοποιώντας τη διεπαφή γραμμής εντολών, την ενσωματωμένη διεπαφή ιστού ή το YDB SDK, το οποίο παρέχει βιβλιοθήκες για C++, C# (.NET), Go, Java, Node.js, PHP και Python.
  • Η δυνατότητα δημιουργίας διαμορφώσεων με ανοχή σφαλμάτων που συνεχίζουν να λειτουργούν όταν μεμονωμένοι δίσκοι, κόμβοι, rack και ακόμη και κέντρα δεδομένων αποτυγχάνουν. Το YDB υποστηρίζει την ανάπτυξη και τη σύγχρονη αναπαραγωγή σε τρεις ζώνες διαθεσιμότητας, διατηρώντας τη λειτουργικότητα του συμπλέγματος σε περίπτωση αποτυχίας μιας από τις ζώνες.
  • Αυτόματη ανάκτηση από αποτυχίες με ελάχιστο λανθάνοντα χρόνο για εφαρμογές και αυτόματη διατήρηση καθορισμένου πλεονασμού δεδομένων.
  • Αυτόματη δημιουργία ευρετηρίων με βάση το πρωτεύον κλειδί και δυνατότητα ορισμού δευτερευόντων ευρετηρίων για βελτίωση της αποτελεσματικότητας της πρόσβασης σε αυθαίρετες στήλες.
  • Οριζόντια επεκτασιμότητα. Καθώς το φορτίο και το μέγεθος των αποθηκευμένων δεδομένων αυξάνεται, το σύμπλεγμα μπορεί να επεκταθεί συνδέοντας απλώς νέους κόμβους. Οι βαθμίδες υπολογισμού και αποθήκευσης διαχωρίζονται, επιτρέποντάς σας να επεκτείνετε χωριστά την υπολογιστική ισχύ και το μέγεθος αποθήκευσης. Το ίδιο το DBMS παρακολουθεί την ομοιόμορφη κατανομή των δεδομένων και του φορτίου, λαμβάνοντας υπόψη τους διαθέσιμους πόρους υλικού. Είναι δυνατή η ανάπτυξη γεωγραφικά κατανεμημένων διαμορφώσεων που καλύπτουν πολλά κέντρα δεδομένων σε διαφορετικά μέρη του κόσμου.
  • Υποστηρίζει το μοντέλο ισχυρής συνέπειας και τις συναλλαγές ACID κατά την επεξεργασία ερωτημάτων που εκτείνονται σε πολλούς κόμβους και πίνακες. Για να βελτιώσετε την απόδοση, μπορείτε να απενεργοποιήσετε επιλεκτικά τον έλεγχο συνέπειας.
  • Αυτόματη αναπαραγωγή δεδομένων, αυτόματη κατάτμηση (διαμερισμός, διαμοιρασμός) όταν αυξάνεται το μέγεθος ή το φορτίο και αυτόματη φόρτωση και εξισορρόπηση δεδομένων μεταξύ κόμβων.
  • Αποθήκευση δεδομένων απευθείας σε συσκευές μπλοκ χρησιμοποιώντας εγγενές στοιχείο PDisk και επίπεδο VDisk. Το DSProxy εκτελείται πάνω από το VDisk, το οποίο αναλύει τη διαθεσιμότητα και τα χαρακτηριστικά απόδοσης των δίσκων προκειμένου να τα εξαλείψει εάν εντοπιστούν προβλήματα.
  • Ευέλικτη αρχιτεκτονική που σας επιτρέπει να δημιουργείτε διάφορες υπηρεσίες πάνω από το YDB, συμπεριλαμβανομένων συσκευών εικονικού μπλοκ και επίμονων ουρών. Καταλληλότητα για διαφορετικούς τύπους φόρτου εργασίας, OLTP και OLAP (αναλυτικά ερωτήματα).
  • Υποστήριξη για διαμορφώσεις πολλαπλών μισθωτών και χωρίς διακομιστή. Δυνατότητα ελέγχου ταυτότητας πελάτη. Οι χρήστες μπορούν να δημιουργήσουν τα εικονικά συμπλέγματα και τις βάσεις δεδομένων τους σε μια κοινή κοινόχρηστη υποδομή, λαμβάνοντας υπόψη την κατανάλωση πόρων σε επίπεδο αριθμού αιτημάτων και μεγέθους δεδομένων ή ενοικιάζοντας/κρατώντας ορισμένους υπολογιστικούς πόρους και χώρο αποθήκευσης.
  • Δυνατότητα ρύθμισης της διάρκειας ζωής των εγγραφών ώστε να αφαιρούνται αυτόματα τα παλιά δεδομένα.

Πηγή: opennet.ru

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