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

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

BATON A Balanced Tree Structure for Peer-to-Peer Networks Ευφροσύνη Κουρή Παναγιώτης Κατσίκος Γιώργος Μαργαρίτης Θεόδωρος Αθανασιάδης Γιάννης Ζιαγκλιαβός.

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


Παρουσίαση με θέμα: "BATON A Balanced Tree Structure for Peer-to-Peer Networks Ευφροσύνη Κουρή Παναγιώτης Κατσίκος Γιώργος Μαργαρίτης Θεόδωρος Αθανασιάδης Γιάννης Ζιαγκλιαβός."— Μεταγράφημα παρουσίασης:

1 BATON A Balanced Tree Structure for Peer-to-Peer Networks Ευφροσύνη Κουρή Παναγιώτης Κατσίκος Γιώργος Μαργαρίτης Θεόδωρος Αθανασιάδης Γιάννης Ζιαγκλιαβός Μαρία Κρομμύδα Ελευθέριος Κοσμάς Σάκης Αγγελίδης

2 Δομή του BATON  Το overlay δίκτυο του ΒATON βασίζεται σε ένα δυαδικό ισορροπημένο δέντρο  Ένα δέντρο είναι ισορροπημένο ανν για κάθε κόμβο του, το ύψος των δύο υποδέντρων του κόμβου διαφέρει κατά ένα το πολύ  Κάθε κόμβος ανήκει σε ένα επίπεδο L και έχει έναν αριθμό (από 1 έως 2 L )  Στους κόμβους κάθε επιπέδου δ ίνονται αριθμοί σαν να υπήρχαν όλοι οι κόμβοι (τέλειο δέντρο)  Κάθε κόμβος αντιστοιχεί σε ένα peer του συστήματος

3 Δομή του BATON (2)  Κάθε peer αποθηκεύει δείκτες στο πατέρα, στα παιδιά, στους γείτονες (in-order διάσχιση) και σε ένα σύνολο από κόμβους ίδιου επιπέδου στα δεξιά και στα αριστερά του  Oι τελευταίοι αποθηκεύονται στους κατάλληλους πίνακες (left – right routing tables)  Στους πίνακες αποθηκεύονται σύνδεσμοι προς κόμβους που απέχουν αποστάσεις ίσες με δυνάμεις του 2 από τον κόμβο  Αν δεν υπάρχουν κάποιοι κόμβοι, εισάγονται null εγγραφές για αυτούς στους πίνακες  Ένα αριστερό (ή δεξί) routing table είναι γεμάτο αν δεν υπάρχουν έγκυρες null εγγραφές σε αυτό

4 Παράδειγμα Links to parent, children Links to adjacent nodes Links to neighbor nodes 3 7

5 Θεωρήματα  Θεώρημα 1: Ένα δέντρο είναι ισορροπημένο αν το αριστερό και το δεξί routing table κάθε κόμβου που έχει παιδί είναι γεμάτα  Θεώρημα 2: Αν ένας κόμβος, έστω ο x, περιέχει ένα σύνδεσμο προς ένα άλλο κόμβο, έστω y, στο αριστερό ή δεξί routing table, τότε ο γονέας του x θα συνδέεται με τον γονέα του y (εκτός αν έχουν ίδιο γονέα)

6 Node Join  Για να εισαχθεί ένας κόμβος αρκεί να γνωρίζει έναν ήδη υπάρχοντα κόμβο, στον οποίο στέλνει Join Request.  Κάθε κόμβος που λαμβάνει Join Request κάνει τα εξής: Αν τα Routing Tables του είναι full και έχει λιγότερα από 2 παιδιά, τον δέχεται ως παιδί του (Θεώρημα 1) Διαφορετικά:  Αν κάποιο από τα Routing Tables του δεν είναι full, προωθεί την αίτηση στον πατέρα.  Αλλιώς αν υπάρχει κόμβος στο Routing Table του που έχει λιγότερα από 2 παιδιά, προωθεί την αίτηση σε αυτόν.  Αλλιώς προωθεί την αίτηση σε κάποιον γείτονά του (in- order neighbor)

7 At (8): are (8)’s Rtables full? Y has (8) less than 2 children? N  has (8) a neighbor with less than 2 children? Y  forward REQ to him = (7) At (16): are (16)’s Rtables full? N  forward REQ to parent = (8) (x) knows node (16) (x) sends JOIN REQ to (16) Node Join – Παράδειγμα 1 Join REQ 4 x At (7): are (7)’s Rtables full? Y has (7) less than 2 children? Y  (x) becomes a child of (7) x 7 ? 16

8 Node Join – Παράδειγμα 2 x At (4): are (4)’s Rtables full? Y has (4) less than 2 children? N  has (4) a neighbor with less than 2 children? Ν  forward REQ to one adjacent Join REQ 4 At (19): are (19)’s Rtables full? Y has (19) less than 2 children? Y  (x) becomes a child of (19) x (x) knows node (4) (x) sends JOIN REQ to (4) 19 2

