A Balanced Tree Structure for Peer-to-Peer Networks

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Advertisements

Chord: A scalable Peer-to-Peer Lookup Service for Internet Applications Παρουσίαση: Αθανασόπουλος, Αλεξάκης, Δεβελέγκα, Πεχλιβάνη, Φωτιάδου, Φωτόπουλος.
A Peer-to-peer Framework for Caching Range Queries O. D. Sahin A. Gupta D. Agrawal A. El Abbadi Παρουσίαση: Καραγιάννης Τάσος, Κρεμμυδάς Νίκος, Μαργαρίτη.
Δυναμικοί πίνακες Πολλές δομές δεδομένων υλοποιούνται με χρήση πινάκων
ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι
Διακριτά Μαθηματικά ΙI Δυαδικά Δέντρα Αναζήτησης
Διακριτά Μαθηματικά ΙI Δέντρα
Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications ΠΑΡΑΔΕΙΓΜΑΤΑ.
Δομές Δεδομένων - Δυαδικά Δένδρα (binary trees)
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Μεταγωγή (Switching) Λειτουργία: συνδέει εισόδους σε εξόδους, έτσι ώστε τα bits ή τα πακέτα που φτάνουν σε ένα σύνδεσμο, να φεύγουν από έναν άλλο επιθυμητό.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Δρ. Παναγιώτης Συμεωνίδης
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
ΝΕΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Α’, Β’, & Γ’ ΓΥΜΝΑΣΙΟΥ ΟΜΑΔΑ ΕΡΓΑΣΙΑΣ Ανδρέας Σ. Ανδρέου (Αναπλ. Καθηγητής ΤΕΠΑΚ - Συντονιστής) Μάριος Μιλτιάδου, Μιχάλης Τορτούρης.
© GfK 2012 | Title of presentation | DD. Month
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
+21 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Δεκέμβριος 2013 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Lab 6: AVL Trees 29/10/20101ΕΠΛ231 - Δομές Δεδομένων και Αλγόριθμοι.
Αναγνώριση Προτύπων.
Γραφήματα & Επίπεδα Γραφήματα
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
1 Θεματική Ενότητα Γραφήματα & Επίπεδα Γραφήματα.
ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια.
+14 Σεπτέμβριο 2014 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης < -20 Συνολικά της ΕΕ: +1 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης.
1 Content Addressable Network Λίλλης Κώστας Καλλιμάνης Νικόλαος Αγάθος Σπυρίδων – Δημήτριος Σταθοπούλου Ευγενία Γεωργούλας Κώστας.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
Travel Salesman. ABDCA, ABCDA, ACBDA, ACDBA, ADBCA, ADCBA … (3!) 3 σταθμοί και 1 βάση (3! διαδρομές) 4 σταθμοί και 1 βάση (4! = 24) 5 σταθμοί και 1 βάση.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Γράφοι: Προβλήματα και Αλγόριθμοι
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Ουρά Προτεραιότητας: Heap
Τα προϊόντα της EmGoldEx Τα προϊόντα της EmGoldEx Ράβδοι χρυσού 24k καθαρότητας 999,9 απο 1 έως 100 γραμμάρια Όλες οι ράβδοι χρυσού είναι πιστοποιημένες.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Chord: A Scalable Peer -to-peer Lookup Service for Internet Applications Authors: Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan.
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
ΜΑΘΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗ ΜΕΤΑΓΓΙΣΗ ΑΙΜΑΤΟΣ - ΑΙΜΟΔΟΣΙΑ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Δομές Δεδομένων - Ισοζυγισμένα Δυαδικά Δένδρα (balanced binary trees)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
1 Μελέτη κανόνων συμμετοχής σε ομότιμα δίκτυα επικοινωνίας μέσω προσομοίωσης Φοιτητής : Χρήστος Ι. Καρατζάς Επιβλέποντες Καθηγητές : Γ. Πολύζος – Κ. Κουρκουμπέτης.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
CHORD A Scalable Peer-to-peer Lookup Service for Internet Applications Μαρίνα Δρόσου Νικόλαος Μπουντουρόπουλος Οδυσσέας Πετρόχειλος Παναγιώτης Δομουχτσίδης.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.
+19 Δεκέμβριος 2014 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20 Δείκτης < -20 Συνολικά της ΕΕ: +5 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Αγγελική Γεωργιάδου- Αναστασία Πεκτέσογλου Δράμα 2006
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 8-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα B-Δένδρα.
A Scalable Content-Addressable Network Μυρτώ Ντέτσικα Παναγιώτα Νικολαΐδου Ελένη Γεώργα Λαμπρινή Κώνστα Βαγγέλης Λάππας Γρηγόρης Τζώρτζης Γιώργος Καρπάθιος.
EPL231 – Data Structures and Algorithms
Παράδειγμα B + -Tree Υποθέτουμε B + -Tree τάξης 3 (α=2, b=3)  Κάθε φύλλο θα έχει 2 ως 3 το πολύ στοιχεία  Κάθε εσωτερικός κόμβος θα έχει 2 ως 3 το πολύ.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 2: Συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου. Εργαστήριο Διαχείρισης και Βέλτιστου.
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Δεντρικά Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
ONLINE ΕΙΣΑΓΩΓΗ ΠΑΚΕΤΩΝ ΚΑΙ OBLIVOUS ΔΡΟΜΟΛΟΓΗΣΗ ΣΕ ΔΙΚΤΥΑ ΑΙΣΘΗΤΗΡΩΝ ONLINE ΕΙΣΑΓΩΓΗ ΠΑΚΕΤΩΝ ΚΑΙ OBLIVOUS ΔΡΟΜΟΛΟΓΗΣΗ ΣΕ ΔΙΚΤΥΑ ΑΙΣΘΗΤΗΡΩΝ Ζώντου Αικατερίνη.
(2,4) Trees 11/15/2018 8:56 PM (2,4) Δέντρα (2,4) Δέντρα.
Δυναμικός Κατακερματισμός
Μεταγράφημα παρουσίασης:

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

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

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

