On Brewing Fresh Espresso: LinkedIn’s Distributed Data Serving Platform Marios Komodromou Kyriakos Theodoulou EPL 646 Assignment 2.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Advertisements

Support.ebsco.com Εκπαιδευτικό μάθημα για το Δικό μου EBSCOhost Εκπαιδευτικό μάθημα.
ΛΟΓΙΣΜΙΚΟ ΔΙΑΧΕΙΡΙΣΗΣ DATA, ΤΟΠΟΘΕΣΙΩΝ ΚΑΙ ΠΟΡΩΝ.
Indexing.
Παρουσίαση λειτουργίας εφαρμογής extra Διαχείριση Ταμείου
A Peer-to-peer Framework for Caching Range Queries O. D. Sahin A. Gupta D. Agrawal A. El Abbadi Παρουσίαση: Καραγιάννης Τάσος, Κρεμμυδάς Νίκος, Μαργαρίτη.
Λειτουργικό Σύστημα 2ο μέρος.
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
ΚΕΝΤΡΟ ΠΟΛΙΤΙΣΜΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΝΣΤΙΤΟΥΤΟ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΤΕ 21,23/2/2005Πληροφοριακή σχεδίαση για πολιτισμική τεκμηρίωση και διαλειτουργικότητα1 Τεκμηρίωση.
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Βάσεις Δεδομένων 1 T.Manavis– N.Kyritsis.
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Λειτουργικά Συστήματα ΙΙ
1 Συλλογικοί Κατάλογοι & Διαδίκτυο Μιχάλης Σφακάκης.
Βάσεις Δεδομένων (ΚΒΔ)
Λειτουργικά συστήματα ΙΙ
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Αρχιτεκτονική Συστημάτων
Σύμφωνα με τον ΣΕΒ, αναμένεται να παρουσιάσουν ζήτηση μέχρι το 2020 Πηγή:
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 3.
ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ Παράγραφος 1.7. ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ Είσαι εκεί; Εδώ είμαι Είσαι έτοιμος να λάβεις ένα μήνυμα; Είμαι έτοιμος Πάρε το πρώτο.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
Μποχρίνη Σταυρούλα ΑΜ:3173 Σταθόπουλος Αναστάσιος ΑΜ:3220.
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
ΕΝΟΤΗΤΑ 3 – MS Windows – Περιβάλλον εργασίας
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
Δομές Δεδομένων.
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
Προηγμένη Εφαρμογή Ιστού Διαχείρισης Δεδομένων Βιοεπιστημών Διπλωματική Εργασία του Γεωργίου Πρέκα ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ.
3 Αρχιτεκτονική Συστημάτων  Κατηγορίες χρηστών ΣΔΒΔ  Αρχιτεκτονική ANSI/SPARC  Γλώσσες ερωτημάτων  Μοντέλα δεδομένων  Λειτουργίες ΣΔΒΔ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΜΣ «ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ» ΗΛΕΚΤΡΟΝΙΚΗ ΔΗΜΟΣΙΕΥΣΗ ΔΙΔΑΣΚΟΝΤΕΣ: ΚΑΠΙΔΑΚΗΣ ΣΑΡΑΝΤΟΣ ΓΕΡΓΑΤΣΟΥΛΗΣ ΕΜΜΑΝΟΥΗΛ Το DSpace ως ένα Ανοικτό.
University of Crete HY566-Semantic Web CS566 – Semantic Web Computer Science Department - UoC Heraklion 1 April, 2003 Παπαγγελής Μάνος, Κοφφινά Ιωάννα,
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
6/3/2015 OCLC Connexion Εργασία στο μάθημα ψηφιακές βιβλιοθήκες Μαρινοπούλου Μαρία.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Storage management and caching in PAST, a large-scale persistent peer- to-peer storage utility Antony Rowstron – Peter Druschel Κατανεμημένα Συστήματα.
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ροές Δεδομένων (3 ο Μέρος)
Μπόλαρη Αγγελικη(1451) Επιβλέπων Βολογιαννίδης Σταύρος ΑΤΕΙ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ Σέρρες 2013.
Κανονικοποίηση, συναρτησιακές εξαρτήσεις
X-FTL: Transactional Flash Translation Layer for SQLite Databases WOON-HAK KAN, GY SANG-WON LEE, GI-HWAN OH, CHANGWOO MIN COLLEGE OF INFO. AND COMM. ENGR.,
ΕΞΑΜΗΝΟ ΣΤ’ Λευκάδα 2011Δήμητρα Τζίγκου Εφαρμογών Πληροφορικής στη Διοίκηση και την Οικονομία.
Calvin:Fast Distributed Transactions for Partitioned Database System Ηλίας Σπανός Αντωνία Νικολάου Calvin: Fast Distributed Transactions for Partitioned.
1 ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ Μηχανογράφηση υπηρεσιών καταστημάτων Self-Video TMHMA ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τ.Ε.Ι. ΣΕΡΡΩΝ.
Λειτουργικά Συστήματα
ΔΙAΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Ονομάζουμε “Διαχείριση Δικτύων” όλες τις ενέργειες που έχουν σκοπό τον έλεγχο λειτουργίας, ασφάλειας και απόδοσης, την αντιμετώπιση.
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΔΙΑΧΕΙΡΙΣΗ ΤΕΧΝΙΚΩΝ ΕΡΓΩΝ
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Δυναμικός Κατακερματισμός
Χειρισμός Χρόνου και Μεθοδολογίες Προσομοίωσης
Βάσεις Δεδομένων Ι Εισαγωγή
Εισαγωγή στις βάσεις δεδομένων ISBN
Java DataBase Connectivity
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM)
Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών
Κεφάλαιο 7: Διαδικτύωση-Internet Μάθημα 7.9: Δρομολόγηση
ΕΦΑΡΜΟΓΕΣ ΝΕΦΟΥΣ 13.1 Εισαγωγή στις Εφαρμογές Νέφους
Επιβλέπων: Καθηγητής Εφαρμογών Δρ. Δημήτριος Βαρσάμης
Εφαρμογές Νέφους ΚΕΦΑΛΑΙΟ 13.
Εφαρμογές Νέφους ΚΕΦΑΛΑΙΟ 13.
ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΒΑΛΛΟΝΤΟΣ
Σχεσιακεσ βασεισ δεδομενων
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Διαχρονικές Δομές Δεδομένων
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

