Το OrioleDB συνδυάζει τα πλεονεκτήματα των μηχανών στο δίσκο και στη μνήμη, αυξάνοντας την απόδοση της βάσης δεδομένων και μειώνοντας το κόστος
Πρόσφατα, η είδηση της δημοσίευσης του α νέα μηχανή αποθήκευσης για την PostgreSQL που ονομάζεται "OrioleDB», το οποίο δημιουργήθηκε από την OrioleData.
Ο σκοπός από το OrioleDB είναι παρέχουν γρήγορη και συμπαγή αποθήκευσηo να μην προκαλείται υπερφόρτωση των αρχείων της βάσης δεδομένων με την πάροδο του χρόνου και αυτό δεν απαιτεί τη χρήση διαδικασίας VACUUM που τρέχει περιοδικά για αποκομιδή σκουπιδιών.
Αυτό το κάνει υλοποιώντας εγγραφές αναίρεσης σε επίπεδο γραμμής και μπλοκ., καθώς και αυτόματη συγχώνευση σελίδων. Τα αρχεία καταγραφής αναίρεσης επιπέδου γραμμής και μπλοκ παρέχουν ένα πιο αναλυτικό επίπεδο ελέγχου, επιτρέποντας πιο αποτελεσματικό χειρισμό των αλλαγών δεδομένων. Η δυνατότητα αυτόματης συγχώνευσης σελίδων λειτουργεί ακούραστα στο παρασκήνιο για να ενοποιήσει κατακερματισμένα δεδομένα, βελτιώνοντας περαιτέρω την απόδοση του συστήματος.
Σχετικά με το OrioleDB
Όπως αναφέραμε ήδη, το OrioleDB είναι μια νέα μηχανή για την PostgreSQL, που αναπτύχθηκε με έναν κύριο στόχο: να αποτρέψει την υπερφόρτωση των πινάκων και να εξαλείψει την ανάγκη για τακτική συντήρηση όπως το VACUUM.
Οι δομές που χρησιμοποιούνται στο OrioleDB επιτρέπουν την πιο αποτελεσματική επεξεργασία των λειτουργιών τροποποίησης δεδομένων στη βάση δεδομένων και αντικατάσταση των ελευθερωμένων μπλοκ χωρίς να συσσωρεύονται εγκαίρως. Η δυνατότητα παράκαμψης του VACUUM υλοποιείται μέσω της χρήσης rollback logs (αναίρεση αρχείων καταγραφής) που λειτουργούν σε επίπεδο μπλοκ και μεμονωμένης γραμμής, καθώς και σύστημα αυτόματης συγχώνευσης σελίδων δεδομένων.
Η εγγραφή επαναφοράς σε επίπεδο σειράς επιτρέπει ενημερώσεις με αντικατάσταση δεδομένων, χωρίς να αποδεσμευτεί η τρέχουσα εγγραφή και να δημιουργηθεί μια νέα. Η καταγραφή επαναφοράς σε επίπεδο μπλοκ σάς επιτρέπει να προλαμβάνετε πλειάδες και να ελευθερώνετε χώρο αποθήκευσης αμέσως μετά τη λειτουργία DELETE, παρόλο που παραμένουν ορατές σε αποτυχημένες συναλλαγές. Για να μειωθεί ο κατακερματισμός του χώρου αποθήκευσης που προκύπτει από μεγάλο αριθμό διαγραφών, μεμονωμένες σελίδες δεδομένων συγχωνεύονται αυτόματα στο παρασκήνιο.
Το αρχείο καταγραφής συναλλαγών WAL στο OrioleDB διατηρείται σε επίπεδο σειράς, όχι σε μπλοκ, γεγονός που καθιστά εύκολη τη χρήση του σε κατανεμημένα συστήματα και επιτρέπει την ανάπτυξη παραλληλισμού καταγραφής. Είναι δυνατή η δημιουργία κατανεμημένων διαμορφώσεων με πολλούς ενεργούς κύριους διακομιστές, για να διατηρηθούν σε συγχρονισμένη κατάσταση ο αλγόριθμος συναίνεσης Raft χρησιμοποιείται.
Από τα χαρακτηριστικά που ξεχωρίζουν από το OrioleDB, μπορείτε να δείτε το ανάγνωση σελίδων δεδομένων χωρίς χρήση κλειδαριών, άμεση σύνδεση σελίδων στη μνήμη RAM με σελίδες σε μόνιμη αποθήκευση, τη χρήση του μηχανισμού CoW (αντιγραφή σε εγγραφή) με τη ρύθμιση σημείων ελέγχου για τη δημιουργία συνεπών στιγμιότυπων ανά πάσα στιγμή. Οι τιμές 64-bit χρησιμοποιούνται για αναγνωριστικά συναλλαγών, η χρήση των οποίων επιλύει το πρόβλημα των υπερχείλισης μετρητών.
Η χρήση του OrioleDB επιτρέπει όχι μόνο εξαλείφει την ανάγκη για χειροκίνητες λειτουργίες και απλοποιεί τη συντήρηση του DBMS, αλλά και αύξηση των επιδόσεων. Για παράδειγμα, καλύτερη απόδοση επιτυγχάνεται με την επιτόπια ενημέρωση των δεδομένων, η οποία αποφεύγει την αλλαγή ευρετηρίων που δεν σχετίζονται με την αποθήκευση της αλλαγμένης τιμής. Ο κινητήρας υποστηρίζει επίσης την αποθήκευση δεδομένων σε συμπιεσμένη μορφή (η συμπίεση πραγματοποιείται χρησιμοποιώντας τον αλγόριθμο ZSTD και υλοποιείται σε επίπεδο μπλοκ μεταβλητού μεγέθους), γεγονός που σας επιτρέπει να μειώσετε το μέγεθος της βάσης δεδομένων στο δίσκο κατά 4-5 φορές.
Η δοκιμή μιας ρύθμισης μεμονωμένου πίνακα με 5 ευρετήρια χρησιμοποιώντας το OrioleDB έδειξε αύξηση 5 φορές στο TPS (συναλλαγές που υποβάλλονται σε επεξεργασία ανά δευτερόλεπτο), 2.3 φορές μείωση στο φορτίο της CPU, 22 φορές μείωση στις λειτουργίες I/O ανά συναλλαγή.
Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, θα πρέπει να γνωρίζετε ότι ο κινητήρας είναι γραμμένος σε C και Διανέμεται με άδεια PostgreSQL και υλοποιείται ως πρόσθετο που απαιτεί αλλαγές στον πυρήνα της βάσης κώδικα PostgreSQL.
Θα πρέπει να σημειωθεί ότι στην τρέχουσα μορφή του, ο κινητήρας βρίσκεται στο στάδιο beta testing και δεν συνιστάται ακόμη για ανάπτυξη παραγωγής.
Μπορείτε να ελέγξετε τις λεπτομέρειες της αρχικής δημοσίευσης στο τον ακόλουθο σύνδεσμο.