Κατανεμημένη έκδοση DBMS TiDB 3.0

Διαθέσιμος κατανεμημένη έκδοση DBMS TiDB3.0αναπτύχθηκε υπό την επίδραση των τεχνολογιών της Google Αγγλικό κλειδί и F1. Το TiDB ανήκει στην κατηγορία των υβριδικών συστημάτων HTAP (Hybrid Transactional/Analytic Processing) ικανών τόσο να παρέχουν συναλλαγές σε πραγματικό χρόνο (OLTP) όσο και να επεξεργάζονται αναλυτικά ερωτήματα. Το έργο είναι γραμμένο στο Go and διανέμονται από άδεια σύμφωνα με το Apache 2.0.

Χαρακτηριστικά TiDB:

  • Υποστήριξη για SQL και παροχή διεπαφής πελάτη που είναι συμβατός με το πρωτόκολλο MySQL, το οποίο διευκολύνει την προσαρμογή των υπαρχουσών εφαρμογών που είναι γραμμένες για MySQL στο TiDB και σας επιτρέπει επίσης να χρησιμοποιείτε κοινές βιβλιοθήκες πελατών. Εκτός από το πρωτόκολλο MySQL, μπορείτε να χρησιμοποιήσετε το API που βασίζεται σε JSON και τη σύνδεση για το Spark για πρόσβαση στο DBMS.
  • Από τα χαρακτηριστικά της SQL, υποστηρίζονται ευρετήρια, συναρτήσεις συγκεντρωτικών στοιχείων, GROUP BY, ORDER BY, DISTINCT εκφράσεις, συγχωνεύσεις (LEFT JOIN / RIGHT JOIN / CROSS JOIN), προβολές, συναρτήσεις παραθύρου και υποερωτήματα. Οι παρεχόμενες ευκαιρίες είναι αρκετές για να οργανωθεί η εργασία με το TiDB τέτοιων διαδικτυακών εφαρμογών όπως το PhpMyAdmin, Gogs και WordPress?
  • Κλιμάκωση και ανθεκτικότητα: Η ισχύς αποθήκευσης και επεξεργασίας μπορεί να κλιμακωθεί απλώς με την προσθήκη νέων κόμβων. Τα δεδομένα κατανέμονται σε κόμβους με πλεονασμό για να επιτραπεί η συνέχιση των λειτουργιών εάν αποτύχουν μεμονωμένοι κόμβοι. Οι αποτυχίες αντιμετωπίζονται αυτόματα.
  • Το σύστημα εγγυάται τη συνέπεια και μοιάζει με ένα μεγάλο DBMS στο λογισμικό πελάτη, παρά το γεγονός ότι τα δεδομένα από πολλούς κόμβους χρησιμοποιούνται στην πραγματικότητα για την ολοκλήρωση της συναλλαγής.
  • Μπορούν να χρησιμοποιηθούν διαφορετικά backend για φυσική αποθήκευση δεδομένων σε κόμβους, για παράδειγμα, τοπικές μηχανές αποθήκευσης GoLevelDB και BoltDB ή μια ιδιόκτητη μηχανή κατανεμημένης αποθήκευσης TiKV.
  • Η δυνατότητα ασύγχρονης αλλαγής του σχήματος αποθήκευσης, επιτρέποντάς σας να προσθέτετε στήλες και ευρετήρια εν κινήσει χωρίς να διακόπτετε την επεξεργασία των συνεχιζόμενων λειτουργιών.

