Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεAbsyrtus Velis Τροποποιήθηκε πριν 10 χρόνια
1
Συστήματα Διαδικτύου SCRIBE: A large-scale and decentralized application-level multicast infrastructure Miguel Castro, Peter Druschel, Anne-Marie Kermarrec and Antony Rowstron Kαθ. Παναγίωτης Τριανταφύλλου 1/9/20141
2
Scribe - Εισαγωγή Το Scribe προσομοιάζει σε ένα σύστημα δημοσίευσης/συνδρομής υιοθετώντας το μοντέλο ομάδων (group-based publish/subscribe) Το Scribe εναλλακτικά είναι ένα σύστημα για multicast επικοινωνία IP multicast και τα σχετικά πρωτόκολλα δεν έχουν κατορθώσει να «τρέξουν» σε μεγάλες εφαρμογές και Δυσκολεύονται στην (δυναμική) καταγραφή των μελών μιας ομάδας. Το Scribe λειτουργεί πάνω από το p2p δίκτυο Pastry σε επίπεδο εφαρμογών Προσφέρει παράδοση μηνυμάτων μέσω multicast δέντρων Είναι πλήρως κατανεμημένο Υποστηρίζει μεγάλο αριθμό ομάδων (groups) Υποστηρίζει ομάδες με μεγάλο αριθμό χρηστών 1/9/20142
3
Scribe API Στο Scribe υποστηρίζονται οι παρακάτω διεπαφές create (credentials, group-id) Δημιουργία ομάδας με συγκεκριμένα πιστοποιητικά πρόσβασης join (credentials, group-id, message-handler) Συμμετοχή σε ομάδα με συγκεκριμένο group-id leave (credentials, group-id) Απομάκρυνση από ομάδα με συγκεκριμένο group-id multicast (credentials, group-id, message) Δημοσίευση του μηνύματος στην ομάδα. Τα πιστοποιητικά (credentials) χρησιμοποιούνται για τον έλεγχο πρόσβασης των χρηστών στην ομάδα. 1/9/20143
4
Το Σύστημα Scribe Το Scribe λειτουργεί πάνω από το δίκτυο Pastry. Σε κάθε κόμβο εκτελούνται οι διεπαφές του Scribe. Διαστρωματωμένη αρχιτεκτονική: σε κάθε κόμβο, στο πιο πάνω στρώμα τρέχει το λογισμικό του Scribe και στο κατώτερο στρώμα τρέχει το λογισμικό του Pastry. Οι διεπαφές του Scribe, χρησιμοποιούνται για την δρομολόγηση και την παράδοση των μηνυμάτων στους κατάλληλους χρήστες. Ένας κόμβος του Pastry μπορεί είτε να προωθεί ένα μήνυμα (Forwarder) είτε (και) να το παραδίδει (Deliverer) τοπικά στην περίπτωση που αυτός είναι αποδέκτης (μέλος της ομάδας). 1/9/20144
5
Τύποι Μηνυμάτων στο Scribe CREATE Δημιουργία ομάδας – από τον «ιδρυτή» JOIN Συμμετοχή σε ομάδα LEAVE Απομάκρυνση από ομάδα MULTICAST Δημοσίευση μηνύματος σε όλα τα μέλη της ομάδας 1/9/20145
6
Προώθηση και Παράδοση Μηνυμάτων (1)forward(msg, key, nextID) (2)switch msg.type is (3)JOIN: if !(msg.group in groups) (4)group = groups U msg.group (5)route(msg,msg.group) (6)groups[msg.group].children U msg.source (7)nextId = null // Stop routing original message (1)deliver(msg, key) (2)switch msg.type is (3)CREATE: groups = groups U msg.group (4)JOIN: groups[msg.group].children U msg.source (5)MULTICAST: node in groups[msg.group].children (6)send(msg, node) (7)if memberOf(msg.group) (8) invokeMsgHandler(msg.group, msg) (9)LEAVE:groups[msg.group].children -= msg.source (10)if (|groups[msg.group].children| = 0) (11)send(msg.groups[msg.group].parent 1/9/20146
7
Κόμβοι στο Scribe Ένας κόμβος στο Scribe μπορεί να: Δημιουργήσει μία ομάδα Να συμμετάσχει σε μία ομάδα Να γίνει η ρίζα του multicast δέντρου για την παράδοση μηνυμάτων της ομάδας Να δημοσιεύσει (προωθήσει/παραδώσει) νέα μηνύματα για κάποια ομάδα. 1/9/20147
8
Ομάδες στο Scribe Μία ομάδα στο Scribe Ορίζεται από ένα μοναδικό group-id Σχετίζεται με ένα multicast δέντρο που χρησιμοποιείται για την διάδοση των μηνυμάτων στους χρήστες Έχει ένα rendezvous κόμβο όπου είναι και η ρίζα του multicast δέντρου Μπορεί να περιέχει πολλαπλές πηγές μηνυμάτων (οποιοδήποτε μέλος της ομάδας μπορεί να στείλει μηνύματα). 1/9/20148
9
Multicast Δέντρο στο Scribe Στο Scribe δημιουργείται ένα multicast δέντρο για κάθε ομάδα με ρίζα τον rendezvous κόμβο, με σκοπό την διάδοση των μηνυμάτων Οι κόμβοι στο multicast δέντρο μπορούν να είναι: Forwarders Κόμβοι που απλά προωθούν τα μηνύματα και δεν είναι αναγκαίο να είναι μέλη της ομάδας. Διατηρούν πίνακες με τις ΙP διευθύνσεις των κόμβων-παιδιών στο multicast δέντρο μιας (ή περισσότερων) ομάδων Αυτοί οι πίνακες είναι επιπλέον των πινάκων που διατηρούν σαν κόμβοι του Pastry. Members Ενεργούν σαν Forwaders αλλά είναι και μέλη της ομάδας. Έτσι προωθούν αλλά και δέχονται (δηλαδή παραδίδουν τοπικά τα) μηνύματα. 1/9/20149
10
Διαδικασία Δημιουργίας Νέας Ομάδας Ο κόμβος στέλνει το μήνυμα CREATE με group-id ως κλειδί. Το δίκτυο Pastry αναλαμβάνει να παραδώσει το μήνυμα στον κόμβο με node-id αριθμητικά πιο κοντά στο group-id. Αυτός ο κόμβος είναι πλέον ο κόμβος rendezvous. Ελέγχονται τα πιστοποιητικά χρήσης της ομάδας. Η ομάδα προστίθεται στο σύνολο των ενεργών ομάδων που διατηρεί το σύστημα – δηλ. αρχικά στον κόμβο rendezvous. Group-id Προκύπτει χρησιμοποιώντας τη συνάρτηση κατακερματισμού (SHA-1) με όρισμα το αλφαριθμητικό όνομα του group και του δημιουργού του Άρα ανήκει στον ίδιο χώρο ονομάτων με τα nodeIds και άρα το δίκτυο Pastry μπορεί να τα δρομολογήσει. 1/9/201410
11
Συμμετοχή σε ομάδα Αποστολή JOIN μηνύματος με το group-id ως κλειδί Το Pastry δρομολογεί το μήνυμα στον rendezvous κόμβο χρησιμοποιώντας τη μέθοδο forward Αν ο ενδιάμεσος κόμβος είναι forwarder Προστίθεται αυτός ο κόμβος στον πίνακα παιδιών του forwarder Αν ο ενδιάμεσος κόμβος δεν είναι forwarder Δημιουργείται ένας πίνακας παιδιών (μελών της ομάδας) και προστίθεται αυτός ο κόμβος. Προωθεί το μήνυμα JOIN προς το rendezvous κόμβο. Προσέξτε ότι το κόστος για JOIN είναι το πολύ O(logN). Γιατί «το πολύ» ; 1/9/201411
12
Συμμετοχή σε ομάδα 11001101010010010111 JOIN group Ρίζα rendezvous κόμβος 011110011101 JOIN group 0100 1/9/201412
13
Απομάκρυνση από Ομάδα Ο κόμβος ενημερώνει τις τοπικές δομές ότι δεν είναι πλέον μέλος της ομάδας Ο κόμβος στέλνει ένα LEAVE μήνυμα στον πατέρα του Το μήνυμα ταξιδεύει προς τη ρίζα Το μήνυμα σταματάει σε ενδιάμεσο κόμβο που συνεχίζει να έχει παιδιά του στο group αυτό μετά την απομάκρυνση του κόμβου. 1/9/201413
14
Δημοσίευση Μηνύματος Ένας κόμβος που προτίθεται να δημοσιεύει πληροφορία στο Scribe στέλνει ένα MULTICAST μήνυμα στο rendezvous κόμβο. Αυτός ο κόμβος αποθηκεύει (σε cache) την IP διεύθυνση του rendezvous κόμβου (μετά την πρώτη δημοσίευσή του) για να μπορεί να του αποστείλει απευθείας τις επόμενες δημοσιεύσεις...(και να γλυτώσει έτσι τα O(logN) μηνύματα. Στο Scribe υπάρχει ένα multicast δέντρο ανά ομάδα. Με την παραλαβή του μηνύματος από το rendezvous κόμβο, ο το rendezvous κόμβος στέλνει το μήνυμα στα παιδιά του (που είναι μέλη αυτής της ομάδας). Το κάθε παιδί προωθεί το μήνυμα στα παιδιά του για αυτή την ομάδα. Ο έλεγχος πρόσβασης γίνεται στον rendezvous κόμβο 1/9/201414
15
Δημοσίευση Μηνύματος αποστολέας 01111001 1101 Μέλος ομάδας 011110011101 0100 1100 Μέλος ομάδας Ρίζα rendezvous κόμβος 0100 1/9/201415
16
Ανοχή σε λάθη – Αναδόμηση Δέντρου Ανοχή / αντιμετώπιση «σπασμένων» συνδέσεων Αποτυχία/αστοχία ενδιάμεσου κόμβου οδηγεί στην αποκοπή ολόκληρων υποδένδρων από την υπόλοιπη ομάδα. Ανίχνευση: Κάθε ενδιάμεσος κόμβος στέλνει περιοδικά μηνύματα στα παιδιά του (“ping”, “are-you-alive”,…) μηνύματα, τα οποία αναμένονται από τα παιδιά. Ανάνηψη: Αν ένα παιδί δεν λάβει αυτό το μήνυμα Υποθέτει ότι ο πατέρας του έχει καταρρεύσει και βρίσκει νέο πατέρα στέλνοντας το JOIN μήνυμα με group-id ως κλειδί 1/9/201416
17
Αναδόμηση Δέντρου 01111001 0100 1101 011110011101 0100 X JOIN 1001 1111 JOIN 1111 1100 1/9/201417
18
Ανοχή σε λάθη – Αναδόμηση Δέντρου Κατάρρευση του rendevous κόμβου Η πληροφορία που κρατάει κάθε rendezvous κόμβος για τις ομάδες που διαχειρίζεται (δημιουργός, ACL, κλπ) αποθηκεύεται (αντιγράφεται) και στους k (~=5) (αριθμητικά) πιο κοντινούς κόμβους (που ανήκουν στο leaf set). Όταν η ρίζα καταρρεύσει, το δέντρο αναδομείται: τα παιδιά αποστέλλουν το μήνυμα JOIN πάλι Το Pastry θα το δρομολογήσει στο ζωντανό κόμβο που είναι αριθμητικά πιο κοντά στον κόμβο SHA-1(group_id) και επιλέγεται σαν νέα ρίζα ο κόμβος με node-id αριθμητικά πιο κοντά στο grou-id. Αυτός ο κόμβος έχει αποθηκευμένη την πληροφορία της προηγούμενης ρίζας (βρισκόταν στο leaf set του κόμβου που έφυγε) Προσέξτε: όλοι οι πιθανοί μελλοντικοί δημοσιευτές μένουν ανεπηρέαστοι! Η ανοχή σε λάθη και η ανάνηψη επιτυγχάνεται κατανεμημένα και με ανταλλαγή ελάχιστων μηνυμάτων. 1/9/201418
19
Παροχή Αξιόπιστης Παράδοσης Το Scribe χρησιμοποιεί το TCP πρωτόκολλο μεταξύ πατέρα- παιδιών. παρέχει αξιόπιστη παράδοση μηνυμάτων με σωστή σειρά μόνο όταν δεν παρουσιάζονται σφάλματα στο multicast δέντρο Υπό την παρουσία σφαλμάτων/λαθών το Scribe μπορεί να προσφέρει αξιόπιστη παράδοση παρέχοντας σχετικούς μηχανισμούς Το Scribe παρέχει χειριστές που μπορούν να χρησιμοποιήσουν κατάλληλα οι εφαρμογές που στηρίζονται στο Scribe Αυτοί οι χειριστές καλούνται πριν από την αντίστοιχη διεπαφή του Scribe και, στην ουσία τους, υλοποιούν μηχανισμούς αντίστοιχους με αυτούς του TCP αλλά πάνω στα overlay μονοπάτια (του mcast δένδρου). Απαιτείται αντιγραφή μηνυμάτων και στη ρίζα και σε ενδιάμεσους κόμβους και αρίθμηση μηνυμάτων (sequence numbers). 1/9/201419
20
Πειραματική Μελέτη Πειράματα Σύγκριση καθυστέρησης μετάδοσης, φόρτου στους κόμβους και στις συνδέσεις τους με το IP multicast Επεκτασιμότητα κάτω από μεγάλο αριθμό μικρών ομάδων Χαρακτηριστικά Πειραμάτων Το δίκτυο αποτελείται από 5.050 δρομολογητές χρησιμοποιώντας τυχαίους γράφους GT-ΙΤΜ transit-stub model 100.000 κόμβους του Scribe 1.500 ομάδες Μέγεθος ομάδας: ελάχιστο 11 - μέγιστο 100.000 1/9/201420
21
Καθυστέρηση Μετρήθηκε η κατανομή των καθυστερήσεων για την παράδοση των μηνυμάτων σε κάθε μέλος χρησιμοποιώντας το Scribe και το IP multicast Μετρικές απόδοσης: Λόγος μέσης καθυστέρησης σε σχέση με το IP Multicast (RAD) 50% των ομάδων : 1.68 μέγιστο: 2 Λόγος μέγιστης καθυστέρησης σε σχέση με το IP Multicast (RMD) 50% των ομάδων: 1.69 Μέγιστο: 4.26 Η καθυστέρηση στο Scribe είναι μεγαλύτερη σε σχέση με το IP multicast. Μόνο στο 2.2% των ομάδων είναι μικρότερη Αθροιστική κατανομή καθυστέρησης σε σχέση με το IP Multicast 1/9/201421
22
Φόρτος στους κόμβους Για κάθε κόμβο μετράται ο αριθμός των ομάδων που υποστηρίζει Ο μέσος αριθμός πινάκων παιδιών ανά κόμβο είναι 2.4 με 1500 ομάδες στο σύστημα Τα αποτελέσματα δείχνουν ότι το Scribe κατανέμει τον φόρτο σε όλους τους κόμβους 1/9/201422
23
Φόρτος στις Συνδέσεις Μετράται ο αριθμός των πακέτων που αποστέλλονται πάνω από κάθε σύνδεση όταν μηνύματα αποστέλλονται στα μέλη 1500 ομάδων Ο μέσος αριθμός πακέτων ανά σύνδεση είναι Scribe : 2.4 (μέγιστη 4031) IP Multicast : 0.7 (μέγιστη 950) Στο Scribe παρατηρείται τετραπλάσιο φόρτος στις συνδέσεις σε σχέση με το IP Multicast 1/9/201423
24
Αντιμετώπιση Περιοχών Υψηλού Φόρτου Είναι δυνατό να μην έχουν όλοι οι κόμβοι την ίδια επεξεργαστική ισχύ ή bandwidth στις συνδέσεις τους με του υπόλοιπους Υπό υψηλό φόρτο, ορισμένοι κόμβοι (όχι και τόσο δυνατοί) μπορεί να υπερφορτωθούν και να καταρρεύσουν Η λύση είναι να μεταφερθεί ο πίνακας παιδιών ενός κόμβου Κ σε άλλο κόμβο Επιλογή της ομάδας στον Κ που προκαλεί τον περισσότερο φόρτο Επιλογή του πιο μακρινού παιδιού του Κ σε αυτή την ομάδα και αποστολή του πίνακα παιδιών σε αυτό Το συγκεκριμένο παιδί επιλέγει ανάμεσα στα υπόλοιπα παιδιά το καταλληλότερo (με βάση τις αποστάσεις τους) που θα παίξει το ρόλο του πατέρα 1/9/201424
25
Επεκτασιμότητα στο Scribe 30.000 ομάδες με 11 μέλη 50.000 ομάδες με 11 μέλη Το Multicast δέντρο στο Scribe δεν είναι αποδοτικό υπό την παρουσία πολλών μικρών ομάδων γιατί δημιουργούνται δέντρα με πολύ μακρινά μονοπάτια Λύση: απομάκρυνση από τα μονοπάτια κόμβων που δεν ανήκουν στην ομάδα και έχουν ένα μόνο παιδί στον πίνακα τους Παρατηρήθηκε μείωση του φόρτου στις συνδέσει από 6.1 σε 3.3, και μείωση στον αριθμό των παιδιών ανά κόμβο από 21.2 σε 8.5 1/9/201425
26
Συμπέρασμα Το Scribe είναι μία επεκτάσιμη υποδομή πάνω από το Pastry με επιτρέπει την παράδοση μηνυμάτων στα μέλη ομάδων δημιουργώντας multicast δέντρα για κάθε ομάδα Είναι πλήρως κατανεμημένο (Pastry) Αποδίδει ικανοποιητικά όσο ο αριθμός των ομάδων μεγαλώνει Μπορεί να λειτουργήσει υπό την παρουσία λαθών. Όμως: Δε λαμβάνει υπόψη του τα προβλήματα μεταβολών bandwidth του διαδικτύου και Δυνητικά υποφέρει από το πρόβλημα των «λεπτών» δένδρων (μεγάλα μονοπάτια ρίζα-φύλλο)... μεγάλη καθυστέρηση παράδοσης. 1/9/201426
27
Ερωτήσεις κλειδιά: Αφού είναι αρκετά πιο ακριβό από το IP multicast, γιατί το χρειαζόμαστε και δε χρησιμοποιούμε το IP multicast ; Τί γίνεται αν ο κόμβος rendezvous είναι «αργός» (ή κάποιος άλλος κόμβος στα πρώτα επίπεδα του δένδρου); Υπάρχει η πιθανότητα >1 κόμβων rendezvous ; (ή «σπασίματος» υποδένδρων σε «παράλληλα» υποδένδρα); Υπάρχει τρόπος να δημιουργήσουμε δένδρα με «ελεγχόμενη» δομή (π.χ. Μήκος μέγιστου βάθους); Είναι τα δένδρα η κατάλληλη δομή για mutlicasting; 1/9/201427
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.