9 Node Join  Η αίτηση για εισαγωγή μπορεί να προωθηθεί O(logN) φορές, αφού εξαρτάται από το ύψος του δένδρου.  Όταν ένας κόμβος x δέχεται έναν κόμβο y ως παιδί του, το εύρος τιμών που εξυπηρετεί, μοιράζεται στους δύο κόμβους  Επίσης, ενημερώνονται κατάλληλα οι adjacent του x και του y, ανάλογα με το αν το y εισήχθει σαν αριστερό η δεξί παιδί του x.  Τέλος, ο x ενημερώνει όλους τους κόμβους στο αριστερό και στο δεξί routing table του για την ύπαρξη του y a x a x y

10 Node Departure  Για να αποχωρήσει ένας κόμβος φύλλο: 1. Αν δεν υπάρχει κόμβος στα Routing Table του που έχει παιδιά μπορεί να αποχωρήσει 2. Διαφορετικά, πρέπει να βρει κάποιον κόμβο να τον αντικαταστήσει (FINDREPLACEMENT)  Για να αποχωρήσει ένας εσωτερικός κόμβος μια αίτηση FINDREPLACEMENT σε έναν γειτονικό του κόμβο (in- order)  Αλγόριθμος FINDREPLACEMENT για τον κόμβο n: 1. Αν ο n έχει αριστερό παιδί προωθεί την αίτηση σε αυτό 2. Αλλιώς αν έχει δεξί παιδί προωθεί την αίτηση σε αυτό 3. Αλλιώς αν υπάρχει κόμβος m στα Routing Table του που έχει κάποιο παιδί, προωθεί την αίτηση σε κάποιο παιδί του m 4. Αλλιώς αντικαθιστά τον κόμβο που θέλει να αποχωρήσει

11 Παράδειγμα Node Departure

12 Node Departure  Η αίτηση FINDREPLACEMENT μπορεί να προωθηθεί O(logN) φορές, αφού εξαρτάται από το ύψος του δένδρου.  Πριν ένας κόμβος y αντικαταστήσει ένα κόμβο x, ο οποίος αποχωρεί από το δίκτυο, πρέπει να ενημερώσει τους γειτονικούς του κόμβους και τον γονέα του ότι θα αποχωρήσει και μοιράζει το εύρος τιμών που εξυπηρετεί σε αυτούς  Όλοι οι κόμβοι με συνδέσμους στον x πρέπει να ενημερωθούν ώστε να δείχνουν στον y (γονέας, παιδιά, γειτονικοί κόμβοι, κόμβοι που είχαν συνδέσμους στον x στα routing tables)

13 Match Query  Αναθέτουμε σε κάθε κόμβο ένα εύρος τιμών  Για κάθε κόμβο του Routing Table αποθηκεύουμε το εύρος τιμών που εξυπηρετεί  Το εύρος τιμών που εξυπηρετείται από έναν κόμβο πρέπει να είναι μεγαλύτερο από το εύρος που εξυπηρετείται από το αριστερό υποδένδρο και μικρότερο αυτού του δεξιού υποδένδρου  Όταν ένας κόμβος x δέχεται ένα exact match query ελέγχει πρώτα αν ανήκει στο δικό του εύρος  Διαφορετικά δρομολογεί την αναζήτηση στον κόμβο προορισμού σύμφωνα με τον ακόλουθο αλγόριθμο

14 Exact Match Query Algorithm Algorithm: search exact(node n, query q, value v) If ((LowerBound(n)<=v) and (v<=UpperBound(n))) q is executed at x 1 Else If (UpperBound(n)

15 Παράδειγμα exact query (45-51) (12-17) (5-8) (0-5)(8-12) (23-29) (17-23) (34-39) (29-34)(39-45) (72-75) (54-61)(81-85) (51-54) (61-68) (68-72) (75-81) (89-93) (85-89)(93-100)

16 Range Query  Ένα range query λειτουργεί με τον ίδιο ακριβώς τρόπο όπως και ένα exact query, με την διαφορά ότι ψάχνουμε για μια τομή του αναζητούμενου εύρους με το εύρος κάποιου κόμβου  Όταν βρεθεί η τομή έχουμε ένα τμήμα του εύρους τιμών που αναζητούμε  Ελέγχουμε δεξιά και αριστερά του κόμβου για να καλύψουμε το ζητούμενο εύρος

17 Data Insertion - Deletion  Χρησιμοποιούμε την διαδικασία αναζήτησης για exact match query για να βρούμε τον κόμβο στον οποίο θα γίνει η εισαγωγή  Εκτελούμε την εισαγωγή  Στους κόμβους στο αριστερό (δεξί) άκρο του δέντρου ρυθμίζουμε το εύρος τους αν η τιμή που εισάγεται δεν καλύπτεται από το υπάρχον εύρος  Για την διαγραφή δεδομένων βρίσκουμε με την μέθοδο που χρησιμοποιείται για exact query τον κόμβο που χειρίζεται τα δεδομένα και τα διαγράφουμε


Κατέβασμα ppt "BATON A Balanced Tree Structure for Peer-to-Peer Networks Ευφροσύνη Κουρή Παναγιώτης Κατσίκος Γιώργος Μαργαρίτης Θεόδωρος Αθανασιάδης Γιάννης Ζιαγκλιαβός."

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


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