Προσαρμοστικοί Αλγόριθμοι Εξισορρόπησης Φόρτου σε Κατανεμημένα Περιβάλλοντα (Δίκτυα Ομοτίμων και Υπολογιστικά Νέφη) Υποστήριξη Διδακτορικής διατριβής Ιωάννης Κωνσταντίνου Email:ikons@cslab.ece.ntua.gr Εργαστήριο Υπολογιστικών Συστημάτων Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Big Data 90% των σημερινών δεδομένων δημιουργήθηκαν τα τελευταία 2 χρόνια Νόμος του Moore: Διπλασιασμός δεδομένων κάθε 18 μήνες YouTube: 13 εκατ. ώρες και 700 δις αναπαραγωγές το 2010 Facebook: 20TB/ημέρα συμπιεσμένα CERN/LHC: 40TB/μέρα (15PB/έτος) Πολλά, πολλά ακόμα Web logs, αρχεία ομιλιών, ιατρικοί φάκελοι, κλπ 2
Έκρηξη δεδομένων 1 EB (Exabyte=10 18 bytes) = 1000 PB (Petabyte=10 15 bytes) Κίνηση δεδομένων κινητής τηλεφωνίας στις ΗΠΑ για το 2010 1.2 ZB (Zettabyte) = 1200 EB Σύνολο ψηφιακών δεδομένων το 2010 35 ZB (Zettabyte = 10 21 bytes) Εκτίμηση για σύνολο ψηφιακών δεδομένων το 2020 3
Κατανεμημένα συστήματα (1) Ανάγκη για κατανεμημένη επεξεργασία!! Δίκτυα ομοτίμων (Peer to Peer) Γνωστά για διαδικτυακή ανταλλαγή αρχείων Έμφυτη ικανότητα κλιμάκωσης Χρησιμοποιούνται από πολλές εφαρμογές Υπολογιστικά νέφη (cloud computing) À la carte πρόσβαση σε: Εικονικούς πόρους σε απομακρυσμένα datacenters Εύκολη προσθαφαίρεση πόρων μέσω API 4
Κατανεμημένα συστήματα (2) Λύνουν πολλά προβλήματα, αλλά: Προσθέτουν πολυπλοκότητα Εξισορρόπηση φόρτου Συνέπεια Συγχρονισμός Ανοχή σε σφάλματα Ασφάλεια - Ιδιωτικότητα 5
Περιεχόμενα NIXMIG: εξισορρόπηση φόρτου σε κατανεμημένες δομές που υποστηρίζουν ερωτήματα εύρους τιμών Κατανεμημένο σύστημα δεικτοδότησης, αποθήκευσης και επερώτησης δεδομένων μεγάλου όγκου Συμπεράσματα Μελλοντικές Κατευθύνσεις 6
Κίνητρο (1) Ερωτήματα εύρους είναι πολύ χρήσιμα κύβοι OLAP Χωρικές Βάσεις Δεδομένων Booking και e-commerce ιστοσελίδες Παιχνίδια on-line, κλπ Πλήθος κατανεμημένων δομών που υποστηρίζουν ερωτήματα εύρους Skip Graphs, P-Grids, P-trees, BATON, Prefix Hash Trees, κλπ 7
Κίνητρο (2) q 1 q 4 q 3 q 2 q 5 q 6 q 7 N 1 N 2 N 3 N 4 N 5 Συνήθως η ζήτηση δεν είναι ομοιόμορφη!! Ειδικά σε διαδικτυακές εφαρμογές Άνισες κατανομές απαιτούν εξισορρόπηση!!!! 8
Εξισορρόπηση με κατακερματισμό Αρχική κατανομή Εφέ του κατακερματισμού N 1 N 2 N 3 N 4 N 5 Εφαρμόζεται από DHTs όπως Chord, κλπ Καταστρέφει την τοπικότητα Θεωρητικός λόγος ασυμμετρίας logn Όχι κατάλληλος για ερωτήματα εύρους!! 9
Εξισορρόπηση με μεταφορά αντικειμένων N 1 N 2 N 3 N 4 N 5 N 1 N 5 N 2 N 3 N 4 [KR06],[GBGM04],[AKK04],[BAS04],[VORT09],[LCLC09],[SX07],[SX08],[Jou08],[CLM + 11][G DA10],[GH05],[GS04],[TZX10] [KR06]: Τυχαία μηνύματα συγκρίνουν φορτία Εάν τα φορτία διαφέρουν κατά ε, 0<ε<1/4 τότε γίνεται εξισορρόπηση [GBDM04]: Ενημέρωση κεντρικού καταλόγου με φορτία [AKK04]: απαιτεί ελευθέρους κόμβους [SX07]: Διατηρεί δείκτες μεταξύ πηγής και προορισμού 10
Ορθογώνιες προσεγγίσεις Εξισορρόπηση με αντίγραφα [PNT06],[PNT10],[GSBK04],[TR06],[LCC + 2] Θέματα συνέπειας κατά την ενημέρωση Απαιτεί αλλαγές στο πρωτόκολλο δρομολόγησης για updates/inserts Εξισορρόπηση με Εικονικούς κόμβους [DKK + 01],[RLS + 03],[SGL + 06],[GS05],[ZH05],[HLCH11],[CT08],[LCLC09] Εύκολη υλοποίηση σαν threads, αλλά: κατακερματίζεται το ID space, αυξημένες ανάγκες σε bandwidth και μνήμη 11
Συνεισφορά (1) Μελέτη των δυο βασικών μεθόδων εξισορρόπησης φόρτου με μεταφορά αντικειμένων Διαδοχική Ανταλλαγή Αντικειμένων μεταξύ Γειτόνων (NIX) Μεταναστεύσεις κόμβων (MIG) NIXMIG Υβριδική μέθοδος μεταφοράς αντικειμένων Ρυθμίζει προσαρμοστικά τις NIX/MIG 12
Θεωρητική ανάλυση Συνεισφορά (2) Αποτίμηση επίδοσης NIX, MIG και NIXMIG Μελέτη ύπαρξης σημείου σύγκλισης Υλοποίηση πάνω από έναν Skip Graph Πειραματική ανάλυση Ο NIXMIG κερδίζει τους NIX, MIG και τον IB [KR06] Ταχύτητα Όγκο μεταφερόμενων μηνυμάτων και αντικειμένων 13
Βασικές έννοιες Στόχος Αποθήκευση M κλειδιών σε N κόμβους, N<<M Ισόποσος χωρισμός σε N τμήματα με διαδοχικά όρια Ορισμός φορτίου (load) L i ενός κόμβου N i Αριθμός αιτήσεων αντικειμένων στον χρόνο (reqs/sec) Μπορεί να αναχθεί σε κατανάλωση εύρους ζώνης για την απάντηση ερωτήσεων (kb/sec) Κατώφλι φορτίου (Load threshold) Χωρίζει σε overloaded και underloaded Τοπική ανά κόμβο ρύθμιση Στόχος: Μεταφορά αντικειμένων έτσι ώστε να πέσει το φορτίο του κάθε κόμβου κάτω από το κατώφλι του 14
Διαδοχική Ανταλλαγή Αντικειμένων μεταξύ Γειτόνων (NIX) ΥΠΕΡ Χωρίς αναγνωριστικά μηνύματα για την εντόπιση κόμβων που υπολειτουργούν Χωρίς συντήρηση του υπερκείμενου δικτύου ΚΑΤΑ Αδυναμία εφαρμογής σε μεγάλες περιοχές υπερφορτωμένων κόμβων Απαιτεί πολλές διαδοχικές μετακινήσεις αντικειμένων 15
Θεωρητική αποτίμηση NIX N 1 N 1 N. N 2 N 3 M-N.. N 1 N 2 N N M-1... N-1. N N-1 M-N. N N. thres N 2 N 3 N N thres thres t 0 t 1 t N-1 Χειρότερη αρχική τοποθέτηση κλειδιών N κλειδιά με μοναδιαίο load Στο t 0 μεταφέρονται Μ-1 κλειδιά, στο t 1 Μ-2, κοκ. Μετά από Ο(N) χρόνο έχουν μεταφερθεί Ο(Μ) κλειδιά ανά εκτέλεση, για Ν<<Μ 16
Μεταναστεύσεις κόμβων (MIG) ΥΠΕΡ Γρήγορος, ταυτόχρονη εφαρμογή σε πολλούς κόμβους Απαιτεί την μεταφορά μικρού αριθμού αντικειμένων ΚΑΤΑ Χρειάζονται επιπλέον probing μηνύματα για εντοπισμό κόμβων που υπολειτουργούν Χρειάζεται ενημέρωση των πινάκων δρομολόγησης 17
Θεωρητική αποτίμηση MIG. _ M_ M N _ M N N 1 N 2 N N N t 0 N 1.. t C _ M N thres N N thres Χειρότερη αρχική τοποθέτηση κλειδιών Ταυτόχρονη εκτέλεση Ν-1 MIG όπου μεταφέρονται Μ/Ν κλειδιά. logn κόστος για ενημέρωση routing table και για εύρεση κόμβων M O ( + log N) κόστος και Ο(1) N χρόνος 18
Μέση (average) περίπτωση για NIX και MIG Αναγωγή σε balls into bins [MU05] Άρα ρίχνουμε ομοιόμορφα Ν μπάλες σε Ν κάδους P[N i is not overloaded]=p[l i =0]+P[L i =1] =e -1 +e -1 = 74% Άρα μόνο 26% κόμβοι είναι overloaded Επίσης, μέγιστο Load= log N < log log N Πολύ μικρότερο από τις worst case περιπτώσεις N 19
NIX ή MIG? Load A thres Load thres t=t a keys Αποτελεσματικός NIX : η απορρόφηση γίνεται τοπικά A t=t b keys Load A t=t a B thres keys Load A B Αποτελεσματικός MIG : ο NIX θα έκανε ταλαντώσεις t=t b thres keys 20
NIXMIG (1) Load Phase 1: Exam N 1 N 2 N 3 N 4 N 10 N 11 N 12 N 13 k 1 k 2 k 3 k 4 Επιλογή κόμβων με την μορφή κύματος έτσι ώστε: Εξέταση φόρτου, επιλογή τύπου εξισορρόπησης και υπολογισμό extra απαιτούμενων κόμβων Δέσμευση (lock) κόμβων για συμμετοχή στην εξισορρόπηση Τοπικό κύμα ελέγχει την γειτονιά Μακρινά (προαιρετικά) probes ψάχνουν για ελεύθερους thres keys 21
NIXMIG (2) Load N 1 N 2 N 3 N 4 Ο έλεγχος σταματάει όταν Απαιτούνται περισσότεροι από TTL κοντινοί ή TTL μακρινοί κόμβοι Συμβαίνει σύγκρουση Phase 1: Exam tmpload παράμετρος υπολογίζει το συνολικό εικονικό load Μόνο NIX, εάν το φορτίο απορροφάται τοπικά N 10 N 11 N 12 N 13 k 1 k 2 k 3 k 4 thres keys Και NIX και MIG, εάν το πολύ TTL τοπικοί κόμβοι έχουν επιλεχτεί και χρειάζονται επιπλέον κόμβοι Μόνο MIG, εάν περισσότεροι από TTL μακρινοί κόμβοι χρειάζονται εξαρχής. 22
NIXMIG (3) Load Phase 2: NIX thres N N 1 N 2 N 4 3 N 10 N 11 N 12 N 13 k 1 k 2 k 3 k 4 keys Μεταφορά φορτίου από τους τοπικούς κόμβους στον τελευταίο (N 4 ) Ρυθμιζόμενη παράμετρος α, 0<α<1 ποσοστό μεταφερόμενου φορτίου επιθετικότητα του αλγορίθμου Ο N 4 παραμένει overloaded για λίγο χρόνο, καθώς ήδη έχουν δεσμευτεί οι μακρινοί 23
NIXMIG (4) Load Phase 3: MIG (Optional) thres N 10 N 11 N 12 N 13 N 1 N 2 N 3 N 4 N 13 N 12 N 11 keys k 1 k 2 k 3 k 4 Απομακρυσμένοι κόμβοι Μεταφέρουν τα κλειδιά τους στον N 10 Τοποθετούνται δίπλα από τον N 4 και παίρνουν μέρος του φορτίου Ελαχιστοποιείται η ενημέρωση routing entries Στο τέλος όλοι οι κόμβοι έχουν εξισορροπήσει το φορτίο τους!! 24
Θεωρητική αποτίμηση (1) Σε ποιες περιπτώσεις συγκλίνει? Συνάρτηση δυναμικού: φ( t) Για να έχουμε σύγκλιση, πρέπει φ > 0 Μείωση δυναμικού κατά ένα balancing operation (έστω N i overloaded): Ταχύτερη σύγκλιση έχουμε εάν ο N j είναι underloaded = N i= 1 ( Li ( t) thres i φ = 2α ( Li thresi )[( Li thresi )(1 a) + ( thres j L j Ο τρίτος όρος πρέπει να είναι θετικός 2 ) )] 25
Θεωρητική αποτίμηση (2) Για ποιες τιμές του α έχουμε ταχύτερη σύγκλιση? Έστω ομογενές δίκτυο με σταθερό thres Έστω lτο φορτίο που μεταφέρεται από τον N i 2 στον N j, τότε έχουμε φ( l) = 2l + 2( L L l Το φ(l) είναι τριώνυμο με αρνητικό πρώτο όρο Άρα, παρουσιάζει μέγιστο για Από όπου προκύπτει a opt = 1 2 l opt = 1 ( Li 2 i j ) L j ) 26
Πειραματική αξιολόγηση Υλοποίηση εξομοιωτή σε 6K γραμμές Java 500 κόμβοι, 50k κλειδιά (100 ανά κόμβο) Πειράματα μέχρι 50k κόμβους και 5M κλειδιά Συνθετικά φορτία με λοξότητα (skew) Παλμός: μόνο ένα εύρος κλειδιών ζητιέται συνεχώς Zipf κατανομές με διαφορετικά θ Ρεαλιστικά φορτία: AOL dataset με user queries 20M λέξεις κλειδιά 650K χρήστες 3 μήνες 27
Σύγκριση με [KR06] NIXMIG KARGER S IB Watch youtube video Watch youtube video 28
Σύγκριση NIXMIG με IB [KR06] 29
Δυναμικό φορτίο Watch youtube video 30
Περιεχόμενα NIXMIG: εξισορρόπηση φόρτου σε κατανεμημένες δομές που υποστηρίζουν ερωτήματα εύρους τιμών Κατανεμημένο σύστημα δεικτοδότησης, αποθήκευσης και επερώτησης δεδομένων μεγάλου όγκου Συμπεράσματα Μελλοντικές Κατευθύνσεις 31
Web 2.0 datasets Linked Data Wikipedia Amazon public datasets, Κίνητρο Φτηνό hardware και bandwidth επιτρέπει την ανάλυση Webscale δεδομένων Θέλουμε να πετύχουμε εξισορρόπηση φόρτου Κλιμάκωση (scalability) Ανοχή σε σφάλματα Real time απόκριση σε ερωτήματα Υποστήριξη πολλών τύπων δεδομένων 32
Συνεισφορά Κατανεμημένο σύστημα για την επεξεργασία, δεικτοδότηση και διαμοιρασμό TBs από δεδομένα Συνδυασμός NoSQL + MapReduce : MapReduce επεξεργάζεται τα δεδομένα εισόδου και φτιάχνει το ευρετήριο Το ευρετήριο και τα δεδομένα διαμοιράζονται μέσω μιας NoSQLβάσης 33
Σχετικές εργασίες Κατανεμημένα συστήματα δεικτοδότησης βασισμένα σε Hadoop Το Ivory κατανέμει μόνο την δημιουργία του index. To Hindex κατανέμει τα indices μέσω HBase, αλλά η δημιουργία είναι κεντρικοποιημένη Στο σύστημά μας και η δημιουργία και ο διαμοιρασμός του ευρετηρίου είναι κατανεμημένος!!! 34
Αρχιτεκτονική (1) Index rules Map Reduce Content table Map Reduce Index table Uploader Indexer Raw Content Get object Search objects Client API Ανέβασμα των δεδομένων στο HDFS Τα δεδομένα μαζί με τους κανόνες δεικτοδότησης τροφοδοτούν τον Uploader Δημιουργία του πίνακα Content 35
Αρχιτεκτονική (2) Index rules Map Reduce Content table Map Reduce Index table Uploader Indexer Raw Content Get object Search objects Client API Ο Πίνακας Content τροφοδοτείται στον Indexer για την εξαγωγή του πινακα Index Το client API επικοινωνεί με τον Index για αναζητήσεις, και με τον Content για ανάκτηση αντικειμένων 36
Record boundaries Κανόνες Δεικτοδότησης Attribute types <author> <name>ioannis</name> <surname>konstantinou</surname> <date>26/04/2010</date> </author> Τα όρια εγγραφών χωρίζουν τα δεδομένα σε μονάδες για επεξεργασία Τα είδη attributes επιλέγουν περιοχές για δεικτοδότηση Ένα XML tag, ένας πίνακας HTML, μία στήλη DB, κλπ 37
Πίνακες Content/Index Content Table Row key: MD5Hash 2da0ae7cb5 223c14b2a8 Row value: record content <author><name>ioannis</name></author> <author><name>evangelos</name></author> Index Table Row key: term _ attribute type 20100424_date 20100426_date Konstantinou_name Row value: list(md5hash) 2da0ae7cb598ac8e 223c14b2a8c7bbe2 2da0ae7cb5988.., 223c14b2a8c7bb Αναζήτηση με τον πίνακα Index Exact Match (Hbase Get) Prefix Search (Hbase Scan) Ανάκτηση με τον πίνακα Content Με απλό Hbase Get 38
Είδη δεδομένων και φορτίων Δομημένα: 23 GB MySQL Database dump από την τελευταία έκδοση wikipedia Ημι-δομημένα (XML-HTML) 150 GB XML από τα 2,55TB κάθε άρθρου wikipedia μάζί με τις αναθεωρήσεις του μέχρι τον Μάιο 2008 150 GB HTML από μια στατική έκδοση της wikipedia Αδόμητα: 20GB από όλα τα κείμενα σε όλες τις γλώσσες της συλλογής Gutenberg (46.000 αρχεία) Ερωτήσεις χρηστών από την AOL Οι πελάτες κάνουν point και prefix queries ακολουθώντας κατανομή zipfian 39
Χρόνος απόκρισης για διαφορετικό φορτίο Χρόνοι απόκρισης για φυσιολογικό φόρτο Point queries: 20ms Any attribute queries: 150ms Range queries: 27sec Caching effect της HBase Μέχρι 100queries/sec υπάρχουν αρκετά διαθέσιμα connections Μεταξύ 100 και 1000 queries/sec: το queuing και caching είναι σημαντικό 40
Χρόνος απόκρισης για διαφορετικό μέγεθος Dataset και Index Η αύξηση του ευρετηρίου δεν επηρεάζει τον χρόνο απόκρισης Τα ερωτήματα εύρους κοστίζουν Μικρή γραμμική αύξηση του χρόνου απόκρισης με την αύξηση του dataset 41
Συμπεράσματα Κατανεμημένα συστήματα κάτω από μεγάλο φόρτο Όγκο Δεδομένων Ταυτόχρονα ερωτήματα Εξισορρόπηση φόρτου σε δύο βασικά προβλήματα Ερωτήματα εύρους Δημιουργία και διαχείριση ευρετηρίων P2P και bleeding edge cloud ready συστήματα Παραδοσιακοί κατανεμημένοι αλγόριθμοι Αντιμετωπίζουν τα ίδια προβλήματα Αλλάζει κάθε φορά η εφαρμογή Είναι αλληλένδετα 42
Περιεχόμενα NIXMIG: εξισορρόπηση φόρτου σε κατανεμημένες δομές που υποστηρίζουν ερωτήματα εύρους τιμών Κατανεμημένο σύστημα δεικτοδότησης, αποθήκευσης και επερώτησης δεδομένων μεγάλου όγκου Συμπεράσματα Μελλοντικές Κατευθύνσεις 43
Προσαρμοστική αντιγραφή κατανεμημένων δομών που υποστηρίζουν ερωτήματα εύρους q 1 q 3 q 2 q 4 q 5 q 6 q 7 N 1 N 2 N 3 N 4 N 5 N 1 N 3 N 4 N 5 t=t a t=t b N 2 Ερωτήματα q 1..q 7 υπερφορτώνο υν τον N 1 Ο NIXMIG μεταφέρει τους N 3,N 4,N 5 44
Προσαρμοστική αντιγραφή κατανεμημένων δομών που υποστηρίζουν ερωτήματα εύρους N 1 N 3 N 4 N 5 q 1 q 3 q 2 q 4 q 5 q 6 q 7 N 1 N 2 N 3 N 4 N 5 t=t a N 2 Δυική προσέγγιση Η δημοφιλής περιοχή διαμοιράζεται και από τους N 3,N 4, N 5 Κάθε κόμβος παίρνει το ¼ των ερωτημάτων t=t b 45
Βελτιώσεις του συστήματος Δεικτοδότησης Ενημερώσεις? Υπέρ/κατά της συμπίεσης? Υποστήριξη για RDF? Jena Hexastore 46
Ελαστική NoSQL μέσω clouds Προσθαφαίρεση κόμβων ανάλογα με την ζήτηση CIKM 2011 submission Πώς/ποια μετρικά χρειάζονται? Πότε και πόσους κόμβους χρειάζεται να προσθαφαιρέσουμε? Μπορούμε ταυτόχρονα να εξυπηρετούμε ερωτήματα? 47
Δημοσιεύσεις (1) Περιοδικά Fast and Cost-Effective Online Load-Balancing in Distributed Range-Queriable Systems. I. Konstantinou, D. Tsoumakos and N. Koziris. IEEE Transactions on Parallel and Distributed Systems (To appear) A Grid Middleware for Data Management Exploiting Peer-to-Peer Techniques. A. Asiki, K. Doka, I. Konstantinou, A. Zissimos, D. Tsoumakos, N. Koziris and P. Tsanakas. Future Generation Computer Systems, Volume 25, Issue 4, April 2009, Pages 426-435 Διεθνή συνέδρια με κριτές Distributed Indexing of Web Scale Datasets for the Cloud. I. Konstantinou, E. Angelou, D. Tsoumakos and N. Koziris. In Proceedings of the International Workshop on Massive Data Analytics on the Cloud (MDAC2010 - in conjunction with WWW 2010), Raleigh, NC, USA, 26 April 2010 Measuring the Cost of Online Load-Balancing in Distributed Range-Queriable Systems. I. Konstantinou, D. Tsoumakos and N. Koziris. In Proceedings of the 9th International IEEE Conference on Peer-to-Peer Computing (P2P), Seattle, WA, USA, 8-11 September 2009 48
Δημοσιεύσεις (2) Διεθνή συνέδρια με κριτές GRIDNEWS: A Distributed Automatic Greek Broadcast Transcriptions System. D. Dimitriadis, A. Metallinou, I. Konstantinou, G. Goumas, P. Maragos and N. Koziris. In Proceedings of the 2009 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP-09), Taipei, Taiwan, March 2009 PASS It ON (PASSION): An Adaptive Online Load-Balancing Algorithm for Distributed Range-Query specialized Systems. I. Konstantinou, D. Tsoumakos and N. Koziris. In Proceedings of the 16th International Conference on Cooperative Information Systems (CoopIS), Monterrey, Mexico, 12-14 November 2008 A Distributed Architecture for Multi-Dimensional Indexing and Data Retrieval in Grid Environments. A. Asiki, K. Doka, I. Konstantinou, A. Zissimos, and N. Koziris. In Proceedings of the Cracow 2007 Grid Workshop (CGW 07), Krakow, Poland, October 16-17, 2007 Gredia Middleware Architecture. I. Konstantinou, K. Doka, A. Asiki, A. Zissimos, and N. Koziris. In Proceedings of the Cracow 2007 Grid Workshop (CGW 07), Krakow, Poland, October 16-17, 2007. 49
Ερωτήσεις? 50
Ελαφόνησος, Χανιά Υποστήριξη διδακτορικής διατριβής Ιωάννης Κωνσταντίνου 51