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

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

1/23 DHTStrings: Συστήματα Δημοσιεύσεων/Συνδρομών σε DHT Δίκτυα με Υποστήριξη για Συμβολοσειρές Διανομή Περιεχομένου στο Διαδίκτυο Τμήμα ΜΗΥΠ Παν/μιο Πατρών.

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


Παρουσίαση με θέμα: "1/23 DHTStrings: Συστήματα Δημοσιεύσεων/Συνδρομών σε DHT Δίκτυα με Υποστήριξη για Συμβολοσειρές Διανομή Περιεχομένου στο Διαδίκτυο Τμήμα ΜΗΥΠ Παν/μιο Πατρών."— Μεταγράφημα παρουσίασης:

1 1/23 DHTStrings: Συστήματα Δημοσιεύσεων/Συνδρομών σε DHT Δίκτυα με Υποστήριξη για Συμβολοσειρές Διανομή Περιεχομένου στο Διαδίκτυο Τμήμα ΜΗΥΠ Παν/μιο Πατρών

2 2/23 Δομή Παρουσίασης Σύντομη αναφορά σε DHTs Σύντομη αναφορά στο μοντέλο δημοσιεύσεων/συνδρομών DHTStrings: Επεξεργασία δημοσιεύσεων/συνδρομών ερωτημάτων με strings και τελεστές prefix/suffix/equality ερωτημάτων με strings και τελεστή substring επέκταση της προσέγγισης με substrings με χρήση Bloom Filters

3 3/23 Δομημένα P2P δίκτυα - DHTs Κατανεμημένοι Πίνακες Κατακερματισμού -- Distributed Hash Tables -- DHTs: Chord, Pastry, Tapestry, CAN, Kademlia, Bamboo, … Ο χώρος των ονομάτων (αρχείων, κόμβων, κλπ) χωρίζεται σε υπο- χώρους, με βάση μια συνάρτηση Hash -- π.χ. MD5(IP_address,...) Κάθε αντικείμενο (αρχείο, κόμβος) όταν εισέρχεται στο σύστημα συνδέεται με μια ταυτότητα (ID) που είναι η έξοδος της HF. Η ταυτότητα «ορίζει» την θέση του αντικειμένου στην τοπολογία. Οι κόμβοι διατηρούν πίνακες για άλλους κόμβους έτσι ώστε με O(logN) μηνύματα (hops) να εντοπίζουν οποιονδήποτε κόμβο/αρχείο. Η δρομολόγηση γίνεται με βάση αυτούς τους πίνακες – ξεκινώντας από τον πίνακα του κόμβου όπου έγινε η αίτηση.

4 4/23 Σύντομη αναφορά στο pub/sub μοντέλο [1/2] Content-based pub/sub: συστήματα δημοσίευσης- συνδρομής βασισμένα στο περιεχόμενο της πληροφορίας Subscribers: εκφράζουν τα ενδιαφέροντα τους για συγκεκριμένα γεγονότα ορίζοντας τελεστές πάνω σε συγκεκριμένους τύπους δεδομένων Publishers : γενούν την πληροφορία (γεγονότα- δημοσιεύσεις) Κατανεμημένοι αλγόριθμοι για: Ταίριασμα/σύζευξη των δημοσιεύσεων με τις συνδρομές παράδοση των δημοσιεύσεων στους χρήστες που έχουν δηλώσει ενδιαφέρον πάνω από ένα δομημένο δίκτυο ομοτίμων (p2p)

