Microsoft ανοιχτού κώδικα αποθήκευσης Garnet συμβατός με το Redis

Η Microsoft έχει διαθέσει ανοιχτού κώδικα το σύστημα Garnet NoSQL, το οποίο έχει σχεδιαστεί για τη δημιουργία αποθηκευτικών χώρων προσωρινής αποθήκευσης και είναι συμβατό με υπάρχουσες βιβλιοθήκες-πελάτες για την αποθήκευση Redis. Το Garnet υποστηρίζει τη δημιουργία κλιμακούμενων συμπλεγμάτων για την προσωρινή αποθήκευση δεδομένων, τα οποία μπορούν να χρησιμοποιήσουν αναπαραγωγή, μετεγκατάσταση κλειδιών και μεροποίηση δεδομένων μεταξύ κόμβων συμπλέγματος. Το έργο είναι γραμμένο σε C# με μηχανή αποθήκευσης C++, είναι ανοιχτού κώδικα με άδεια MIT και μπορεί να εκτελεστεί σε όλες τις πλατφόρμες που υποστηρίζονται από το .NET (οι κύριες πλατφόρμες είναι...). Linux и Windows).

Η μηχανή Tsavorite (μια διακλάδωση του χώρου αποθήκευσης Microsoft FASTER) χρησιμοποιείται για την αποθήκευση δεδομένων, η οποία υποστηρίζει επεξεργασία ερωτημάτων πολλαπλών νημάτων, συναλλαγές, καταγραφή αλλαγών χωρίς αποκλεισμό (checkpointing), ανάκτηση σφαλμάτων, αποθήκευση πλεοναζόντων αντιγράφων και διατήρηση αρχείου καταγραφής λειτουργιών. Ο χειριστής δικτύου στο Garnet κατασκευάζεται χρησιμοποιώντας την αρχιτεκτονική κοινόχρηστης μνήμης που προτείνεται από το ερευνητικό έργο ShadowFax. Η επεξεργασία TLS και η αλληλεπίδραση αποθήκευσης εκτελούνται σε ένα μόνο νήμα, το οποίο αποφεύγει την επιβάρυνση της εναλλαγής νημάτων και κάνει πιο αποτελεσματική χρήση της προσωρινής μνήμης της CPU κατά τη μετάδοση δεδομένων μέσω του δικτύου.

Η αρχιτεκτονική του Garnet διαχωρίζει τη λογική της ανάλυσης και της επεξεργασίας αιτημάτων από τις λειτουργίες αποθήκευσης. Τα δεδομένα αποθηκεύονται χρησιμοποιώντας δύο αποθήκες κλειδιών-τιμών που υλοποιούνται χρησιμοποιώντας τη βιβλιοθήκη Tsavorite. Το πρώτο "κύριο" αποθηκευτικό χώρο είναι βελτιστοποιημένο για γρήγορες λειτουργίες συμβολοσειρών και το δεύτερο αποθηκευτικό χώρο "αντικειμένων" είναι βελτιστοποιημένο για τη φιλοξενία σύνθετων αντικειμένων και προηγμένων τύπων δεδομένων, όπως hashes και λίστες. Οι τύποι δεδομένων στον δεύτερο χώρο αποθήκευσης υλοποιούνται χρησιμοποιώντας βιβλιοθήκες .NET. Τα δεδομένα αποθηκεύονται σε σωρό C#, το οποίο επιτρέπει την αποτελεσματική ενημέρωση, και σε σειριοποιημένη μορφή στο δίσκο.

