Η Alibaba άνοιξε τον κώδικα για το PolarDB, ένα κατανεμημένο DBMS που βασίζεται στην PostgreSQL.

Η Alibaba, μια από τις μεγαλύτερες κινεζικές εταιρείες πληροφορικής, άνοιξε τον πηγαίο κώδικα του διανεμημένου DBMS PolarDB, που βασίζεται στην PostgreSQL. Το PolarDB επεκτείνει τις δυνατότητες της PostgreSQL με εργαλεία για κατανεμημένη αποθήκευση δεδομένων με ακεραιότητα και υποστήριξη για συναλλαγές ACID στο πλαίσιο ολόκληρης της παγκόσμιας βάσης δεδομένων που διανέμεται σε διαφορετικούς κόμβους συμπλέγματος. Το PolarDB υποστηρίζει επίσης κατανεμημένη επεξεργασία ερωτημάτων SQL, ανοχή σφαλμάτων και πλεονάζουσα αποθήκευση δεδομένων για την επαναφορά πληροφοριών μετά από αποτυχία ενός ή περισσότερων κόμβων. Εάν χρειάζεται να επεκτείνετε τον αποθηκευτικό σας χώρο, μπορείτε απλώς να προσθέσετε νέους κόμβους στο σύμπλεγμα. Ο κωδικός είναι ανοιχτός υπό την άδεια Apache 2.0.

Το PolarDB αποτελείται από δύο στοιχεία - επεκτάσεις και ένα σύνολο ενημερώσεων κώδικα για το PostgreSQL. Οι ενημερώσεις κώδικα επεκτείνουν τις δυνατότητες του πυρήνα PostgreSQL και οι επεκτάσεις περιλαμβάνουν στοιχεία που υλοποιούνται ξεχωριστά από την PostgreSQL, όπως μηχανισμό διαχείρισης κατανεμημένων συναλλαγών, καθολικές υπηρεσίες, κατανεμημένο επεξεργαστή ερωτημάτων SQL, πρόσθετα μεταδεδομένα, εργαλεία για διαχείριση συμπλέγματος, ανάπτυξη συμπλέγματος και απλοποίηση της μετεγκατάστασης των υφιστάμενων συστημάτων σε αυτό.

Οι ενημερώσεις κώδικα προσθέτουν στον πυρήνα PostgreSQL μια κατανεμημένη έκδοση του μηχανισμού για τον έλεγχο της παράλληλης πρόσβασης σε δεδομένα με χρήση πολλαπλών εκδόσεων (MVCC, Multiversion Concurrency Control) για διαφορετικά επίπεδα απομόνωσης. Το μεγαλύτερο μέρος της λειτουργικότητας του PolarDB περιλαμβάνεται στις επεκτάσεις, γεγονός που μειώνει την εξάρτηση από την PostgreSQL και απλοποιεί την ενημέρωση και την υλοποίηση λύσεων που βασίζονται στο PolarDB (απλοποιεί τη μετάβαση σε νέες εκδόσεις της PostgreSQL και διατηρεί πλήρη συμβατότητα με την PostgreSQL). Για τη διαχείριση του συμπλέγματος, χρησιμοποιείται η εργαλειοθήκη pgxc_ctl, που βασίζεται σε ένα παρόμοιο βοηθητικό πρόγραμμα από τα PostgreSQL-XC και PostgreSQL-XL.

Υπάρχουν τρία βασικά στοιχεία σε ένα σύμπλεγμα: κόμβοι βάσης δεδομένων (DN), διαχειριστής συμπλεγμάτων (CM) και υπηρεσία διαχείρισης συναλλαγών (TM). Επιπλέον, μπορεί να χρησιμοποιηθεί ένας εξισορροπητής φορτίου μεσολάβησης. Κάθε στοιχείο είναι μια ξεχωριστή διαδικασία και μπορεί να εκτελεστεί σε διαφορετικό διακομιστή. Οι κόμβοι βάσεων δεδομένων εξυπηρετούν ερωτήματα SQL από πελάτες και ταυτόχρονα λειτουργούν ως συντονιστές της εκτέλεσης κατανεμημένων ερωτημάτων με τη συμμετοχή άλλων κόμβων βάσης δεδομένων. Ο διαχειριστής συμπλέγματος παρακολουθεί την κατάσταση κάθε κόμβου βάσης δεδομένων, αποθηκεύει τη διαμόρφωση του συμπλέγματος και παρέχει εργαλεία για τη διαχείριση, τη δημιουργία αντιγράφων ασφαλείας, την εξισορρόπηση φορτίου, την ενημέρωση, την εκκίνηση και τη διακοπή κόμβων. Η υπηρεσία διαχείρισης συναλλαγών είναι υπεύθυνη για τη διατήρηση της συνολικής ακεραιότητας σε ολόκληρο το σύμπλεγμα.