On Brewing Fresh Espresso: LinkedIn’s Distributed Data Serving Platform Marios Komodromou Kyriakos Theodoulou EPL 646 Assignment 2

INTRODUCTION Ίδρυση LinkedIn. Αρχικά χρησιμοποιούσε μια RDBMS βάση δεδομένων Μετάβαση στη Voldemort βάση Eπαναπροσδιορισμός απαιτήσεων Υλοποίηση Espresso of 24

FEATURES Transaction Support: o To Espresso υποστηρίζει ένα ιεραρχικό μοντέλο δεδομένων. o Προσφέρει τη φυσική κατάτμηση των δεδομένων σε συλλογές που μοιράζονται το ίδιο κλειδί κατάτμησης. o Παρέχει transactions Consistency Model : o Η νέα σχεδίαση ακολουθεί το μοντέλο master-slave με χαλαρή συνέπεια. o Οι αιτήσεις διαβάσματος και γραψίματος για κάθε partition εξυπηρετούνται από ένα κόμβο που ενεργεί ως μάστερ. o Οι σκλάβοι αναπαράγουν τα δεδομένα από τους μάστερ για να διατηρείται η διαθεσιμότητα σε περίπτωση αποτυχίας του master. Integration with the complete data ecosystem : o Προσφέρει ευελιξία ανάπτυξης. o Διασφαλίζει την ενοποίηση της με το υπόλοιπο οικοσύστημα δεδομένων. Schema Awareness and Rich Functionality o Η βάση υποστηρίζει schema για τα έγγραφα. o Η επιβολή schema επιτρέπει στα συστήματα να διαχειριστούν τα δεδομένα με συνέπεια. o Επίσης παρέχει βασικά χαρακτηριστικά, όπως η δευτεροβάθμια ευρετηρίαση και αναζήτηση, o Μερική ενημέρωση για τα έγγραφα και οι προβολές των πεδίων μέσα σε έγγραφα. 3 of 24

Data Model Έγγραφο o Είναι λογικές αντιστοιχήσεις σε οντότητες, είναι schema-ed. o Mπορούν να έχουν ένθετες δομές δεδομένων. o Προσδιορίζονται από ένα πρωτεύον κλειδί το οποίο μπορεί να αποτελείται από πολλά μέρη. Πίνακας: o Είναι μια συλλογή από παρόμοια schema-ed έγγραφα. o Ανάλογο με έναν πίνακα σε μια σχεσιακή βάση δεδομένων. Ομάδα εγγράφων: o Αντιπροσωπεύουν μια συλλογή των εγγράφων που μοιράζεται ένα κοινό κλειδί. o Οι ομάδες εγγράφων επεκτείνονται σε πίνακες Βάση δεδομένων: o Ανάλογες με τις βάσεις δεδομένων των RDMBS και περιέχουν στο εσωτερικό τους πίνακες. o Όλα τα έγγραφα διαιρούνται σε partions. o Τη στρατηγική διαμέρισης ορίζει η μέθοδος κατανομής των δεδομένων 4 of 24