Microsoft ανοιχτού κώδικα αποθήκευσης Garnet συμβατός με το Redis

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

  • Είναι δυνατή η ανάπτυξη πολυεπίπεδης αποθήκευσης, που εκτείνεται σε RAM, μονάδες SSD και αποθήκευση cloud, στην οποία τα δεδομένα λιγότερης ζήτησης προωθούνται σε αργή αποθήκευση για να δημιουργηθούν κρυφές μνήμες μεγαλύτερες από τη μνήμη RAM.
  • Επεκτάσιμη υποστήριξη συσκευής, που επιτρέπει τη δημιουργία επιπέδων βελτιστοποιημένων για εργασία με διαφορετικές συσκευές, για παράδειγμα, υπάρχουν επίπεδα για SDD, σκληρούς δίσκους και αποθήκευση στο cloud Azure Storage.
  • Ένας αποτελεσματικός μηχανισμός για την επαναχρησιμοποίηση του ελεύθερου χώρου στη μνήμη RAM, αποτρέποντας τον κατακερματισμό.
  • Ρυθμιζόμενα όρια στο μέγεθος της μνήμης που χρησιμοποιείται για ευρετήρια, αρχεία καταγραφής και αποθήκευση αντικειμένων.
  • Το πρωτόκολλο RESP χρησιμοποιείται για την πρόσβαση στον χώρο αποθήκευσης, το οποίο επιτρέπει στο Garnet να χρησιμοποιείται με μη τροποποιημένους πελάτες Redis.
  • Υποστηρίζει την αποθήκευση τόσο τιμών συμβολοσειρών όσο και πολύπλοκων δομών δεδομένων όπως λίστες, κατακερματισμοί, σύνολα, ταξινομημένες λίστες και δεδομένα γεωγραφικής θέσης. Δυνατότητα προσδιορισμού της διάρκειας ζωής του κλειδιού.
  • Διαθεσιμότητα API για την εκτέλεση αναλυτικών ερωτημάτων (HLL/Hyperloglog, Bitmap), συναλλαγών (MULTI/EXEC) και χρήση του παραδείγματος δημοσίευσης/εγγραφής.
  • Διαθεσιμότητα μέσων για ευέλικτο έλεγχο πρόσβασης μέσω ACL.
  • Δυνατότητα ορισμού διαμόρφωσης σε μορφή JSON ή redis.conf.
  • Υποστήριξη για τη σύνδεση πρόσθετων χειριστών δικτύου. Δυνατότητα κρυπτογράφησης κυκλοφορίας χρησιμοποιώντας TLS (βασισμένο στο SslStream).
  • Η δυνατότητα δημιουργίας επεκτάσεων στη γλώσσα C# που υλοποιούν πρόσθετες λειτουργίες με συμβολοσειρές και αντικείμενα.
  • Υποστήριξη για αποθηκευμένες διαδικασίες συναλλαγών που εκτείνονται σε πολλά κλειδιά.
  • Δυνατότητα επαναφοράς κατάστασης από προηγουμένως αποθηκευμένη θέση (σημείο ελέγχου-ανάκτηση). Η παρουσία μιας λειτουργίας αρχείου μόνο για προσάρτηση (AOF, αρχείο μόνο προσάρτησης), στην οποία όλα τα παλιά δεδομένα παραμένουν διαθέσιμα και δεν αντικαθίστανται.
  • Υποστήριξη για τη δημιουργία συμπλέγματος αποθήκευσης με αναπαραγωγή, διαμοιρασμό, δυναμική μετεγκατάσταση κλειδιού μεταξύ κόμβων και ανάκτηση αποτυχημένων κόμβων.
  • Υψηλή απόδοση και χαμηλή καθυστέρηση κατά την εκτέλεση ερωτημάτων. Αποδοτική επεξεργασία μικρών ερωτημάτων παρτίδας με μεγάλο αριθμό συνεδριών πελατών, επιτρέποντας απόδοση (αριθμός ερωτημάτων που υποβάλλονται σε επεξεργασία ανά δευτερόλεπτο) τάξη μεγέθους υψηλότερη από τις ανταγωνιστικές λύσεις. Κατά την εκτέλεση σε εικονικές μηχανές Στο Azure cloud, η καθυστέρηση του client δεν υπερβαίνει τα 300 μικροδευτερόλεπτα στις περισσότερες περιπτώσεις. Στις δοκιμές που πραγματοποιήθηκαν, το Garnet υπερτερεί σημαντικά των Redis, Dragonfly και KeyDB σε απόδοση και απόκριση. Σε ορισμένες δοκιμές, το Garnet υπερτερεί των ανταγωνιστικών συστημάτων κατά δέκα φορές.
    Microsoft ανοιχτού κώδικα αποθήκευσης Garnet συμβατός με το Redis
    Microsoft ανοιχτού κώδικα αποθήκευσης Garnet συμβατός με το Redis
    Microsoft ανοιχτού κώδικα αποθήκευσης Garnet συμβατός με το Redis
    Microsoft ανοιχτού κώδικα αποθήκευσης Garnet συμβατός με το Redis

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster