Πίνακας περιεχομένων:
Βίντεο: Introduction to Amazon Web Services by Leo Zhadanovsky 2024
Οι δυνατότητες γρήγορης ανάγνωσης των αποθηκευτικών λύσεων βασικής αξίας προέρχονται από τη χρήση καλά καθορισμένων πλήκτρων. Αυτά τα κλειδιά είναι συνήθως χυδαία, η οποία δίνει μια αποθήκευση κλειδί-αξία ένας πολύ προβλέψιμος τρόπος για τον προσδιορισμό ποια διαμερίσματα (και έτσι διακομιστή) τα δεδομένα παραμένει επάνω. Ένας συγκεκριμένος διακομιστής διαχειρίζεται ένα ή περισσότερα διαμερίσματα.
Ένα καλό κλειδί σάς δίνει τη δυνατότητα να προσδιορίσετε με μοναδικό τρόπο τη μοναδική εγγραφή που απαντά σε ένα ερώτημα χωρίς να χρειάζεται να εξετάσετε τυχόν τιμές εντός αυτής της εγγραφής. Ένα κακό κλειδί θα απαιτήσει ο κώδικας εφαρμογής σας να ερμηνεύσει την εγγραφή σας για να διαπιστώσει εάν το κάνει, στην πραγματικότητα, ταιριάζει με το ερώτημα.
Αν δεν σχεδιάζετε καλά το κλειδί σας, μπορεί να καταλήξετε σε ένα διακομιστή που έχει δυσανάλογα μεγαλύτερο φορτίο από τους άλλους, οδηγώντας σε κακή απόδοση. Χρησιμοποιώντας την τρέχουσα χρονική περίοδο συστήματος ως κλειδί, για παράδειγμα, ωθεί όλα τα νέα δεδομένα στον τελευταίο κόμβο του συμπλέγματος, πράγμα που οδηγεί σε ένα σενάριο ελιγμών για την επανεξισορρόπηση.
Διαχωρισμός
Ο σχεδιασμός διαμερισμάτων είναι σημαντικός επειδή ορισμένα καταστήματα βασικής αξίας, όπως το Oracle NoSQL, δεν επιτρέπουν την τροποποίηση του αριθμού των κατατμήσεων μόλις δημιουργηθεί ένα σύμπλεγμα. Ωστόσο, η διανομή τους σε διακομιστές μπορεί να τροποποιηθεί. Έτσι ξεκινήστε με ένα μεγάλο αριθμό διαμερισμάτων που μπορείτε να διαδώσετε στο μέλλον.
Ένα παράδειγμα διαμοιρασμού είναι η συνεπής προσέγγιση του Voldemort, όπως φαίνεται. Εδώ βλέπετε τα ίδια κατατμήματα που κατανέμονται αρχικά σε τρεις διακομιστές και αργότερα σε τέσσερις διακομιστές. Ο αριθμός των κατατμήσεων παραμένει ο ίδιος, αλλά η κατανομή τους είναι διαφορετική στους διακομιστές. Το ίδιο ισχύει και για τα αντίγραφα τους.
Η πρόσβαση σε δεδομένα σε κατατμήσεις
Τα καταστήματα βασικής αξίας είναι εξαιρετικά κατανεμημένα χωρίς κανένα σημείο αποτυχίας. Αυτό σημαίνει ότι δεν υπάρχει ανάγκη για κύριο κόμβο συντονισμού για να παρακολουθείτε τους διακομιστές μέσα σε ένα σύμπλεγμα. Η διαχείριση συμπλεγμάτων γίνεται αυτόματα από ένα πρωτόκολλο συνομιλίας μεταξύ κόμβων του διακομιστή.
Μπορείτε να χρησιμοποιήσετε ένα τέχνασμα στο πρόγραμμα οδήγησης προγράμματος-πελάτη για να συμπιέσετε τη μέγιστη απόδοση από την ανάκτηση και αποθήκευση κλειδιών και τιμών - το πρόγραμμα οδήγησης προγράμματος-πελάτη παρακολουθεί ποιοι διακομιστές κρατούν το φάσμα των πλήκτρων. Ο οδηγός προγράμματος-πελάτη γνωρίζει πάντα σε ποιον διακομιστή να μιλήσει.
Οι περισσότερες βάσεις δεδομένων, συμπεριλαμβανομένου του NoSQL, διαβιβάζουν μια αίτηση σε όλα τα μέλη ενός συμπλέγματος. Αυτό το σύμπλεγμα είτε δέχεται τη γραφή εσωτερικά είτε την περνάει κάτω από την κουκούλα στον σωστό κόμβο. Αυτή η ρύθμιση σημαίνει ότι είναι δυνατή μια επιπλέον διαδρομή δικτύου μεταξύ κόμβων, η οποία μπορεί να προσθέσει λανθάνουσα κατάσταση.
Προκειμένου να αποφευχθεί η καθυστέρηση των ανακαλύψεων, τα περισσότερα προγράμματα οδήγησης των πελατών των βασικών πηγών διατηρούν μια λίστα μεταδεδομένων των τρεχόντων κόμβων σε ένα σύμπλεγμα και το κλειδί διαμέρισης που κυμαίνεται από κάθε κόμβο.Με αυτόν τον τρόπο, ο οδηγός προγράμματος-πελάτη μπορεί να επικοινωνήσει με τον σωστό διακομιστή, ο οποίος κάνει τις λειτουργίες πιο γρήγορα.
Εάν ένας νέος κόμβος προστεθεί σε ένα σύμπλεγμα και τα μεταδεδομένα είναι ξεπερασμένα, το σύμπλεγμα ενημερώνει το πρόγραμμα οδήγησης προγράμματος-πελάτη, το οποίο στη συνέχεια μεταφορτώνει τα πιο πρόσφατα μεταδεδομένα συμπλέγματος πριν από την εκ νέου υποβολή του αιτήματος στον σωστό κόμβο. Με αυτόν τον τρόπο διατηρείται η μέγιστη απόδοση με ελάχιστη επιβάρυνση κατά τη διάρκεια της ανάπτυξης. Ένα άλλο πλεονέκτημα είναι ότι δεν υπάρχει ανάγκη για ένα balancer φορτίου για να περάσει ερωτήματα στον επόμενο διαθέσιμο ή λιγότερο κατειλημμένο server - μόνο ένας διακομιστής (ή εξυπηρετητής ανάγνωσης αντιγράφων) λαμβάνει ποτέ αίτημα πελάτη, οπότε δεν υπάρχει ανάγκη για εξισορρόπηση φορτίου.