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

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

NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου Δομημένα Δίκτυα Ομοτίμων -- Κατανεμημένοι Πίνακες Κερματισμού (Distributed Hash Tables) Το.

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


Παρουσίαση με θέμα: "NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου Δομημένα Δίκτυα Ομοτίμων -- Κατανεμημένοι Πίνακες Κερματισμού (Distributed Hash Tables) Το."— Μεταγράφημα παρουσίασης:

1 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου Δομημένα Δίκτυα Ομοτίμων -- Κατανεμημένοι Πίνακες Κερματισμού (Distributed Hash Tables) Το Δίκτυο CHORD

2 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 2 Περιεχόμενα Ορισμός του προβλήματος Ομότιμα συστήματα (P2P) Κατηγορίες ομότιμων συστημάτων Chord Στόχος του Chord - Τι είναι το Chord Αναγνωριστικά του Chord - Consistent hashing - Πίνακας δεικτών Εντόπιση δεδομένων Εισαγωγή/διαγραφή κόμβου - Αποτυχία κόμβου Αξιολόγηση OP-Chord Κίνητρο – προσέγγιση – επεμβάσεις στο βασικό Chord Τοποθέτηση δεδομένων – Εντόπιση Παράδειγμα αναζήτησης με διάστημα Συμπεράσματα Αναφορές

3 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 3 Ορισμός του προβλήματος Ομότιμα συστήματα (P2P) : αποτελούνται από ένα σύνολο ετερογενών κόμβων που αποφασίζουν να συνεργαστούν μεταξύ τους συγκεντρώνοντας όλους τους διαθέσιμους πόρους τους για το κοινό καλό, διατηρώντας την αυτονομία τους. Βασικό ερώτημα: Πώς μπορούμε να εντοπίσουμε δεδομένα σε ένα P2P σύστημα; (Lookup) P2P N1N1 N2N2 N3N3 N5N5 N4N4 Θέτει το ερώτημα Έχει την απάντηση (κλειδί, τιμή) Lookup(κλειδί) Lookup(“Fire Arcade:No cars go”)

4 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 4 Συγκεντρωτικά P2P συστήματα Χρήση κεντρικών εξυπηρετητών (πχ Napster) Θέτει το ερώτημα Έχει την απάντηση P2P N1N1 N2N2 N3N3 N5N5 N4N4 ΚΕ (κλειδί, τιμή) Lookup(κλειδί) o Ένα σημείο αποτυχίας και σημείο συμφόρησης

5 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 5 Πλήρες κατανεμημένα P2P N1N1 N2N2 N3N3 N5N5 N4N4 Θέτει το ερώτημα Έχει την απάντηση P2P (κλειδί, τιμή) Lookup(κλειδί) Αποστολή ερωτήματος σε όλους τους γείτονες (πχ Gnutella) o Χειρότερη περίπτωση O(N) μηνύματα για κάθε lookup

6 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 6 Δομημένα P2P Χρήση πινάκων δρομολόγησης (πχ Tapestry, Pastry, CAN, Chord, κλπ) P2P N1N1 N2N2 N3N3 N5N5 N4N4 Θέτει το ερώτημα Έχει την απάντηση (κλειδί, τιμή) Lookup(κλειδί)

7 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 7 Δομημένα P2P - DHTs DHTs – Distributed Hash Tables P2P N1N1 N2N2 N3N3 N5N5 N4N4 Χρησιμοποιούν μια hash συνάρτηση, hash() που αντιστοιχεί σε κάθε κλειδί (μονάδα δεδομένων) έναν κόμβο (το ID του). Keynode “All good things come to an end; Nelly Furtado” N1 “The hardest part; Coldplay” N2 ……

8 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 8 Στόχος του Chord Η σχεδίαση ενός κατανεμημένου συστήματος για το διαμοιρασμό πληροφοριών, και Η εύρεση ενός πρωτοκόλλου που θα λύνει το πρόβλημα του εντοπισμού αποδοτικά:  Μικρός αριθμός μηνυμάτων/βημάτων (hops)  Μικρό μέγεθος για τον πίνακα δρομολόγησης  Εύρωστος (robust) σε όλες τις δυναμικές αλλαγές (πχ εισαγωγή / διαγραφή κόμβου κλπ)  Τί σημαίνει «μικρός»; Οδηγεί στην κλιμακωσιμότητα

9 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 9 Τι είναι το Chord To Chord σύστημα ενπεριέχει μια κατανεμημένη υπηρεσία εντοπισμού δεδομένων που επιτρέπει την εισαγωγή, τον εντοπισμό και τη διαγραφή τιμών χρησιμοποιώντας ως χειριστές κλειδιά. Το Chord πρωτόκολλο υποστηρίζει μία βασική πράξη :  δοθέντος ενός κλειδιού, εντοπίζει την ταυτότητα του κόμβου που το περιέχει (αν το κλειδί υπάρχει στο δίκτυο). Το Chord σύστημα επίσης υποστηρίζει τη δημιουργία και (αυτο)συντήρηση ενός δικτύου. Παρέχει τις εξής κύριες λειτουργίες : 1. insert(key, value) 2. lookup(key) 3. update(key, value) 4. join(n) 5. leave()

