Efficient adaptation mechanisms for improving performance during internal or external changes in distributed data stores
Authors: Παπαϊωάννου Αντώνιος 
Published: April 2022

Η εξέλιξη στον χώρο των κατανεμημένων συστημάτων διαχείρισης δεδομένων, ιδιαίτερα μιας κατηγορίας τέτοιων συστημάτων που αναπτύχθηκαν τα τελευταία 15-20 χρόνια γνωστά και ως συστήματα NoSQL, είναι ραγδαία. Μια πληθώρα τέτοιων συστημάτων βασίζεται σε ποικίλες σχεδιαστικές αποφάσεις που εστιάζουν στην βελτιστοποίηση για συγκεκριμένους τύπους εφαρμογών, μορφών δεδομένων και χαρακτηριστικών φόρτου εργασίας. Τα συστήματα αυτά αποτελούν συνήθως μέρος πολυεπίπεδων εφαρμογών ικανών να εξυπηρετούν φόρτο μεγάλης κλίμακας (συνήθως προερχόμενο από το Internet) κάτω από πολύπλοκες συνθήκες. ́Ενας σημαντικός στόχος για τους παρόχους υπηρεσιών είναι να διασφαλίσουν το επίπεδο απόδοσης των συστημάτων αυτών παρά τις εσωτερικές ή εξωτερικές αλλαγές και προκλήσεις που αντιμετωπίζουν. ́Ενας τέτοιος στόχος μπορεί να επιτευχθεί μέσω μηχανισμών προσαρμογής που επιτρέπουν στα συστήματα διαχείρισης δεδομένων να προσαρμόζονται στις αλλαγές αυτόματα, διατηρώντας παράλληλα τους στόχους και την αποδοτικότητα τους.Σε αυτή τη διατριβή διερευνούμε μηχανισμούς προσαρμογής σε κατανεμημένα συστήματα διαχείρισης δεδομένων που έρχονται αντιμέτωπα με αλλαγές που πηγάζουν είτε από το εσωτερικό του ίδιου του συστήματος ή από εξωγενείς παράγοντες. Μελετάμε ιδιαίτερα αλλαγές που αντιμετωπίζει το σύστημα λόγω αύξησης του φόρτου εργασίας, την εκτέλεση έκτακτων/περιοδικών δραστηριοτήτων στο παρασκήνιο ή την αλληλεπίδραση και συνέργεια με εξωτερικά συστήματα τα οποία εξελίσσονται ανεξάρτητα και παράλληλα με τα συστήματα διαχείρισης δεδομένων. Προτείνουμε νέους μηχανισμούς προσαρμογής των συστημάτων καθώς και βελτιώσεις σε υφιστάμενους μηχανισμούς σε τρία διαφορετικά πλαίσια (ελαστικότητα του συστήματος, διαχείριση της επίπτωσης δραστηριοτήτων που εκτελούνται στο παρασκήνιο και αποδοτικότερη συνέργεια και αλληλεπίδραση με εξωτερικά συστήματα επεξεργασίας δεδομένων). Μελετάμε προκλήσεις που δεν είχαν αντιμετωπιστεί μέχρι σήμερα με στόχο τη βελτίωση της συνολικής απόδοσης των συστημάτων.Αρχικά εστιάζουμε στην φάση της επέκτασης του συστήματος κατά τη διάρκεια της οποίας ενσωματώνονται νέοι πόροι ώστε να βελτιωθεί η απόδοσή του και να ανταποκριθεί στην αύξηση του φόρτου και των προκλήσεων που αυτή συνεπάγεται. Τα δεδομένα ανακατανέμονται εσωτερικά ώστε οι νέοι πόροι να λάβουν το αναλογούν τους μερίδιο φόρτου. Μελετάμε τον αντίκτυπο στην απόδοση του συστήματος εξαιτίας της μεταφοράς δεδομένων πάνω από το δίκτυο κατά αυτή την ανακατανομή των δεδομένων. Προτείνουμε έναν μηχανισμό ο οποίος δημιουργεί και εφαρμόζει ένα πλάνο μεταφοράς των δεδομένων σε μικρότερα αυτόνομα τμήματα. Κάθε φορά που η μεταφορά ενός τμήματος των δεδομένων ολοκληρώνεται, η εξυπηρέτηση του φόρτου που αντιστοιχεί στα δεδομένα αυτά γίνεται από τους νέους πόρους. Με αυτόν τον τρόπο το συνολικό σύστημα ενεργοποιεί οφέλη των νέων πόρων καθώς η διαδικασία επέκτασης βρίσκεται ακόμα υπό εξέλιξη (πριν ολοκληρωθεί η πλήρης μεταφορά όλων των δεδομένων) με αποτέλεσμα να αυξάνεται προοδευτικά η συνολική χωρητικότητα του συστήματος.Στη συνέχεια, μελετάμε δραστηριότητες που εκτελούνται στο παρασκήνιο (λειτουργίες για την εσωτερική αναδιοργάνωση των δεδομένων ή ενέργειες δημιουργίας αντιγράφων ασφάλειας) οι οποίες καταναλώνουν πόρους του συστήματος με αποτέλεσμα να έχουν αρνητική επίδραση στην απόδοση του συστήματος. Οι κόμβοι των συστημάτων αυτών είναι συνήθως οργανωμένοι σε ομάδες αντιγράφων για λόγους διαθεσιμότητας των δεδομένων. Συστήματα τα οποία υποστηρίζουν ισχυρή συνέπεια των δεδομένων περιορίζουν την ανάγνωση και εγγραφή των δεδομένων σε ένα υποσύνολο κόμβων. Προτείνουμε ένα μηχανισμό προσαρμογής της ομάδας αντιγράφων ώστε οι κόμβοι που εξυπηρετούν κυρίως τον φόρτο των χρηστών να είναι αυτοί οι οποίοι δεν έχουν ενεργές διεργασίες παρασκηνίου. Επιπλέον παρατηρούμε οτι ο μηχανισμός αλλαγής των κόμβων που εξυπηρετούν τον φόρτο που παράγουν οι χρήστες εμφανίζει μια αδυναμία η οποία σχετίζεται με την κρυφή μνήμη (cache). Αυτή οφειλεται στο ότι τα δευτερεύοντα αντίγραφα δεν ενημερώνουν πλήρως την cache τους με αποτέλεσμα να μην είναι επαρκώς προετοιμασμένα όταν καλούνται να ξεκινήσουν να εξυπηρετούν τους χρήστες. Αυτή η παρατήρηση μας οδήγησε να προτείνουμε έναν νέο μηχανισμό που επιτρέπει σε δευτερεύοντα αντίγραφα να διατηρούν ενημερωμένες caches. Ο μηχανισμός που προτείνουμε βασίζεται στην διάδοση των εντολών ανάγνωσης σε όλους τους κόμβους που φιλοξενούν αντίγραφα των δεδομένων χωρίς να αλλοιώνεται το μοντέλο συνέπειας και διαθεσιμότητας των δεδομένων του συστήματος.Τέλος, στη διατριβή αυτή διερευνούμε τα οφέλη του αυτόματου συντονισμού κατανεμημένων συστημάτων διαχείρισης δεδομένων με εξωτερικά συστήματα με τα οποία αυτά αλληλεπιδρούν (π.χ. κατανεμημένα συστήματα επεξεργασίας δεδομένων) μέσω του συντονισμού της ανάπτυξης των συστημάτων επί των υπολογιστικών και αποθηκευτικών πόρων. Προτείνουμε ένα σύστημα που διερευνά συνεχώς ευκαιρίες συντονισμού μεταξύ των συστημάτων και βελτιώνει την τοποθεσία των δεδομένων ώστε να βρίσκονται εγγύτερα στους πόρους επεξεργασίας τους. Ο συντονισμός των συστημάτων επιτυγχάνεται χρησιμοποιώντας μηχανισμούς προσαρμογής που σχετίζονται με την δημιουργία αντιγράφων και την μεταφορά δεδομένων. Επιπλέον μελετάμε για πρώτη φορά σε αυτό το πλαίσιο την προσαρμογή του μηχανισμού με τον οποίο τα δεδομένα διαμερίζονται και κατανέμονται στους κόμβους του συστήματος.Η πειραματική αξιολόγηση των μηχανισμών που μελετώνται σε αυτή την διατριβή επιβεβαιώνει τα οφέλη τους στην βελτίωση της απόδοσης ευρέως διαδεδομένων συστημάτων. Η μελέτη αυτή συμβάλλει στην εξέλιξη των συστημάτων διαχείρισης δεδομένων προς την κατεύθυνση συστημάτων που μπορούν να προσαρμόζονται αποδοτικά καθώς έρχονται αντιμέτωπα με εσωτερικές ή εξωτερικές αλλαγές κατά την διάρκεια του κύκλου ζωής τους.