API REST Read Operations o Αναζήτηση βάση ενός κλειδιού. 1.Ενα πρωτεύων κλειδί μπορεί να επιστρέψει ένα έγγραφο 2.Μια λίστα από κλειδιά πόρων μοιράζεται ένα κοινο κλειδί που μπορεί να επιστρέψει μια λίστα εγγράφων. 3.Προβολή σε συγκεκριμένα πεδία του αρχείου o Αναζήτησης μέσω δευτερεύοντος ευρετηρίου. Write Operations o Εισαγωγή και αναβάθμιση ενός αρχείου μέσω του κλειδιού. o Προχωρημένες λειτουργίες : 1.Μερική αναβάθμιση αρχείου. 2.Αυτόματη αύξηση τιμής του μερικού κλειδιού 3.Transactional αναβάθμιση σε ομάδες εγγράφων 5 of 24

API REST Conditionals Υποστηρίζονται κατά το γράψιμο και διάβασμα βασισμένα στη τελευταία τροποποίηση και ETag. Multi Operations Οι λειτουργίες διαβάσματος και γραψίματος μπορούν να είναι πολλαπλές και ομαδοποιημένες σε ένα transaction 6 of 24

Bulk Load and Export Load: εισαγωγή δεδομένων από online περιβάλλον o Οι εργασίες του hadoop εκπέμπουν μια μορφή εξόδου με αναβαθμίσεις ευρετηρίου πάνω στα πρωτεύων δεδομένα. o Το εσπρέσο cluster ενημερώνεται για τα νέα δεδομένα και τη τοποθεσία τους μέσω του Ηelix o Κάθε κόμβος αποθήκευσης παίρνει τις αλλαγές που σχετίζονται με τα partition που έχει και τις εφαρμόζεις Export: εξαγωγή δεδομένων για υποστήριξη οffline ανάλυσης o Ροές πραγματικού χρόνου εξάγονται από το HDFS o Περιοδικά εργασίες συμπιέζουν αυτές τις ροές για να προφέρουν στιγμιότυπα για κατανάλωση o Οffline επεξεργαστές παίρνουν αυτά τα στιγμιότυπα και προσαρμόσουν τα σύμφωνα με τις δίκες τους ανάγκες 7 of 24

System Components Πελάτες και δρομολογητές (Clients and Routers) o εντολές διαβάσματος/εγγραφής από πελάτες o Οι δρομολογητές το προωθούν στο σωστό κόμβο σύμφωνα με το partition Id Κόμβος αποθήκευσης (Storage Nodes) o Χωρίζονται σε master και slave partitions o Οι αλλαγές γίνονται στους master και καταναλώνονται από τους clients μέσω databus Δίαυλος Μεταβίβασης (Databus Relays) o Τρόπος επικοινωνίας μεταξύ των components του συστήματος o Χρονική συνέπεια + eventually consistent Διαχειριστής Συστάδας (Cluster Manager) o Apache Helix - Επιβλέπει και διαχειρίζεται το σύστημα o Καθορίζει την κατανομή των partitions ώστε να υπάρχει ένα master ανά partition, τα partition να κατανέμονται έτσι ώστε να έχουμε σταθμισμένο φόρτο εργασίας. o Δεν υπάρχουν ίδια αντίτυπα σε ένα αποθηκευτικό κόμβο. 8 of 24

SYSTEM ARCHITECTURE 9 of 24

IMPLEMENTATION - Secondary Index (1/2) Σε κάθε κόμβο αποθήκευσης δημιουργούνται δευτερεύοντα ευρετήρια Τα δευτερεύοντα ευρετήρια πρέπει να έχουν τις εξής ιδιότητες: o Δημιουργία σε πραγματικό χρόνο o Ικανότητα αλλαγής σχήματος σε μηδενικό downtime o Ελαστικότητα. Δεν υπάρχει η δυνατότητα στον DΒΑ να προκαθορίσει συχνές επερωτήσεις αφού αλλάζουν συχνά. o Αναζήτηση κειμένου Αρχικά χρησιμοποιήθηκε το Apache Lucene Framework αλλά αποδεικτικέ ανεπαρκές κυρίως λόγω του ότι δεν ικανοποιείτο η πρώτη ιδιότητα. 10 of 24

IMPLEMENTATION - Secondary Index (2/2) Έτσι δοκιμάσθηκαν οι 2 ακόλουθες προσεγγίσεις: Building block: partition  Building block: collection o Μειώνει την κατανάλωση μνήμης o Δημιουργεί πάρα πολλά μικρά ευρετήρια τα οποία αποθηκεύονται σε ένα MySQL πίνακα Prefix inverted index o Σε κάθε όρο του ευρετηρίου, προσκολλάτε στην αρχή του (εξού και prefix) το collection key o Καταλήγουμε να έχουμε ένα ανεστραμμένο ευρετήριο με πολλές λίστες οργανωμένες ανά συλλογή, χωρίς να χρειάζεται να ανοιγοκλείνουμε τα ευρετήρια. 11 of 24

