Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Διανομή Περιεχομένου στο Διαδίκτυο To Δίκτυο Pastry A. Rowstron and P. Druschel. "Pastry: Scalable, decentralized object location and routing for large-scale.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Διανομή Περιεχομένου στο Διαδίκτυο To Δίκτυο Pastry A. Rowstron and P. Druschel. "Pastry: Scalable, decentralized object location and routing for large-scale."— Μεταγράφημα παρουσίασης:

1 Διανομή Περιεχομένου στο Διαδίκτυο To Δίκτυο Pastry A. Rowstron and P. Druschel. "Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems". IFIP/ACM Middleware Conference, Nov 2001 pp Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems

2 Plaxton & Rajaraman: Plaxton Mesh Όλα ξεκίνησαν με το άρθρο των Plaxton & Rajaraman που καταπιανόταν με κατανεμημένη δρομολόγηση. Πρόκειται για διαχείριση (αποθήκευση/εντοπισμό) αντικειμένων σε κατανεμημένο περιβάλλον που βασίζεται σε κατανεμημένους πίνακες κατακερματισμού (DHTs). Δημιουργία ενός εικονικού δέντρου που έχει ένα προς ένα αντιστοιχία με το δίκτυο. Η δρομολόγηση των μηνυμάτων βασίζεται στο πρόθεμα (prefix) των ετικετών/αναγνωριστικών (ids) τους

3 Προβλήματα Αυτή η δομή απαιτεί στατικό δίκτυο για να μην χάνεται η συνεκτικότητα του δέντρου. Κάτι τέτοιο σε δίκτυα ομοτίμων δεν επιτρέπεται. Συνεχής άφιξη/αναχώρηση κόμβων Παρουσία σφαλμάτων (κόμβοι ή συνδέσεις καταρρέουν) Εάν ένας κόμβος πάψει να υπάρχει (failure) τότε είναι δυνατόν να δημιουργηθεί μία τομή στο δίκτυο και να μην υπάρχει επικοινωνία/προσπέλαση περιεχομένου.

4 Το Pastry DHT Βασίζεται στη κατανεμημένη δομή των Plaxton et al. (με δρομολόγηση βασιζόμενη στο πρόθεμα των ετικετών των αντικειμένων) Υποστηρίζει μηχανισμούς οργάνωσης του δικτύου υπό την παρουσία σφαλμάτων (self-organization). Εγγυάται σταθερή απόδοση με την αύξηση του αριθμού των κόμβων N (scalability). Γενικά: για ένα δίκτυο με Ν κόμβους: o εντοπισμός/εισαγωγή αντικειμένων απαιτεί O(log N) βήματα δρομολόγησης μέγεθος του πίνακα δρομολόγησης σε κάθε κόμβο O(log N)

5 Pastry Ετικέτες (nodeIds) Οι ετικέτες (κόμβων και αντικειμένων) έχουν m ψηφία. Το κάθε ψηφίο παίρνει τιμή από [0,(2^b)-1]. Τυπική τιμή για το b είναι 4. Η κάθε ετικέτα έχει λοιπόν log 2^b (N) ψηφία. Η ετικέτα είναι συνήθως η (ψευδοτυχαία) έξοδος μιας κατάλληλης συνάρτησης κατακερματισμού (π.χ. SHA-1) που δέχεται ως είσοδο κάποιο χαρακτηριστικό (π.χ. IP κόμβου, δημόσιο κλειδί, κλπ).

6 Κατανομή αντικειμένων objId Μπορεί να χρησιμοποιείται Consistent Hashing Address space με εύρος [0, ] Δημιουργία των nodeIds και objIds με χρήση συνάρτησης κατακερματισμού (π.χ. SHA-1) Ο κόμβος με nodeId πιο κοντά (αριθμητικά) στο objId αναλαμβάνει να φιλοξενήσει το αντικείμενο nodeIds O

