HEAL DSpace

Βελτιστοποίηση επίδοσης εγγραφών στο κατανεμημένο σύστημα αποθήκευσης κλειδιού-τιμής etcd μέσω ενσωμάτωσης του αποθηκευτικού μηχανισμού RocksDB

Αποθετήριο DSpace/Manakin

Εμφάνιση απλής εγγραφής

dc.contributor.author Κοκκίνου, Γεωργία el
dc.contributor.author Kokkinou, Georgia en
dc.date.accessioned 2018-06-19T10:58:46Z
dc.date.available 2018-06-19T10:58:46Z
dc.date.issued 2018-06-19
dc.identifier.uri https://dspace.lib.ntua.gr/xmlui/handle/123456789/47089
dc.identifier.uri http://dx.doi.org/10.26240/heal.ntua.15541
dc.rights Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 3.0 Ελλάδα *
dc.rights.uri http://creativecommons.org/licenses/by-nc-sa/3.0/gr/ *
dc.subject Σύστημα αποθήκευσης κλειδιού-τιμής el
dc.subject Key-value store en
dc.subject Κατανεμημένη αποθήκευση el
dc.subject Μηχανισμός αποθήκευσης el
dc.subject Δομές δεδομένων el
dc.subject Β+ δέντρο el
dc.subject LSM-δέντρο en
dc.subject Etcd en
dc.subject BoltDB en
dc.subject RocksDB en
dc.subject Distributed storage en
dc.subject Storage engine en
dc.subject Data structures en
dc.subject B+ tree en
dc.subject LSM-tree en
dc.title Βελτιστοποίηση επίδοσης εγγραφών στο κατανεμημένο σύστημα αποθήκευσης κλειδιού-τιμής etcd μέσω ενσωμάτωσης του αποθηκευτικού μηχανισμού RocksDB el
dc.title Optimizing write performance in the etcd distributed key-value store via integration of the RocksDB storage engine en
heal.type bachelorThesis
heal.classification Computer science en
heal.classification Επιστήμη υπολογιστών/πληροφορική el
heal.classificationURI http://id.loc.gov/authorities/subjects/sh89003285
heal.classificationURI http://data.seab.gr/concepts/77de68daecd823babbb58edb1c8e14d7106e83bb
heal.language el
heal.language en
heal.access free
heal.recordProvider ntua el
heal.publicationDate 2018-03-08
heal.abstract Ο etcd είναι ένα αξιόπιστο κατανεμημένο σύστημα αποθήκευσης κλειδιού-τιμής ανοιχτού κώδικα. Σχεδιάστηκε πρωτίστως για αποθήκευση μεταδεδομένων και χρησιμοποιείται συνήθως για εντοπισμό υπηρεσιών, κοινόχρηστη ρύθμιση παραμέτρων και κατανεμημένα κλειδώματα. Ωστόσο, η υψηλή του διαθεσιμότητα, η απλότητα και οι αξιοσημείωτες επιδόσεις, σε συνδυασμό με το ότι υποστηρίζεται από μια μεγάλη και δραστήρια κοινότητα προγραμματιστών, τον καθιστούν ελκυστική επιλογή και για άλλα είδη εφαρμογών. Ο τρέχων αποθηκευτικός μηχανισμός του etcd είναι η BoltDB, μια ενσωματωμένη βάση δεδομένων που στηρίζεται στα Β+ δέντρα και είναι βελτιστοποιημένη για αναγνώσεις. Στην εποχή των κατανεμημένων συστημάτων, υπάρχει ένα ευρύ φάσμα εφαρμογών με έμφαση στις εγγραφές που θα επωφελούνταν από έναν αξιόπιστο τρόπο αποθήκευσης δεδομένων σε μια συστοιχία υπολογιστών. Παραδείγματα τέτοιων εφαρμογών αποτελούν οι διαδικτυακές υπηρεσίες αντιγράφων ασφαλείας, η συλλογή δεδομένων από αισθητήρες, οι εξυπηρετητές ηλεκτρονικού ταχυδρομείου και οι ιστότοποι κοινωνικής δικτύωσης. Έτσι, σε αυτήν την εργασία σχεδιάζουμε και υλοποιούμε την αντικατάσταση της BoltDB με την RocksDB, μια υψηλών επιδόσεων βάση δεδομένων που εσωτερικά χρησιμοποιεί ένα LSM-δέντρο, με σκοπό να βελτιστοποιήσουμε τον etcd για περιπτώσεις χρήσης συχνών εγγραφών. Αυτό το καταφέρνουμε αναπτύσσοντας ένα πακέτο κώδικα σε γλώσσα Go που μεταφράζει συναρτήσεις και έννοιες από την προγραμματιστική διεπαφή (API) της BoltDB στις αντίστοιχες της RocksDB, τροποποιώντας τον κώδικα του ίδιου του etcd μόνο στα σημεία που είναι απαραίτητο. Κατά τη διάρκεια της διαδικασίας αυτής, υλοποιούμε κάποιες δυνατότητες που δεν υπήρχαν ήδη στα εμπλεκόμενα προγράμματα, κάνοντας και τις αντίστοιχες συνεισφορές λογισμικού. Στη συνέχεια, επαληθεύουμε την ορθότητα και την ευρωστία της υλοποίησής μας, με χρήση της πλατφόρμας λειτουργικού ελέγχου του etcd μεταξύ άλλων εργαλείων. Επιπλέον, δημιουργούμε μια συστοιχία εικονικών μηχανών σε περιβάλλον νέφους, ώστε να αξιολογήσουμε μέσω του ενσωματωμένου εργαλείου benchmark την επίδοση του etcd στην περίπτωση χρήσης της RocksDB ως αποθηκευτικό μηχανισμό και να την συγκρίνουμε με την επίδοση στην περίπτωση χρήσης της BoltDB. Έπειτα, εφαρμόζουμε σταδιακά κάποιες βελτιστοποιήσεις, εξετάζουμε την επίδραση ενός συνόλου παραμέτρων στα αποτελέσματα, και σχολιάζουμε τα πλεονεκτήματα και μειονεκτήματα των δύο προσεγγίσεων. Τέλος, σκιαγραφούμε ιδέες για βελτίωση και περαιτέρω έρευνα πάνω στο θέμα. el
heal.abstract Etcd is an open-source, distributed key-value store with a focus on reliability. It was primarily designed to store metadata and is often used for service discovery, shared configuration and distributed locking. However, its numerous good qualities, such as its high-availability, simplicity and notable performance, in conjunction with the fact that it is an actively maintained project backed by a large developer community, render it an attractive option for other usecases as well. Etcd currently uses BoltDB, a read-optimized persistence solution based on B+ trees, as its storage engine. In the era of distributed computing, there is a wide range of write-intensive applications that would benefit from having a reliable way to store data across a cluster of machines. Examples of such applications include cloud backup services, sensor data collection, mail servers and social media websites. To that end, in this thesis we design and implement the replacement of BoltDB with RocksDB, a high-performance embedded database that internally uses a log-structured merge-tree (LSM-tree), in order to optimize etcd for write-heavy workloads. We achieve this by developing a Go wrapper that maps BoltDB API functions and concepts to their RocksDB counterparts, modifying core etcd code only where necessary. During this process, we make software contributions to some of the projects involved, implementing features that we needed but were missing. Furthermore, we verify the functionality and robustness of our implementation, using the functional test suite of etcd, among other tools. In addition, we set up a cluster of virtual machines on a cloud platform, in order to evaluate the performance of etcd with RocksDB as its storage engine using the built-in benchmark tool, and compare it to that of BoltDB-backed etcd. Then, we gradually apply a number of optimizations upon our initial implementation, examine the impact of a set of parameters on the results, and comment on the trade-offs of both approaches. Finally, we suggest some improvements and outline directions for further investigation on this topic. en
heal.advisorName Κοζύρης, Νεκτάριος el
heal.committeeMemberName Κοζύρης, Νεκτάριος el
heal.committeeMemberName Παπασπύρου, Νικόλαος el
heal.committeeMemberName Γκούμας, Γεώργιος el
heal.academicPublisher Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών. Εργαστήριο Υπολογιστικών Συστημάτων el
heal.academicPublisherID ntua
heal.numberOfPages 248 σ.
heal.fullTextAvailability true


Αρχεία σε αυτό το τεκμήριο

Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο:

Αυτό το τεκμήριο εμφανίζεται στην ακόλουθη συλλογή(ές)

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 3.0 Ελλάδα Εκτός από όπου ορίζεται κάτι διαφορετικό, αυτή η άδεια περιγράφεται ως Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 3.0 Ελλάδα