Παράδειγμα Links to parent, children Links to adjacent nodes 1 2 Links to parent, children Links to adjacent nodes 1 2 Links to neighbor nodes 4 3 5 6 7 8 9 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

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

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

Node Join – Παράδειγμα 1 1 2 4 3 5 6 7 8 9 10 11 12 13 14 ? x 15 16 17 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 (7): are (7)’s Rtables full? Y has (7) less than 2 children? Y (x) becomes a child of (7) (x) knows node (16) (x) sends JOIN REQ to (16) At (16): are (16)’s Rtables full? N  forward REQ to parent = (8) 1 2 4 3 5 6 7 8 9 10 11 12 13 14 ? x 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Join REQ x

Node Join – Παράδειγμα 2 x 1 2 4 3 5 6 7 8 9 10 11 12 13 14 15 16 17 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 At (19): are (19)’s Rtables full? Y has (19) less than 2 children? Y  (x) becomes a child of (19) (x) knows node (4) (x) sends JOIN REQ to (4) x 1 2 Join REQ 4 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 x

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

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

Παράδειγμα Node Departure 1 18 2 4 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

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

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

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)<v) m=TheFarthestNodeSatisfyingCondition (lowerBound(m)<=v) If (there exists such an m) Forward q to m If (RightChild(n)!=null) Forward q to RightChild(n) Forward q to RightAdjacentNode(n) End If //A similar process is followed towards the left

Παράδειγμα exact query (45-51) 1 2 (72-75) (12-17) 4 3 (23-29) (5-8) 5 6 (54-61) (81-85) 7 8 9 10 (34-39) 11 12 13 14 (89-93) (0-5) (8-12) (17-23) (61-68) (75-81) (51-54) 15 16 17 18 19 (29-34) (39-45) (68-72) (85-89) (93-100)

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

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