Design and Implementation of a Scalable Storage System for Fully-Consistent Replicated Data Logging
Σχεδιασμός και υλοποίηση ενός πλήρως-συνεπούς κλιμακώσιμου συστήματος αποθήκευσης για δεδομένα συνεχούς ροής
Σαλούστρος, Γεώργιος Εμμανουήλ
Μπίλας, Άγγελος
Η όλο και πιο διαδεδομένη ανάπτυξη εφαρμογών σε κλίμακα Διαδικτύου εκτελέσιμων πάνω από υλικό γενικού σκοπού, έχουν δημιουργήσει την πρόκληση
στους αρχιτέκτονες λογισμικού να σχεδιάζουν συστήματα αποθήκευσης τα οποία να ικανοποιούν ιδιότητες κλιμακωσιμότητας, διαθεσιμότητας και υψηλής
απόδοσης. Επιπρόσθετα, μια αυξανόμενη και ολοένα πιο ανταγωνιστική αγορά κλιμακώσιμου λογισμικού εγείρει την ανάγκη για ταχεία ανάπτυξη τέτοιων
συστημάτων. Σε αυτήν την εργασία παρουσιάζουμε μια νέα προσέγγιση για την βελτίωση της αξιοπιστίας και της διαθεσιμότητας ενός υπάρχοντος
κλιμακώσιμου συστήματος αρχείων, η οποία βασίζεται στην σχεδίαση ενός πλήρως συνεπούς, θεμελιώδους στοιχείου λογισμικού (ZKRL), το οποίο μπορεί
να χρησιμοποιηθεί σαν δομική μονάδα ενός ευρύτερου συστήματος λογισμικού.
Η υλοποίηση του ZKRL επεκτείνει μια υπηρεσία συντονισμού γενικού σκοπού (Apache Zookeeper) για να κρατάει αντίγραφα δεδομένων. Εν συνεχεία,
χρησιμοποιούμε το ZKRL για να αντικαταστήσουμε το πρωτόκολλο αντιγραφής ενός υπάρχοντος κλιμακώσιμου συστήματος αρχείων, του Hadoop File System
(HDFS), δυναμώνοντας με αυτόν τον τρόπο την αξιοποστία των δεδομένων. Το τελικό σύστημα διαθέτει πιο ισχυρές ιδιότητες κλιμακωσιμότητας και
διαθεσιμότητας κάνοντας το κατάλληλο για ένα μεγαλύτερο εύρος εφαρμογών σε σχέση με το αρχικό. Η εργασία αυτή επιπλέον δείχνει ότι αυτή η βελτίωση
δεν μειώνει την απόδοση: Τα αποτελέσματα της αξιολόγησης του συστήματος δείχνουν ότι μπορεί να επιτύχει απόδοση κοντά στο όριο του υλικού
Εισόδου/Εξόδου (δίσκος ή δίκτυο) πάνω από δίκτυα ταχύτητας 1 Gbps και 10 Gbps.
(EL)
The rapid growth of Internet-scale applications built over commodity hard-
ware for cost-efficiency has created the challenge for IT architects to design
storage systems that are scalable and highly available. In addition, an in-
creasingly competitive scalable software market raises the need for rapid pro-
totyping of such systems. In this thesis we show a new approach for rapidly
improving the robustness of an existing scalable file system, by designing and
implementing a strongly-consistent replication primitive as a re-targetable
building block that we then retrofit with minimal engineering effort into the
scalable file system. Our replication primitive (ZKRL) extends a general-
purpose open-source coordination service (Apache Zookeeper) to maintain
consistent data replicas across read and append operations. By cleanly re-
placing the ad-hoc replication protocol of the Hadoop scalable file system
(HDFS) we achieve stronger overall data replication semantics. The result-
ing system thus becomes a candidate for a wider range of applications than
previously possible. This thesis further shows that this improvement need
not incur a performance penalty: Our results show that we can achieve per-
formance close to peak I/O (network or disk) capabilities when appending
to replicated logs over 1-Gb/s and 10-Gb/s networks.
(EN)