7 Εισαγωγή/Εντοπισμός Αντικειμένων: Βασική Ιδέα objId Route( objId ) Αντικείμενο με objId προωθείται στο κόμβο με nodeId αριθμητικά κοντά στο objId Χρήση κατανεμημένων πινάκων δρομολόγησης. O(log N) μέγεθος πίνακα O(log N) βήματα δρομολόγησης Η βάση του λογαρίθμου είναι 2 β όπου β=4, συνήθως. O nodeId

8 Pastry Routing: Βασικές Δομές Η κατανεμημένη δρομολόγηση γίνεται με την βοήθεια του Πίνακα Δρομολόγησης (Routing Table) σε κάθε κόμβο Είναι απαραίτητες οι επιπλέον παρακάτω δομές: Leaf set για αποδοτική δρομολόγηση και εντοπισμό/αντιμετώπιση σφαλμάτων Neighborhood set για τη διατήρηση της συνδεσιμότητας του δικτύου και για άλλες βελτιστοποιήσεις (δε χρησιμοποιείται πια)...

9 Πίνακας Δρομολόγησης (ΠΔ) Ο ΠΔ σε κάθε κόμβο έχει log 2^b (N) γραμμές και 2 b -1 στήλες. Δηλ. αποθηκεύει log 2^b (N) * (2 b -1) nodeIds. Στην γραμμή i υπάρχουν κόμβοι των οποίων το nodeId: έχει τα i πρώτα ψηφία ίδια με αυτά της ετικέτας του τρέχοντα κόμβου και το i+1 ψηφίο έχει μία από τις 2 b -1 δυνατές τιμές Όταν το i+1 ψηφίο = Χ, τότε το nodeId εμφανίζεται στη στήλη Χ της γραμμής i. Για κάθε nodeId στον ΠΔ αποθηκεύεται η διεύθυνση IP που αντιστοιχεί στο nodeId.

10 Πίνακας Δρομολόγησης: Παράδειγμα Πίνακας Δρομολόγησης (4 πρώτες σειρές) για τον κόμβο 65a1fcx. b=4  ψηφία με βάση 16. “x” συμβολίζει οποιαδήποτε συμβολοσειρά. 0x0x 1x1x 2x2x 3x3x 4x4x 5x5x 7x7x 8x8x 9x9x axax bxbx cxcx dxdx exex fxfx 60x60x 61x61x 62x62x 63x63x 64x64x 66X66X 67x67x 68x68x 69x69x 6ax6ax 6bx6bx 6cx6cx 6dx6dx 6ex6ex 6fx6fx 650x650x 651x651x 652x652x 653x653x 654x654x 655x655x 656x656x 657x657x 658x658x 659x659x 65bx65bx 65cx65cx 65dx65dx 65ex65ex 65fx65fx 65a0x65a0x 65a2x65a2x 65a3x65a3x 65a4x65a4x 65a5x65a5x 65a6x65a6x 65a7x65a7x 65a8x65a8x 65a9x65a9x 65aax65aax 65abx65abx 65acx65acx 65adx65adx 65aex65aex 65afx65afx