5 5/23 Σύντομη αναφορά στο pub/sub μοντέλο [2/2] Το σχήμα συνδρομής-δημοσίευσης Έχει οριστεί ένα σύνολο από χαρακτηριστικά (attributes): a i (1<i<A) Οι συνδρομές/δημοσιεύσεις δηλώνουν τιμές, v(a i ), για ένα υποσύνολο από k από αυτά τα attributes Επιτρεπόμενοι τελεστές στις τιμές των attributes (παράδειγμα εφαρμογής.: Σύστημα τροφοδότησης νέων) String attributes Πρόθεμα: NewsAgency=“CNN*” Επίθεμα: Title = “*Debuts” Ισότητα: NewsAgency = “CNN” Attributes με αριθμητικό τύπο =,, ανοικτά/κλειστά διαστήματα τιμών Μια δημοσίευση ταιριάζει σε μια συνδρομή εάν και μόνο εαν όλοι οι περιορισμοί των attributes ικανοποιούνται. Το αναγνωριστικό συνδρομής (SubID) περικλείει πληροφορίες για : Τον κόμβο που έφτασε η συνδρομή Ένα μοναδικό id για να το ξεχωρίζει ανάμεσα στα αποθηκευμένα στον διακομιστή Ο αριθμός χαρακτηριστικών που δηλώθηκαν

6 DHTStrings Στόχοι: Υποστήριξη συμβολοσειρών με σχετικούς τελεστές για τον ορισμό συνδρομών. DHT-Ανεξάρτητο: Να μπορεί να χρησιμοποιηθεί πάνω από οποιοδήποτε DHT... Χρησιμοποιώντας μόνο το DHT lookup() function call. Να μη χρειάζεται επιπλέον πληροφορία για τη δρομολόγηση δημοσιεύσεων/συνδρομών απο θηκευμένη στους DHT κόμβους  stateless Δύσκολο: Τα DHT δίκτυα υποστηρίζουν “exact-match” – δηλ. τελεστές ισότητας... Και όχι πρόθεμα/επίθεμα/υπο- συμβολοσειρά... Αυτή είναι και η συνεισφορά του DHTStrings! 6/23

7 7/23 DHTStrings Υποδομή DHTStrings: DHT-Ανεξάρτητο, stateless Είναι μια λύση πάνω από οποιοδήποτε DHT Υποστηρίζει πληθώρα ερωτημάτων με strings κοινούς τελεστές: πρόθεμα,επίθεμα και ισότητα Το publish/subscribe παράδειγμα και τα DHTStrings Τα DHTStrings μπορούν να χρησιμοποιηθούν στην ανάπτυξη μεγάλης κλίμακας content-based pub/subs με συνδρομές που ορίζουν strings βασιζόμενοι μόνο στη λειτουργικότητα του DHT(DHT.h()) Βελτιστοποιήσεις για την πολυδιάστατη επεξεργασία δημοσιεύσεων Κατανεμημένο και Υβριδικό ταίριασμα.

8 8/23 DHTStrings: Η κύρια ιδέα Επέλεξε έναν κόμβο (rendezvous) που θα χρησιμοποιείται σαν σημείο συνάντησης για τις δημοσιεύσεις και σχετικές με αυτές συνδρομές. Αυτό γίνεται : Αποθηκεύοντας ids των συνδρομών (SubIDs) σε DHT κόμβους με ids που προκύπτουν από το hashing των τιμών των συνδρομών (χρήση της DHT’s hash function DHT.h() ). Κάνοντας το ίδιο για τις τιμές των δημοσιεύσεων, μαζεύουμε SubIDs και συνεχίζουμε την διαδικασία ταιριάσματος παραδίδοντας την δημοσίευση που ταιριάζει Producers and Consumers Peers (brokers) handling event/subscriptions S1 User generates a subscription (S1) with 1 attribute S1 is stored in 1 node by hashing attribute’s value nodeID = DHT.h(v(a 1 )) S1 Event (E1) arrives with 1 attribute defined E1 Following the same procedure locates the node storing the subscription nodeID = DHT.h(v(a 1 )) S1 matches E1 Event is delivered to interested user E1

