DISTRIBUTED CACHE TABLE: EFFICIENT QUERY-DRIVEN PROCESSING OF MULTI-TERM QUERIES IN P2P NETWORKS Paper By: Gleb Skobeltsyn, Karl Aberer Presented by: Βασίλης Φωτόπουλος
Agenda 1. Ορισμός του προβλήματος 2. Naïve προσεγγίσεις 3. Παρατήρηση-Λύση 4. Meta-Index & Cache management
Ορισμός του Προβλήματος Δεδομένουμιαςσυλλογήςαπόdocuments D που είναι κατανεμημένη σε ένα σύνολο από peers (π i ) που σχηματίζουν ένα structured P2P (DHT enable) Εύρεση ενός efficient indexing mechanism για να μπορούν να γίνονται resolve multi-keywords queries. Efficient: Να γίνεται efficient χρήση του BW του δικτύου To storage κάθε π i είναι περιορισμένο (άνω φραγμένο).
Agenda 1. Ορισμός του προβλήματος 2. Naïve προσεγγίσεις 3. Παρατήρηση-Λύση 4. Meta-Index & Cache management
Single-term inverted lists (I) An inverted lists contain document ids. (h(t 1 ), {I 1,I 2 }) {I 1,I 2 } (h(t 2 ), {I 2,I 3 }) (h(t 3 ), {I 4,I 5 }) {I 2 } Query: T 1 AND T 2
Single-term inverted lists (II) An inverted lists contain document digests. (h(t 1 ), {I 1,I 2 }) (h(t 2 ), {I 2,I 3 }) (h(t 3 ), {I 4,I 5 }) {I 2 } {I 2 } OR Query: T 1 AND T 2
Agenda 1. Ορισμός του προβλήματος 2. Naïve προσεγγίσεις 3. Παρατήρηση-Λύση 4. Meta-Index & Cache management
Παρατήρηση Τα single-term inverted indexes που περιέχουν document references δεν είναι scalable, απαιτούν μεγάλο BW κατά το query processing λόγω της μεταφορά Posting lists κατά το intersection. Τα single-term inverted indexes που περιέχουν document references και document digests επιλύουν το πρόβλημα της scalability με αντίτιμο το storage cost. Και οι δύο προτεινόμενες λύσεις κάνουν static indexing για όλους τους terms που εμφανίζονται στην document collection, ακόμα και για αυτούς που δεν χρησιμοποιούνται σχεδόν ποτέ στην επίλυση των ερωτήσεων.
Πρόταση-Λύση Indexing = Caching Κάθε π i κάνει επιλεγμένα cache set of past query results για queries που υποβάλλει ο ίδιος στο δίκτυο. Γίνεται μια on the fly δημιουργία από indexes τα οποία είναι adapt στο query load. Αρχικά μια query προσπαθεί να γίνει resolve μέσω της Distributed cache, αν όχι τότε επιλύεται μέσω Broadcast.
Query-Subsumption Δοθέν μιας ερώτησης q θέλουμε να βρούμε στις caches των π i έστω μια q τ.ω ηq να εμπεριέχεται στην q. Μια ερώτηση q κάνει subsume μια q εάν η q εμπεριέχεται στην q, ήτοι το RS(q) εμπεριέχεται στο RS(q ). Query Subsumption εάν έχουμε κάνει cache τα SR των a και cd.
Agenda 1. Ορισμός του προβλήματος 2. Naïve προσεγγίσεις 3. Παρατήρηση-Λύση 4. Meta-index & Cache management
Indexing & Caching strategy Πωςέναςπ i θα εντοπίζει εάν η q που υποβάλλει μπορεί να γίνει resolve μέσω των distributed caches στο δίκτυο? Κάθε π i τρέχει 2 services: 1. Meta-index service: αποθηκεύει index items προς τις caches. 2. Cache service: απαντά μια q μέσω μιας cached q. Το meta-index service υλοποιείται πάνω στον DHT μηχανισμό του P2P δικτύου.
Meta-index service Index Update: Αν ένας π i κάνει cache μια q, διαφημίζει αυτό το γεγονός στο meta-index service: Εισάγει μια tuple {q, address(π i )} σε έναν peer που είναι υπεύθυνος για έναν random selective term της q. Lookup: Έστω ότι η q=t 1 &t 2 & &t n υποβάλλεται στο δίκτυο από τον π i. Οπ i κάνει hash σε κάθε ένα από τα term t i της q ζητώντας από τον αντίστοιχο peer να βρει στο meta-index του μια cached q που μπορεί να κάνει subsumed την q. Οι q επιστρέφονται πίσω στον π i (εάν υπάρχουν) ο οποίος επιλέγει μια εξ αυτών randomly.
Meta-index example q= acd acd is submitted at π orig acd cd 1. π orig looks up the metaindex: contacts peers π a, π c and π d * π orig π c π RS( cd ) 2. π a, π c and π d response with known locations of caches subsuming q Legend: metaindex cache a 3. π orig randomly selects a cache from the obtained list. Assume cd is picked. π a 4. RS(q) is sent to π orig * interactions with π d are not shown 14 / 25
Cache Management: Define optimization problem Ένα vocabulary T=t 1,t 2 t m : όλοι οι terms στο query load L. Μια query q=t 1,t 2 t n : q στο 2 T Ένα document d=t 1,t 2 t r : d στο 2 T Ένα document d ικανοποιεί μια query q <=> d εμπεριέχει q Θεωρούμε ότι κάνουμε cache ένα σύνολο από q i ανήκουν Ω υποσύνολο του L. Cachhit function: cachehit(q) = 1, εάν υπάρχει cached q που κάνει resolve την q. cachehit(q)=0, διαφορετικά. Optimization problem: βρες τις cached q ανήκουν Ω τ.ω: Ω=argmax Σ qi in L cachehit(q i )*p(q i ) Storage constrained: S Ω = Σ qi in Ω RS(q i ) <S 0
Cache Management: Solution Για κάθε q ορίζεται ένα προσεγγιστικό profit το οποίο δείχνει και την αξία που έχει η q για να μπει στην cache ή όχι. bfreq(q i ): είναι το πλήθος των broadcasts που έχει πρόσφατα παρατηρηθεί για κάθε q i υποσύνολο της q. Δεν έχει νόημα να κάνω cache μια q αν όλα τα υποσύνολα της υπάρχουν στις caches των peers του δικτύου, μιας και η q και οποιαδήποτε q υπερσύνολο της q (αν εμφανιστεί) μπορεί να γίνει resolve από είδη cached queries.