10 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 10 Consistent Hashing και Chord (IDs) m-bit αναγνωριστικό και για τα κλειδιά και για τους κόμβους Το m πρέπει να είναι αρκετά μεγάλο έτσι ώστε να αποφεύγονται «συγκρούσεις». Αναγνωριστικό κλειδιού (key): keyID = SHA-1(key) Αναγνωριστικό κόμβου: nodeID = SHA-1(IP address) Key = “DepecheMode:Precious” keyID=20, πχ (m=6) SHA-1 IP = nodeID=62 SHA-1

11 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 11 Consistent Hashing και Chord (IDs) Τα αναγνωριστικά των κλειδιών και των κόμβων είναι οργανωμένα σε ένα κύκλο, από 0 μέχρι 2 m -1. Αυτό ορίζει τον αναγνωριστικό κύκλο (ID-circle, ή ID-space ή namespace). Τα αναγνωριστικά των κλειδιών και των κόμβων είναι ομοιόμορφα κατανεμημένα – (βλέπε hash()). Πώς γίνεται η αντιστοίχιση των keyIDs στα nodeIDs;

12 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 12 Consistent Hashing Τρόπος αποθήκευσης: κάθε κλειδί αποθηκεύεται στον πρώτο κόμβο που το αναγνωριστικό του είναι ίσο ή αμέσως μεγαλύτερο από το αναγνωριστικό του κλειδιού. succ(): {0, 1,.. 2 m-1 }  {0, 1,.. 2 m-1 }. Εισαγωγή του κόμβου n στο δίκτυο  ότι τα κατάλληλα κλειδιά μεταφέρονται από τον κόμβο succ(n) στον κόμβο n. Διαγραφή του κόμβου n στο δίκτυο  ότι τα κατάλληλα κλειδιά μεταφέρονται από τον κόμβο n στον κόμβο succ(n).

13 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 13 κλειδιά ΚΛΕΙΔΙΑ m=6 ID space 2 m =64 Παράδειγμα αποθήκευσης SHA-1( ) = 0 ΚΟΜΒΟΙ IP διευθύνσειςnodeIDs keyIDs “ShakeIt” “Memories” “Eden” “Monkey” “Money” “Yesterday” SHA-1(“ShakeIt”) = succ(20) = N

14 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 14 Πίνακας δεικτών Κάθε κόμβος n ξέρει τον διάδοχό του, succ(n) Lookup(): …Απαιτεί Ο(Ν) χρόνο Κάθε κόμβος διατηρεί πληροφορίες δρομολόγησης για m κόμβους σε ένα πίνακα δεικτών (finger table): Κάθε καταχώρηση i περιέχει το αναγνωριστικό του πρώτου κόμβου s που διαδέχεται τον n σε απόσταση τουλάχιστον 2 i-1 πάνω στον αναγνωριστικό κύκλο (mod 2 m ), για 1  i  m, Ένα δείκτη στον προηγούμενο κόμβο

15 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 15 Παράδειγμα Πίνακα δεικτών N36δείκτδιάστημα 140[37,38) 240[38,40) 340[40,44) 444[44,52) 554[52,4) 64[4,36) Ο δείκτης i δείχνει στον διάδοχο (succ) του n + 2 i-1 finger(4) finger(3) finger(5)

16 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 16 Παράδειγμα Lookup find node with key =“This Is the life” look for key keyID=hash(“thisisthelife”) = 20 N36 δεικδιαστ 140[37,38) 240[38,40) 340[40,44) 444[44,52) 554[52,4) 64[4,36) N4 δ N14 δ N16 δ

17 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 17 Απόδοση lookup() Θεώρημα: Με μεγάλη πιθανότητα, ο αριθμός των κόμβων που πρέπει να προσπελαστούν -- κατά τη διάρκεια ενός lookup() -- είναι O(log 2 N) σε ένα δίκτυο Ν κόμβων. Διαίσθηση: Η μεγαλύτερη απόσταση μεταξύ 2 κόμβων είναι 2 m ( όπου m ο αριθμός των bits στα αναγνωρίσματα ). Σε κάθε βήμα ο αλγόριθμος χρησιμοποιεί τους πίνακες δρομολόγησης έτσι ώστε η απόσταση που πρέπει να διανυθεί να υπο-διπλασιάζεται...  m = O(log N) βήματα/hops.

18 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 18 Εισαγωγή/Διαγραφή νέου κόμβου (περίληψη) Προϋποθέσεις: Ο διάδοχος κάθε κόμβου να διατηρείται σωστά Κάθε κλειδί να είναι αποθηκευμένο στον κόμβο-διάδοχό του (επιθυμητό) ο πίνακας δεικτών να είναι σωστός Λειτουργίες εισαγωγής κόμβου n: 1. Στον νέο κόμβο γίνεται αρχικοποίηση του δείκτη στον κόμβο που προηγείται του n και αρχ/ση του πίνακα δεικτών του n (με ερώτημα στον κόμβο που τυχαία συνδέθηκε) 2. Ενημέρωση των δεικτών και των κόμβων που προηγούνται όλων των ενεργών κόμβων για να απεικονιστεί η αλλαγή Ο κόμβος n θα γίνει ο i th δείκτης ενός κόμβου p αν ο p προηγείται του n κατά τουλάχιστον 2 i-1 και ο i th δείκτης του κόμβου p διαδέχεται τον n 3. Αντιγραφή όλων των κλειδιών των οποίων ο νέος κόμβος είναι ο διάδοχός τους.