9 9/23 DHTStrings: Αποθήκευση IDs συνδρομών S1,S2 User generates two subscriptions S1: a 1 =“*N”, a 2 =“*Debuts” S2: a 1 =“CNN”, a 2 =“Concept*” Producers and Consumers Peers (brokers) handling event/subscriptions Locate and store S1 in peers with ids equal or close to: DHT.h(N), in the L a1-suff list DHT.h(Debuts), in the L a2-suff list S1 L a1-suff S1 L a2-suff S1:a 1 =“*N”, a 2 =“*Debuts” S2:a 1 =“CNN”, a 2 =“Concept*” Locate and store S2 in peers with ids equal or close to: DHT.h(CNN) in the L a1 list DHT.h(Concept) in the L a2-pref list S2 L a1 S2 L a2-pref Σε κάθε κόμβο διατηρούμε τρεις λίστες (L * ) για κάθε χαρακτηριστικό a i, μία για κάθε τελεστή: πρόθεμα L ai-pref, επίθεμα L ai-suff, ισότητα L ai Για κάθε χαρακτηριστικό a i στην συνδρομή, το SubID j αποθηκεύεται στην κατάλληλη L λίστα στον κόμβο με id ίσο (ή κοντινότερα) στο DHT.h(v(a i ))

10 10/23 DHTStrings: Επεξεργασία δημοσίευσης… φάση ανάκτησης SubID Για κάθε χαρακτηριστικό a i στη δημοσίευση Πήγαινε στον κόμβο DHT.h(v(a i )) και πάρε τη λίστα L ai Πήγαινε στους κόμβους DHT.h(τα προθέματα του v(a i )) και πάρε τη λίστα L ai-pref Πήγαινε στους κόμβους DHT.h(τα επιθέματα του v(a i )) και πάρε τη λίστα L ai-suff Event arrives with values E1: a 1 =“CNN”, a 2 =“A380 Debuts” Producers and Consumers Peers (brokers) handling event/subscriptions S1 L a1-suff S1 L a2-suff S1:a 1 =“*N”, a 2 =“*Debuts” S2:a 1 =“CNN”, a 2 =“Concept*” S2 L a1 S2 L a2-pref E1 For the attribute a 1 go to nodes 1. DHT.h(CNN) and get the L a1 list 2. DHT.h(C), DHT.h(CN), and DHT.h(CNN) and get the L a1-pref lists 3. DHT.h(N), DHT.h(NN), and DHT.h(CNN) and get the L a1-suff lists a1a1 L a1 …..... - L a1-pef …. - L a1-suff …. - a1a1 L a1 ….....S2 L a1-pef …. - L a1-suff ….S1 Repeat the same procedure for attribute a 2 and collect L a2, L a2-pref, and L a2-suff a2a2 L a2 …..... - L a2-pef …. - L a2-suff …. - a2a2 L a2 …..... - L a2-pef …. - L a2-suff ….S1

11 11/23 DHTStrings: Επεξεργασία δημοσίευσης … Ταίριασμα και Παράδοση Τα SubIDs περικλείουν πληροφορία για τον αριθμό των ορισμένων attributes, N a-sub-i Για κάθε SubID που συλλέξαμε, μετράμε τον αριθμό των λιστών που αυτό βρέθηκε, N list-sub-i Αν N a-sub-I = N list-sub-I έχουμε ταίριασμα Επικοινωνία με τον χρήστη που δημιούργησε τη συνδρομή για την παράδοση της δημοσίευσης S1:a 1 =“*N”, a 2 =“*Debuts” S2:a 1 =“CNN”, a 2 =“Concept*” a1a1 L a1 ….....S2 L a1-pef …. - L a1-suff ….S1 a2a2 L a2 …..... - L a2-pef …. - L a2-suff ….S1 E1: a 1 =“CNN”, a 2 =“A380 Debuts” S1 found in 2 lists and has defined 2 attributes S2 found in 1 list and has defined 2 attributes S1 matches E1 X

