Valkey 8.1: Το πιρούνι Redis διαθέτει απόδοση, βελτιώσεις μνήμης και νέες μονάδες

Valkey

Έχει ανακοινωθεί κυκλοφορία της νέας έκδοσης του «Valkey 8.1», ένα πιρούνι του Redis που γεννήθηκε μετά τη μετάβασή του σε ιδιόκτητη άδεια, και το οποίο επιδιώκει να διατηρήσει την ανοιχτή φιλοσοφία του αρχικού έργου.

Valkey 8.1 Διαθέτει μεγάλο αριθμό βελτιώσεων και αλλαγών, του οποίου η κύρια εστίαση είναι στις βελτιστοποιήσεις απόδοσης που μειώνουν τον λανθάνοντα χρόνο, αυξάνουν την απόδοση της μνήμης και νέες αρθρωτές δυνατότητες.

Βασικά νέα χαρακτηριστικά στο Valkey 8.1

Ένα από τις πιο σημαντικές αλλαγές σε αυτή την έκδοση είναι το πλήρης επανεγγραφή του πίνακα κατακερματισμού, χρησιμοποιείται τόσο στην αποθήκευση δεδομένων κλειδιού-τιμής όσο και σε τύπους δομημένων δεδομένων όπως Hash, Set και Sorted Set. Χάρη σε αυτόν τον επανασχεδιασμό, Έχει επιτευχθεί μείωση στη χρήση μνήμης: 20 byte λιγότερα ανά κλειδί χωρίς TTL, και έως 30 byte εάν το κλειδί έχει καθορισμένη διάρκεια ζωής. Επιπλέον, η μείωση της τυχαίας πρόσβασης στη μνήμη οδήγησε σε βελτίωση της απόδοσης κατά 10% σε περιβάλλοντα I/O με ένα νήμα.

Ένα άλλο νέο χαρακτηριστικό στο Valkey 8.1 είναι ότι η επανάληψη πάνω από πλήκτρα σε λειτουργίες όπως η εντολή KEYS ή Η μεταφορά κλειδιού μεταξύ κόμβων σε ένα σύμπλεγμα διαθέτει πλέον ένα σύστημα προφόρτωσης της κρυφής μνήμης, που επιτρέπει στο επόμενο κλειδί να είναι διαθέσιμο πριν ξεκινήσει η επεξεργασία. Αυτή η προσέγγιση έχει αυξήσει την ταχύτητα αναζήτησης κλειδιού κατά 3,5 φορές κάνοντας καλύτερη χρήση της κρυφής μνήμης του επεξεργαστή.

Βελτιώσεις πολλαπλών νημάτων I/O και TLS

Η Valkey συνεχίζει τη μετάβασή της σε ένα μοντέλο I/O πολλαπλών νημάτων. Τώρα, το Η επεξεργασία σύνδεσης TLS εκτελείται σε ξεχωριστές ροές, το οποίο έχει τριπλασιάσει τη δυνατότητα αποδοχής νέων συνδέσεων. Λειτουργίες όπως η SSL_pending() και η ERR_clear_error() έχουν επίσης απομονωθεί σε ξεχωριστά νήματα, με αποτέλεσμα μια αύξηση απόδοσης 10% για τις λειτουργίες SET και 22% για τις λειτουργίες GET.

Η αναπαραγωγή έχει βελτιωθεί, ειδικά σε περιβάλλοντα με ενεργό TLS, εξαλείφοντας περιττές λειτουργίες όπως τα περιττά αθροίσματα ελέγχου. Αυτό είχε ως αποτέλεσμα 18% βελτίωση στον πλήρη συγχρονισμό κατά την αναπαραγωγή χωρίς δίσκο και μείωση κατά 47% στο κόστος των λειτουργιών αντιγραφής και εγγραφής.

Βελτιστοποιήσεις σε διατεταγμένα σύνολα και πιθανολογικούς τύπους

El Εντολή ZRANK για παραγγελθέντα σύνολα έχει βελτιστοποιηθεί και Τώρα είναι 45% πιο γρήγορο, ενώ το ZADD έχει υιοθετήσει οδηγίες SIMD για την επίτευξη μεγαλύτερης αποτελεσματικότητας. Για πιθανολογικούς τύπους δεδομένων, η χρήση του HyperLogLog έχει βελτιωθεί ώστε να χρησιμοποιεί μόνο 12 KB σταθερής μνήμης και η χρήση των οδηγιών AVX2 επέτρεψε την απόδοση των λειτουργιών PFMERGE και PFCOUNT να πολλαπλασιαστεί έως και 12 φορές και το BITCOUNT έως και 5 φορές.

Αδιάλειπτη ενεργή ανασυγκρότηση και περισσότερος έλεγχος των μητρώων

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

Έχουν εισαχθεί Νέες επιλογές διαμόρφωσης για μορφοποίηση εγγραφών, συμπεριλαμβανομένων των προσαρμοσμένων μορφών ώρας και μιας νέας λειτουργίας COMMANDLOG που καταγράφει μεγάλα αιτήματα και απαντήσεις. Επιπλέον, η εντολή LATENCY LATEST έχει επεκταθεί με νέες μετρήσεις, παρέχοντας μεγαλύτερη ορατότητα στις καταγεγραμμένες καθυστερήσεις αιχμής και όγκου.

Νέες δυνατότητες, μονάδες και υποστήριξη

Valkey τώρα σας επιτρέπει να εκτελέσετε τη λειτουργία SET IFEQ, που ρυθμίζει την εγγραφή ενός κλειδιού στην τρέχουσα τιμή. Επίσης Παρουσιάζεται αρθρωτή υποστήριξη για μηχανές δέσμης ενεργειών, ανοίγοντας τη δυνατότητα χρήσης εναλλακτικών γλωσσών στο Lua μέσω προσαρμοσμένων λειτουργικών μονάδων.

Σε αυτήν την έκδοση επίσης κάνουν το ντεμπούτο πολλών ενοτήτων:

  • Ενότητα αναζήτησης (Google): Μηχανή αναζήτησης διανυσματικής ομοιότητας, ιδανική για περιπτώσεις μηχανικής εκμάθησης που απαιτούν χαμηλό λανθάνοντα χρόνο και υψηλή απόδοση.
  • Μονάδα JSON (AWS): επιτρέπει τον άμεσο χειρισμό θραυσμάτων εγγράφων JSON, αποφεύγοντας την πλήρη επεξεργασία του περιεχομένου στον πελάτη.
  • Μονάδα φίλτρου Bloom (AWS): Εφαρμογή φίλτρων Bloom, χρήσιμα για τον προσδιορισμό της πιθανής συμμετοχής ενός στοιχείου σε ένα σύνολο, με πιθανολογική απόδοση

Τέλος, εάν ενδιαφέρεστε να μάθετε περισσότερα για αυτό, μπορείτε να συμβουλευτείτε τις λεπτομέρειες στο παρακάτω σύνδεσμο.