11 Πίνακας Δρομολόγησης: Παράδειγμα Στον κόμβο 65a1fcx: Η γραμμή 0 χρησιμοποιείται όταν ο ζητούμενος κόμβος (προορισμός) δεν αρχίζει από «6». Δηλαδή δεν υπάρχει κοινό πρόθεμα. Η 1η γραμμή χρησιμοποιείται όταν ο κόμβος προορισμός έχει κοινό πρόθεμα (με τον τρέχοντα κόμβο) μεγέθους 1 (δηλαδή είναι 6xxxxxx. Η ι-οστή γραμμή χρησιμοποιείται όταν ο κόμβος προορισμός έχει κοινό πρόθεμα (με τον τρέχοντα κόμβο) μεγέθους ι. Προσέξτε: υπάρχουν πολλοί κόμβοι με ένα συγκεκριμένο κοινό πρόθεμα. Μόνο ένας από αυτούς αποθηκεύεται. Καταβάλλεται προσπάθεια αυτός ο κόμβος να είναι «κοντά» για λόγους βελτιστοποίησης απόδοσης. Ενδέχεται, κάποια θέση του ΠΔ να είναι κενή

12 Πίνακας Δρομολόγησης: Πολυπλοκότητα Γιατί Ο( log 2^b (N) ) ; 2 θεωρήσεις: Σε κάθε βήμα «διορθώνεται» ένα ψηφίο. Συνολικά η κάθε ετικέτα έχει log 2^b (N) ψηφία... Σε κάθε βήμα ο χώρος αναζήτησης υποδιαρείται κατά 2^b. Σκεφτείτε πόσοι κόμβοι έχουν το ίδιο πρόθεμα μεγέθους Ι με κάποιον κόμβο. Π.χ. Όταν β=4. Ι=1, Ν/16 Ι=2, Ν/(16^2),... Ν/(16^Ι),...

13 Leaf Set Τυπικές τιμές για το μέγεθος του Leaf Set είναι L=16. Περιέχει εγγραφές των |L| / 2 κόμβων αριθμητικά πιο κοντά στον κόμβο, με μεγαλύτερα nodeIds, (δηλαδή ακολουθούν στον κύκλο των ετικετών) και των |L|/2 κόμβων αριθμητικά πιο κοντά, με μικρότερα nodeIds (δηλαδή προηγούνται στον κύκλο των ετικετών). Χρησιμοποιείται για: Αποδοτική δρομολόγηση To Pastry εγγυάται την παράδοση μηνυμάτων εκτός και αν καταρρεύσουν |L|/2 κόμβοι ταυτόχρονα Εντοπισμό σφαλμάτων (keep-alive)

14 Pastry Routing: Αλγόριθμος d46a1c Route(d46a1c) d462ba d4213f d13da3 65a1fc d467c4 d471f1 if (destination D is in the leaf set of A) forward to numerically closest member else let l = length of shared prefix let d = value of l-th digit in D if ( R(l,d) exists ) forward to R(l,d) else forward to a known node that a. shares at least as long a prefix b. is numerically closer to D than this node

15 Neighborhood set Περιέχει τους κόμβους που είναι πιό «κοντά», σύμφωνα με μία μετρική εγγύτητας (π.χ. χρόνος επικοινωνίας, latency, απόσταση εκφρασμένη σε αριθμό μηνυμάτων, hops). Μέγεθος Neighborhood set: Μ = 2 x 2 b (b=4) ή 2 b Χρησιμοποιείται επίσης για την εξασφάλιση της ορθότητας των περιεχομένων του πίνακα και για την διατήρηση του δικτύου υπό την παρουσία σφαλμάτων.

16 Pastry: Αυτοοργάνωση (Self-organization) Αρχικοποίηση και συντήρηση του Routing Table και Leaf Set και Neighbour Set όταν: Καταφθάνουν νέοι κόμβοι Αναχωρούν κόμβοι (εθελούσια είτε λόγω βλάβης) Απαιτείται η αποστολή O(log N) μηνυμάτων

17 Άφιξη νέου κόμβου Χ: d46a1c Route(d46a1c) D: d462ba C: d4213f B: d13da3 A: 65a1fc Ζ: d467c4 d471f1 Νέος κόμβος Χ: d46a1c 1.Ένας νέος κόμβος, Χ, καταφθάνει με nodeId=d46a1c και γνωρίζει τον κοντινό Α: 65a1fc 2.Δρομολογείται ένα ειδικό (join) μήνυμα με objId=nodeId μέσω του Α 3.Όλοι οι κόμβοι που εμπλέκονται στο μονοπάτι από τον Α μέχρι τον προορισμό Ζ στέλνουν στοιχεία από τους πίνακες τους στον Χ ο A την γραμμή i=0 o B την γραμμή i=1 o C την γραμμή i= Ο Χ γεμίζει με εγγραφές τον πίνακα του ενώ μπορεί να ζητήσει και επιπλέον πληροφορία. 5.Ενημερώνονται όλοι οι κόμβοι που βρίσκονται στο Routing Table Leaf Set Neigbour Set του Χ για την ύπαρξη του Neigbour Set Επειδή ο Α είναι κοντά στον Χ χρησιμοποιείται το Neighbour Set του Α για το χτίσιμο του Χ Leaf Set Επειδή ο Ζ είναι αριθμητικά πιο κοντά στον Χ, χρησιμοποιείται το Leaf Set του Ζ, για το κτίσιμο του Χ

18 Αναχώρηση κόμβου (failure) Ο εντοπισμός σφαλμάτων γίνεται με την αποστολή R-U-alive μηνυμάτων στους κόμβους. Διόρθωση του Leaf set: ζητείται το leaf set του πιο μακρινού (αριθμητικά) κόμβου στο LF Διόρθωση του Neigbour Set περιοδικά επιχειρείται επικοινωνία με τους κόμβους στο Neigbour Set Αν κάποιος κόμβος δεν απαντάει ζητούνται εγγραφές από άλλα μέλη του Neigbour Set Διόρθωση του Routing Table: R(i,j) ζητείται η συγκεκριμένη εγγραφή (j) από το routing table των κόμβων στην ίδια γραμμή (i) Αν δε βρεθεί αντικαταστάτης, στη συνέχεια ζητείται η εγγραφή από κόμβους (nodeIds) σε μεγαλύτερες γραμμές του ΠΔ.

19 Τοπικότητα Η τοπικότητα στο Pastry επιτυγχάνεται με τη χρήση μετρικών όπως ping delays, IP hops κ.α. κατά την δημιουργία/διατήρηση του routing table Τοπικότητα στο Routing Table: Αφού ένας κόμβος αρχικοποιήσει τον πίνακα του, ζητά από τους γείτονες του τους πίνακες τους και συγκρίνει τις αποστάσεις. Ενημερώνει ανάλογα τον δικό του πίνακα. Τοπικότητα κατά την δρομολόγηση: Εφόσον οι κόμβοι στον πίνακα έχουν μπεί με βάση το κριτήριο της ελάχιστης απόστασης, σε κάθε βήμα ένα μήνυμα μεταβιβάζεται στον «κοντινότερο» γείτονα.

20 Παρατηρήσεις-Συμπεράσματα Pastry: δομημένο δίκτυο ομοτίμων που παρέχει: Επεκτασιμότητα Αντοχή στις βλάβες Οργάνωση δικτύου υπό την παρουσία βλαβών Πολυπλοκότητα εύρεσης αντικειμένων και το μέγεθος του routing table είναι Ο(logN). Πολυπλοκότητα εισόδου κόμβων είναι Ο(logN). Να συγκρίνετε το Pastry με το Chord.

21 Το Σύστημα Αρχείων PAST Ένα Σ.Α. Πάνω από το Pastry. Οι βασικές ιδέες είναι: Αποθήκευσε το κάθε αρχείο fname στον κόμβο με nodeId = SHA-1(fname). Δρομολόγησε ένα μήνυμα σε αυτόν τον κόμβο, στέλνοντάς του το αρχείο fname. Το αρχείο fname αποθηκεύεται σε Κ αντίγραφα, ένα αντίγραφο σε κάθε έναν από τους Κ κοντινότερους κόμβους του SHA-1(fname). [Δηλαδή, w.h.p. Αυτοί είναι στο Neighbourhood Set]. Τα αντίγραφα βοηθούν στον Καταμερισμό φορτίου Βελτιστοποίηση χρόνου απόκρισης, λόγω ‘εντοπιότητας’.


Κατέβασμα ppt "Διανομή Περιεχομένου στο Διαδίκτυο To Δίκτυο Pastry A. Rowstron and P. Druschel. "Pastry: Scalable, decentralized object location and routing for large-scale."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google