12 12/23 Ανάλυση Απόδοσης Αποθήκευση Συνδρομών (για κάθε χαρακτηριστικό) O(logN) hops Φάση συγκέντρωσης SubID (για κάθε χαρακτηριστικό) O( logN ) hops για να πάρει το L ai O( l x logN ) hops, l είναι το μέσο μέγεθος για τον αριθμό χαρακτήρων των τιμών

13 13/23 Πολυδιάστατη επεξεργασία δημοσιεύσεων Distributed Matching Hybrid Matching Coordinated Matching

14 14/23 Πολυδιάστατη επεξεργασία δημοσιεύσεων Αριθμός μηνυμάτων αν υποθέσουμε ότι μια δημοσίευση πρέπει να επικοινωνήσει με k κόμβους Coordinated Matching: 2 x k μηνύματα Distributed Matching: k + 1 μηνύματα Hybrid Matching: 2 x k μηνύματα Τα Hybrid και Coordinated αποδίδουν το ίδιο, όμως με το Hybrid τα ταιριασμένα SubID lists επιστρέφονται

15 15/23 Συμπεράσματα Τα DHTStrings είναι μια λύση ανεξάρτητη από DHT και stateless για την υλοποίηση μεγάλης κλίμακας συστημάτων φιλτραρίσματος πληροφορίας. Στο pub/sub παράδειγμα, τα DHTStrings υποστηρίζουν αποτελεσματικά ερωτήματα με χαρακτηριστικά string με τους τελεστές πρόθεμα, επίθεμα και ισότητα

16 16/23 Επεξεργασία τελεστή substring Τελεστής substring στις τιμές των attributes Substrings: Title = “*Debuts*” Βασική Ιδέα λύσης με n-grams: αποσύνθεσε το string σε n-grams n-grams: ίσου μεγέθους sub-strings του string π.χ. τα 4 bi-grams(n=2) του string abcd είναι ab, bc, και cd χρησιμοποίησε τα n-grams για να αποθηκεύσεις το SubId της συνδρομής Κάνε το ίδιο και για τη δημοσίευση συνέλεξε όλα τα n-grams που είναι ίσα με τα n-grams της δημοσίευσης αναδόμησε τις τιμές των συνδρομών κατέληξε σε ταίριασμα ή όχι

17 17/23 Επεξεργασία Συνδρομών Ορισμός Προβλήματος – l το μέγιστο μέγεθος των strings (σε χαρακτήρες) – l s και l e το μέγεθος των τιμών στα attributes των συνδρομών και των δημοσιεύσεων αντίστοιχα. s[1…l s ] τιμή συνδρομής e[1…l e ] τιμή δημοσίευσης – Έχουμε ταίριασμα αν το s είναι substring του e. Δηλ. για i<j ≤ l e s[1…l s ] = e[i…j] Επεξεργασία Συνδρομών – Η τιμή s χωρίζεται σε l s – n +1 ngrams – Για κάθε ngram i τοποθετούμε στον κόμβο με id=DHT.h(ngram i ) το Extended SubID (xSubID) Extended-SubID ngram i # of ngramsorderSubID

18 18/23 Επεξεργασία Δημοσιεύσεων Η τιμή e χωρίζεται σε l e – n +1 ngrams Για κάθε ngram i συλλέγουμε από τον κόμβο με id=DHT.h(ngram i ) τα xSubIDs που ταιριάζουν με την τιμή ngram i Ομαδοποιούμε τα xSubIDs που έχουμε συλλέξει με βάση το SubID και για κάθε xSubID σύνολο καταλήγουμε σε ταίριασμα εάν: Το μέγεθος του συνόλου είναι ίσο με το αντίστοιχο πεδίο στο xSubID Η αναδόμηση του s, είναι όντως substring του e.