Η Alibaba άνοιξε τον κώδικα για το PolarDB, ένα κατανεμημένο DBMS που βασίζεται στην PostgreSQL.

Το PolarDB βασίζεται στην κατανεμημένη υπολογιστική αρχιτεκτονική Shared-nothing, σύμφωνα με την οποία τα δεδομένα διανέμονται όταν αποθηκεύονται σε διαφορετικούς κόμβους, χωρίς τη χρήση κοινής αποθήκευσης για όλους τους κόμβους, και κάθε κόμβος είναι υπεύθυνος για το τμήμα των δεδομένων που σχετίζεται με αυτόν και εκτελεί ερωτήματα που σχετίζονται με στα δεδομένα. Κάθε πίνακας μοιράζεται σε μέρη (sharding) χρησιμοποιώντας κατακερματισμό με βάση το πρωτεύον κλειδί. Εάν το αίτημα εκτείνεται σε δεδομένα που βρίσκονται σε διαφορετικούς κόμβους, ενεργοποιείται ένας κατανεμημένος κινητήρας εκτέλεσης συναλλαγών και ένας συντονιστής συναλλαγών για να διασφαλιστεί η ατομικότητα, η συνέπεια, η απομόνωση και η αξιοπιστία (ACID).

Για να εξασφαλιστεί η ανοχή σφαλμάτων, κάθε τμήμα αντιγράφεται σε τουλάχιστον τρεις κόμβους. Για την εξοικονόμηση πόρων, τα πλήρη δεδομένα περιλαμβάνουν μόνο δύο αντίγραφα και το ένα περιορίζεται στην αποθήκευση του αρχείου καταγραφής επιστροφής (WAL). Ένας από τους δύο κόμβους με πλήρη αντίγραφα εκλέγεται ως αρχηγός και συμμετέχει στην επεξεργασία αιτημάτων. Ο δεύτερος κόμβος λειτουργεί ως εφεδρικός για το εν λόγω τμήμα δεδομένων και ο τρίτος συμμετέχει στην επιλογή του κύριου κόμβου και μπορεί να χρησιμοποιηθεί για την επαναφορά πληροφοριών σε περίπτωση αποτυχίας δύο κόμβων με πλήρη αντίγραφα. Η αναπαραγωγή δεδομένων μεταξύ κόμβων συμπλέγματος οργανώνεται χρησιμοποιώντας τον αλγόριθμο Paxos, ο οποίος διασφαλίζει έναν συνεπή ορισμό της συναίνεσης σε ένα δίκτυο με δυνητικά αναξιόπιστους κόμβους.

Σημειώνεται ότι η πλήρης λειτουργικότητα του PolarDB DBMS σχεδιάζεται να αποκαλυφθεί σε τρεις εκδόσεις: Στην πρώτη έκδοση θα δημοσιευθούν εργαλεία για αναπαραγωγή, υψηλή διαθεσιμότητα και διαχείριση συμπλέγματος. Η δεύτερη έκδοση θα διαθέτει ένα κατανεμημένο σύστημα εκτέλεσης συναλλαγών που υποστηρίζει ACID μεταξύ κόμβων και κατανεμημένη εκτέλεση SQL. Η τρίτη έκδοση θα περιλαμβάνει ένα πρόσθετο για το PostgreSQL και εργαλεία για ευέλικτη διανομή δεδομένων σε κόμβους, συμπεριλαμβανομένης της προσαρμοστικής τοποθέτησης τμημάτων για την επίτευξη βέλτιστης απόδοσης και τη δυνατότητα επέκτασης του συμπλέγματος με την προσθήκη νέων κόμβων.

Πηγή: opennet.ru

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