Ο κύριος καινοτομίες:

  • Έχει γίνει δουλειά για την αύξηση της παραγωγικότητας. Στη δοκιμή Sysbench, η έκδοση 3.0 υπερτερεί της διακλάδωσης 2.1 κατά 1.5 φορές σε λειτουργίες επιλογής και ενημέρωσης και στη δοκιμή TPC-C κατά 4.5 φορές. Οι βελτιστοποιήσεις έχουν επηρεάσει διάφορους τύπους ερωτημάτων, συμπεριλαμβανομένων των υποερωτημάτων "IN", "DO" και "NOT EXISTS", λειτουργίες συγχώνευσης πινάκων (JOIN), χρήση ευρετηρίων και άλλα.
    Κατανεμημένη έκδοση DBMS TiDB 3.0Κατανεμημένη έκδοση DBMS TiDB 3.0

  • Μια νέα μηχανή αποθήκευσης, το TiFlash, προστέθηκε για την επίτευξη καλύτερης αναλυτικής απόδοσης (OLAP) μέσω της αποθήκευσης σε στήλη. Το TiFlash συμπληρώνει τον προηγουμένως προσφερόμενο χώρο αποθήκευσης TiKV, ο οποίος αποθηκεύει δεδομένα στο πλαίσιο σειρών σε μορφή κλειδιού/τιμής και είναι πιο κατάλληλο για εργασίες επεξεργασίας συναλλαγών (OLTP). Το TiFlash λειτουργεί παράλληλα με το TiKV και τα δεδομένα συνεχίζουν να αναπαράγονται στο TiKV όπως πριν χρησιμοποιούσαν το πρωτόκολλο Raft για να καθορίσουν τη συναίνεση, αλλά για κάθε ομάδα αντιγράφων Raft δημιουργείται και χρησιμοποιείται ένα επιπλέον αντίγραφο στο TiFlash. Μια τέτοια προσέγγιση επιτρέπει την καλύτερη κατανομή των πόρων μεταξύ των εργασιών OLTP και OLAP και επίσης καθιστά τα δεδομένα συναλλαγών άμεσα διαθέσιμα για αναλυτικά ερωτήματα.

    Κατανεμημένη έκδοση DBMS TiDB 3.0

  • Έχει εφαρμοστεί ένας κατανεμημένος συλλέκτης απορριμμάτων, ο οποίος μπορεί να αυξήσει σημαντικά την ταχύτητα συλλογής απορριμμάτων σε μεγάλες συστάδες και να βελτιώσει τη σταθερότητα.
  • Προστέθηκε μια πειραματική εφαρμογή του συστήματος ελέγχου πρόσβασης βάσει ρόλων (RBAC). Είναι επίσης δυνατό να ορίσετε δικαιώματα πρόσβασης για τις λειτουργίες ANALYZE, USE, SET GLOBAL και SHOW PROCESSLIST.
  • Προστέθηκε η δυνατότητα χρήσης εκφράσεων SQL για εξαγωγή από το αργό αρχείο καταγραφής ερωτημάτων.
  • Εφάρμοσε έναν μηχανισμό γρήγορης ανάκτησης διαγραμμένων πινάκων, που σας επιτρέπει να ανακτήσετε δεδομένα που έχουν διαγραφεί κατά λάθος.
  • Ενοποιημένη μορφή καταγεγραμμένων αρχείων καταγραφής.
  • Προστέθηκε υποστήριξη για απαισιόδοξη λειτουργία κλειδώματος, η οποία κάνει την επεξεργασία συναλλαγών πιο κοντά στη MySQL.
  • Προστέθηκε υποστήριξη για λειτουργίες παραθύρου (συναρτήσεις παραθύρου ή αναλυτικές λειτουργίες) συμβατές με MySQL 8.0. Οι συναρτήσεις παραθύρου επιτρέπουν σε κάθε σειρά ενός ερωτήματος να εκτελεί υπολογισμούς χρησιμοποιώντας άλλες σειρές. Σε αντίθεση με τις συγκεντρωτικές συναρτήσεις, οι οποίες συμπτύσσουν ένα ομαδοποιημένο σύνολο σειρών σε μία μόνο σειρά, οι συναρτήσεις παραθύρου συγκεντρώνονται με βάση τα περιεχόμενα ενός "παραθύρου" που περιλαμβάνει μία ή περισσότερες σειρές από το σύνολο αποτελεσμάτων. Μεταξύ των εφαρμοζόμενων λειτουργιών παραθύρου:
    NTILE, LEAD, LAG, PERCENT_RANK, NTH_VALUE, CUME_DIST, FIRST_VALUE , LAST_VALUE, RANK, DENSE_RANK και ROW_NUMBER.

  • Προστέθηκε πειραματική υποστήριξη για προβολές (VIEW).
  • Βελτιωμένο σύστημα διαμερισμάτων (διαμέριση), πρόσθεσε τη δυνατότητα διανομής δεδομένων σε ενότητες με βάση μια σειρά τιμών ή κατακερματισμών.
  • Προστέθηκε ένα πλαίσιο για την ανάπτυξη προσθηκών, για παράδειγμα, οι προσθήκες έχουν ήδη προετοιμαστεί για χρήση της λίστας επιτρεπόμενων IP ή καταγραφής ελέγχου.
  • Παρείχε πειραματική υποστήριξη για τη λειτουργία "EXPLAIN ANALYZE" για τη δημιουργία ενός σχεδίου εκτέλεσης ερωτημάτων SQL (SQL Plan Management).
  • Προστέθηκε η εντολή next_row_id για να λάβετε το αναγνωριστικό της επόμενης σειράς.
  • Προστέθηκαν νέες ενσωματωμένες λειτουργίες JSON_QUOTE, JSON_ARRAY_APPEND, JSON_MERGE_PRESERVE, BENCHMARK , COALESCE και NAME_CONST.

Πηγή: opennet.ru

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