19 19/23 Παράδειγμα S1 Producers and Consumers Peers (brokers) handling event/subscriptions S1:*101* ngrams: 10, 01 S2: *1001* ngrams: 10, 00, 01 S3: *010* ngrams: 01,10 Event: 11011 ngrams: 11, 10, 01, 11 Break S1 into 2 ngrams and store the following extended SubIDs SubID1|1|2|10 SubID1|2|2|01 Break S2 into 3 ngrams and store the following extended SubIDs SubID2|1|3|10 SubID2|2|3|00 SubID2|3|3|01 Break S3 into 2 ngrams and store the following extended SubIDs SubID3|1|2|01 SubID3|2|2|10 S2 S3 SubID 1 |1|2|10 SubID 2 |1|3|10 SubID 3 |2|2|10 SubID 1 |2|2|01 SubID 2 |3|3|01 SubID 3 |1|2|01 SubID 2 |2|3|00 Break event 11011 into 4 ngrams and query nodes for stored xSubIDs Event: 11011 ngrams: 11,10,01,11 Event 11 100111 - - - - - - SubID 1 |1|2|10 SubID 2 |1|3|10 SubID 3 |2|2|10 SubID 1 |2|2|01 SubID 2 |3|3|01 SubID 3 |1|2|01 Grouping based in SubID results in three groups for SubID 1, SubID 2, and SubID 3 010-101 SubID 3 |2|2|10SubID 2 |3|3|01SubID 1 |2|2|01 SubID 3 |1|2|01 SubID 2 |1|3|10SubID 1 |1|2|10 SubID 1 SubID 2 SubID 3 Subscription 1 matches the event and it is delivered to interested client

20 20/23 Επέκταση της προσέγγισης με n-grams Πρόβλημα Μία συνδρομή με τιμή s[1…l s ] θα πρέπει να αποθηκευτεί σε l s -n+1 κόμβους και αντίστοιχα για την ίδια συνδρομή θα πρέπει ο ίδιος αριθμός κόμβων να ερωτηθεί Στόχος Μείωση του φόρτου στο δίκτυο, με χρήση ενός πρωτοκόλλου τριών φάσεων βασισμένο σε Bloom Filters Bloom-filters Μας δείχνουν εάν ένα αντικείμενο δεν είναι μέλος ενός σετ Ένας πίνακας από m bits αρχικοποιημένος στο 0 και k hash functions Εισαγωγή αντικειμένου: χρήση των k hash functions ώστε να πάρουν την τιμή 1 τα αντίστοιχα k bits. Ένα αντικείμενο δεν αποτελεί μέρος του σετ, αν τουλάχιστον 1 bit είναι 0 στις θέσεις που θα υποδείξουν οι k hash functions. False positive prob: (1-e ki/m ) k όπου i είναι ο αριθμός των εισαγωγών

21 21/23 Επεξεργασία συνδρομών σε 3 φάσεις Καταφθάνει στον κόμβο Ε, δημοσίευση με τιμή e[1…l e ]. Φάση 1 Το e χωρίζεται σε ngrams, οι κατάλληλοι κόμβοι ερωτούνται και καθένας επιστρέφει το μέγεθος της λίστας των SubIDs |RS i |, που ταιριάζουν με την τιμή της δημοσίευσης. Με βάση αυτές τις τιμές υπολογίζεται το μέγεθος m του Bloom Filter, και αποστέλλεται σε όλους τους εμπλεκόμενους κόμβους Φάση 2 Κάθε κόμβος i, δημιουργεί ένα Bloom Filter BF i και εισάγει όλα τα SubIDs που ανήκουν στο RS i, χρησιμοποιώντας μία hash function. Τα BF i αποστέλλονται πίσω στον Ε