19 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 19 Αποτυχία κόμβου Μπορεί να προκαλέσει λανθασμένη εντόπιση δεδομένων Λίστα διαδόχων Κάθε κόμβος γνωρίζει r άμεσους διαδόχους Μετά από μια αποτυχία, θα ξέρει τον πρώτο ζωντανό διάδοχο με μεγάλη πιθανότητα...

20 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 20 Αξιολόγηση Κόστος εντόπισης (lookup): Μέσο όρο: O(logN) μηνύματα Χειρότερη περίπτωση: O(N) μηνύματα. Πότε συμβαίνει η χειρότερη περίπτωσή; Κόστος εισαγωγής/ διαγραφής κόμβου: O(log 2 N) μηνύματα

21 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 21 OP-Chord (Order-Preserving Chord) Το κίνητρο Υποστήριξη μιας ολοκληρωμένης λύσης για την επεξεργασία πολύπλοκων ερωτημάτων Η προσέγγιση Τα δεδομένα είναι οργανωμένα σε σχέσεις (relations): κάθε μονάδα πληροφορίας είναι μια εγγραφή/πλειάδα (tuple) με έναν αριθμό από γνωρίσματα (attributes) Το Chord είναι η βασική αρχιτεκτονική Χρησιμοποιείται Order-Preserving Hashing για τα δεδομένα (αντί για SHA-1)

22 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 22 Αντί για SHA-1 για αντιστοίχιση εγγραφών στον αναγνωριστικό χώρο, χρησιμοποιούμε μια συνάρτηση διατήρησης διάταξης (order- preserving hash function / OPH) Υπόθεση: DA i = για ένα γνώρισμα A i και 2 m > |DA i |. Χωρίζουμε τον αναγνωριστικό χώρο σε 2 m / s i διαστήματα, ίσου μεγέθους s i, έτσι ώστε: Ορισμός: για κάθε τιμή a i  DA i, ορίζουμε, Αλγόριθμοι Εισαγωγή/Διαγραφή κόμβου (όπως Chord), Εισαγωγή/Διαγραφή δεδομένων Επεμβάσεις στο Chord

23 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου INPUT ID space 2 m =64; DA= {1,2,..,31} size s=2 m /|DA|=2 h(a) = a * 2 ID space 2 m =64; DA= {0,2,..,31} size s=2 m /|DA|=2 h(a) = a * 2 Παράδειγμα attribute value is 10 h(10) = 10 * 2 = 20 succ(20) = N

24 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 24 Range example βρες εγγραφές με τιμές [10, 20] h(10) = 10 * 2 = 20  lookup(20) h(20) = 20 * 2 = 40  lookup(40)

25 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 25 Συμπεράσματα Προσφορά του OP-CHORD Έχει τα πλεονεκτήματα Chord (απλό, αποδοτικό, εύρωστο και επεκτάσιμο) Προσφέρει πολύ καλύτερη λύση από το Chord στην επεξεργασία των ερωτημάτων –διαστημάτων (range queries) Θέματα: Αποφυγή σημείων «υπερθέρμανσης» hotspots τόσο από πλευράς δεδομένων όσο και από πλευράς προσπέλασης Εξισορρόπηση του φόρτου εργασίας των κόμβων (load balancing) Τεχνικές βελτιστοποίησης επεξεργασίας ερωτημάτων Τεχνικές επεξεργασίας πολύπλοκων ερωτημάτων (join, aggregation, κλπ)

26 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 26 Αναφορές Stoica, I., Morris, R., Karger, D., Kaashoek, and K. F., Balakrishnan, H. Chord: A scalable peer-to-peer lookup service for internet applications. In Proceedings of the 2001 SIGCOMM (2001), ACM Press, Chord prototype, FIPS Secure hash Standard. U.S. Department of Commerce/NIST, National Technical Information Service, Springield, VA (1995) Karger D, Lehman E, Leighton F, Levine M, Lewin D, and Panigrahy R. Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the World Wide Web. In Proc of the 29 th Annual ACM Symposium on Theory of Computing (El Paso, TX, May 1997), pp Triantafillou, P., and Pitoura, T., “Towards a unifying framework for complex query processing over structured peer-to-peer data networks”, In Proceedings of the 2003 DBISP2P workshop.

27 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 27 Additional Slides

28 NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου 28 Example


Κατέβασμα ppt "NetCINS Lab. CEID – University of Patras Συστήματα Διαδικτύου Δομημένα Δίκτυα Ομοτίμων -- Κατανεμημένοι Πίνακες Κερματισμού (Distributed Hash Tables) Το."

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


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