Partitions and Replicas Ο διαχωρισμός των δεδομένων σε partitions γίνεται για καλύτερη κατανομή φόρτου στο σύστημα και πιο αποδοτική επέκταση των συστάδων. Στο Espresso, αρχικά δημιουργείται ένας μεγάλος αριθμός partitions (over-partitioning) κρατώντας το μέγεθος για κάθε για partition μικρό. Αυτό επιτρέπει καλύτερη συντήρηση και πιο εύκολο backup/restore σε πιθανά σφάλματα. 12 of 24

Internal clock and timeline Κάθε partition της βάσης κρατά το δικό του ιστορικό από commits (commit log). Κάθε αλλαγή που γίνεται καταγράφεται στο ιστορικό και έχει ένα ξεχωριστό SCN (system change number) το οποίο αποτελείτε από ένα αριθμό δημιουργίας και ένα αριθμό σειράς. Λειτουργίες που είναι μέρος ενός transaction έχουν το ίδιο SCN. Με κάθε εκτέλεση ενός transaction ο αριθμό σειράς αυξάνεται. 13 of 24

Replication and consistency Για την αντιγραφή και την συνέπεια των δεδομένων (αλλά όχι για τα ίδια τα δεδομένα), υιοθετήθηκε η ‘sharded’ (horizontally partitioned) MySQL μέθοδος που χρησιμοποιούν πολλές μεγάλες διαδικτυακές εταιρίες. Για τους σκοπούς του Espresso, χρησιμοποιήθηκε ενσωματώθηκε η MySQL αρχιτεκτονική μαζί με κάποιες επεκτάσεις για να πληρούνται οι προϋποθέσεις που χρειάζονται. 14 of 24

Fault Tolerance Για κάθε partition υπάρχει ένας αριθμός αντιτύπων εκ’ των οποίων ένα καθορίζεται ως master partition. Όταν ένας κόμβος αποθήκευσης υποστεί βλάβη, όλα τα master partition που περιέχονται σε αυτόν πρέπει να αντικατασταθούν Κάθε slave partition που επιλέγεται πρέπει πρώτα να καταναλώσει όλα τα δεδομένα από το databus και να αυξήσει τον αριθμό δημιουργίας από το SCN κατά ένα Για τον εντοπισμό κόμβων με βλάβη: o Heartbeat o Έλεγχος απόδοσης των κόμβων (failure prediction) 15 of 24

Cluster expansion H ικανότητα του espresso να εισάγει καινούργιους κόμβους στο σύστημα. Όταν ένας κόμβος αποθήκευσης υποστεί βλάβη, όλα τα master partition που περιέχονται σε αυτόν πρέπει να αντικατασταθούν Όταν ο όγκος των δεδομένων ή η δυνατότητα εξυπηρέτησης request φτάνει στα όρια της Επιλέγετε το μικρότερο δυνατό σύνολο από master/slave partition για να ‘μεταναστεύσουν’ στους καινούργιους κόμβους αποθήκευσης 16 of 24

Espresso in Production Company Pages MailBox o έχει μεταφερθεί από ένα application-sharded RDBMS στο εσπρέσο o Αποτελείται από δυο πίνακες: 1.Ο πρώτος πίνακας περιέχει μια συλλογή από μηνύματα για κάθε mailbox 2.Ο δεύτερος περιχέει τα αρχεία σύνοψης για κάθε mailbox. Unified Social Content Platform o Ενσωματώνει τις δραστηριότητες του κοινωνικού δικτύου μέσα LinkedIn 17 of 24

Test Setup 18 of 24

Experimental Evaluation-Availability 19 of 24

Experimental Evaluation-Availability 20 of 24

Experimental Evaluation - Elasticity 21 of 24

Experimental Evaluation - Performance 22 of 24

Lessons Learned Διαθεσιμότητα o Για την συνεχή παροχή των υπηρεσιών και αποφυγή downtime χρόνου: master-slave + replicas o Επιβολή μεγάλου timeout Συσκευές αποθήκευσης o Μεγάλο performance boost: SSD για την αποθήκευση των secondary index Java tuning o SSD  Μεγάλο throughput  Java heap pages swapping  InnoDB 23 of 24

Future Work Cross-entity transactions o Μέχρι τώρα υπάρχει η δυνατότητα για transactional operations μεταξύ οντοτήτων της ίδιας συλλογής o Στο μέλλον εξετάζεται η δυνατότητα να μπορούν αυτά τα operations να ισχύουν και για οντότητες διαφορετικών συλλογών Platform extensibility o Δημιουργία άλλων πλατφόρμων με βάση το espresso Multi-master deployment o Να υπάρχει η δυνατότητα το σύστημα να ζει σε διαφορετικά data-centers 24 of 24

Ερωτήσεις 25