22 22/23 Επεξεργασία συνδρομών σε 3 φάσεις Φάση 3 Ο κόμβος Ε συλλέγει τα BF i και δημιουργεί τον πίνακα BFM με μέγεθος l e -n+1 x m, όπου η γραμμή i έιναι το BF i Για κάθε κόμβο i διατηρούμε μια λίστα PS i με δείκτες στις στήλες Για κάθε στήλη που περιέχει τουλάχιστον 1 bit ≠0 επιλέγουμε μία γραμμή, πχ j και εισάγουμε στο PS j τον δείκτη της στήλης. Κάθε PS επιστρέφεται πίσω στους αντίστοιχους κόμβους κάθε κόμβος i αφού λάβει το PS i για κάθε αντικείμενο στο σετ RS i χρησιμοποιεί την hash function και ελέγχει την θέση του αντίστοιχου bit Εάν αυτή η θέση βρίσκεται στη λίστα PS i τότε το συγκεκριμένο SubID θα επιστραφεί πίσω στον κόμβο Ε

23 23/23 Παράδειγμα Producers and Consumers Peers (brokers) handling event/subscriptions S1:*101* ngrams: 10, 01 S2: *1010* ngrams: 10, 01, 10 S3: *110* ngrams: 11,10 Event: 1101 ngrams: 11, 10, 01, Three SubIDs are stored in peers P1, P2, and P3. Event arrives with value 1101 SubID 3 | 110 SubID 1 | 101 SubID 2 | 1010 SubID 1 | 101 Event 11 10 01 SubID 3 | 110 SubID 2 | 1010 0 1 0 0 0 0 1 2 3 4 BF 1 hash(Sub3) 0 1 1 0 0 0 1 2 3 4 BF 2 hash(Sub3)hash(Sub1) 0 0 1 0 0 0 1 2 3 4 BF 3 hash(Sub1) 0 1 0 0 0 0 1 2 3 4 BF 1 0 1 1 0 0 BF 2 0 0 1 0 0 BF 3 P1 P2 P3 E Event value is broken in 11, 10, 01 Peers P1,P2, and P3 are queried for their result set sizes (RS i ) RS 1 =1 RS 2 =2 RS 3 =1 The appropriate Bloom Filter size is computed (m) and peers are requested to construct their BFs BFs are sent back and the BFM matrix is constructed 1 PS 1 2 PS 2 Non-empty column 1 is checked. P1 and P2 set the bit We choose P1, filling PS 1 with index 1 Non-empty column 2 is checked. P2 and P3 set the bit We choose P2, filling PS 2 with index 2 PS 1 and PS 2 are sent back to peers P1 and P2 They hash SubIDs in their RS set and if the bit position is equal to the PS position that SubID is returned Sub3 Sub1

24 Αναφορές I. Aekaterinidis and P. Triantafillou. Internet scale string attribute publish/subscribe data networks. In 14th ACM Conference on Information and Knowledge Management (CIKM05), 2005. Ioannis Aekaterinidis, Peter Triantafillou, Publish/Subscribe Information Delivery with Substring Predicates, IEEE Internet Computing, July 2007. (Special Issue on Dynamic Information Dissemination), I. Aekaterinidis and P. Triantafillou. Pastrystrings: A comprehensive content-based publish/subscribe DHT network. In the 26 th IEEE International Conference on Distributed Computing and Systems (ICDCS 06), 2006. 24/23

25 25/23 Απόδοση ngrams με Bloom Filters Τι κερδίζουμε Στην απλή περίπτωση που εξετάζουμε όλα τα πιθανά substrings της τιμής του event και ρωτάμε τους αντίστοιχους κόμβους Στην ngrams προσέγγιση Επεξεργασία Συνδρομών Επεξεργασία Δημοσιεύσεων O( logN ) O( l e 2 x logN ) Επεξεργασία Συνδρομών Επεξεργασία Δημοσιεύσεων O( l s x logN ) O( l e x logN )


Κατέβασμα ppt "1/23 DHTStrings: Συστήματα Δημοσιεύσεων/Συνδρομών σε DHT Δίκτυα με Υποστήριξη για Συμβολοσειρές Διανομή Περιεχομένου στο Διαδίκτυο Τμήμα ΜΗΥΠ Παν/μιο Πατρών."

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


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