A Peer-to-peer Framework for Caching Range Queries O. D. Sahin A. Gupta D. Agrawal A. El Abbadi Παρουσίαση: Καραγιάννης Τάσος, Κρεμμυδάς Νίκος, Μαργαρίτη Σπυριδούλα
Εισαγωγή Σύγχρονα P2P απαντούν σε ερωτήματα με βάση ονόματα Δεν μπορούν να απαντήσουν πιο σύνθετες ερωτήσεις (SQL, Range) Σκοπός: Σχεδιασμός συστήματος γενικού σκοπού διαμοιρασμού δεδομένων
Περιγραφή Συστήματος(1/2) Καθολικό σχεσιακό σχήμα Κόμβοι δικτύου συνεργάζονται για να απαντήσουν ερωτήσεις πάνω στο σχεσιακό σχήμα Answering queries using Views δύσκολο, άρα περιοριζόμαστε στην επέκταση λειτουργίας αναζήτησης για την απάντηση range queries
Περιγραφή Συστήματος(2/2) Στόχος: Κόμβοι αποθηκεύουν range partitions, τα οποία χρησιμοποιούνται για να απαντηθούν ερωτήσεις Προσοχή στην παραβίαση πρωτεύοντος κλειδιού Βελτιστοποίηση: Αναζήτηση σε κόμβους και όχι στην ίδια τη βάση Π.χ. για το range (20, 35) μπορούμε να ρωτήσουμε κόμβους που περιέχουν range που είναι υπερσύνολο όπως (15, 40) Χρήση συνάρτησης κατακερματισμού για αντιστοίχηση range σε κόμβους
Μοντέλο Συστήματος(1/3) Βασισμένο στο CAN Αντιστοίχιση σχετική με data ranges Έστω πεδίο ορισμού [α,β]. Αντιστοιχίζεται σε 2d CAN. Π.χ. Κάθε attribute αντιστοιχίζεται σε ένα πεδίο ορισμού
Μοντέλο Συστήματος(2/3) Εικονικός χώρος χωρίζεται σε ζώνες Κάθε ζώνη αντιστοιχίζεται σε ένα active κόμβο Υπάρχουν passive κόμβοι που αντιστοιχίζονται σε κόμβο αλλά όχι σε ζώνη Κάθε ενεργός κόμβος κρατάει πίνακα δρομολόγησης (όπως CAN)
Μοντέλο Συστήματος(3/3) Range Query αντιστοιχίζεται στο σημείο (a, b) (target point) Ζώνη στην οποία ανήκει target point λέγεται target zone Κόμβος υπεύθυνος για το target zone λέγεται target node Όταν κόμβος κάνει ερώτηση, αν επιθυμεί κάνει cache το αποτέλεσμα και ενημερώνει τον target node. Target node έχει δείκτη στον κόμβο που έκανε την ερώτηση. Μπορεί και ο target node να κάνει cache την απάντηση Και στις δύο περιπτώσεις ο target node έχει αποθηκευμένο το αποτέλεσμα
Διαχείριση ζωνών Αρχικά ένας active κόμβος για όλο το χώρο Δυναμικός διαχωρισμός: η απόφαση για διάσπαση έγκειται στον ιδιοκτήτη Διαλέγει έναν passive κόμβο (δικό του ή κάποιου γείτονα) για ανάθεση μέρους της ζώνης του Διάσπαση γίνεται αν ιδιοκτήτης: Έχει μεγάλο φόρτο ερωτήσεων (ίση κατανομή cached απαντήσεων) Πολλά routing ερωτήματα περνάνε από τη ζώνη του (διάσπαση ζώνης στη μέση)
Παράδειγμα διάσπασης ζωνών
Δρομολόγηση ερωτήσεων Δρομολόγηση όπως στο CAN Με βάση τις συντεταγμένες του target point επιλέγεται ο κοντινότερος γείτονας Passive κόμβοι αναθέτουν ερώτηση στον active κόμβο τους Μήκος μονοπατιού:O( n)
Προώθηση ερωτήσεων από τoν target node Πρόβλημα: Πιθανό να μην έχουμε απαντήσεις στο target κόμβο Πιθανό να έχουμε απαντήσεις σε κάποιον γείτονα μέσα στο Acceptable region Ζώνη D σχετίζεται με ranges υπερσύνολα του (Diagonal zone) Όλα τα x του D μικρότερα από τα x του Α, όλα τα y του D μεγαλύτερα από τα y του Α Κατά την προώθηση ο Α στέλνει σε γειτονικές ζώνες (αριστερά ή πάνω) Προώθηση με πλημμύρα Κατευθυνόμενη προώθηση
Προώθηση με πλημμύρα Προωθείται σε γείτονες το ερώτημα επεκτείνοντας το αρχικό range Το ποσοστό της επέκτασης ορίζεται από το AcceptableFit ( [0,1]) offset = AcceptableFit x |domain|, Newrange = AcceptableFit=0 σημαίνει ότι δεν γίνεται προώθηση AcceptableFit=1 σημαίνει ότι γίνεται μεγαλύτερη δυνατή προώθηση
Κατευθυνόμενη προώθηση Προηγούμενη στρατηγική δημιουργεί μεγάλη κίνηση στο δίκτυο Καλύτερα να επιλεγεί ένας από τους γείτονες για να γίνει η προώθηση Επιλέγεται γείτονας με μεγαλύτερη επικάλυψη στην Acceptable region Όριο d στη προώθηση της ερώτησης (d=0 σταματάει η προώθηση) Χρησιμοποιείται και η ΑcceptableFit παράμετρος
Βελτιώσεις Lookup During Routing Κατά τη διάρκεια δρομολόγησης ερωτούνται ενδιάμεσοι κόμβοι Αν βρεθεί απάντηση σταματάει δρομολόγηση Warm up Queries Γίνεται cache αποτέλεσμα ερώτησης με το μεγαλύτερο range που αντιστοιχεί στη ζώνη Βελτιώσεις CAN Πολλαπλές πραγματικότητες, μετρικές δρομολόγησης, overloaded ζώνες, τοπολογικά ευαίσθητος διαχωρισμός Σε αποτυχία κόμβου, γείτονας αναλαμβάνει προσωρινά τη ζώνη του και την αναθέτει σε κάποιον passive κόμβο.
Διάδοση αλλαγών της βάσης Ακριβή ερωτήματα όπως age=20 απαντώνται αν θέσουμε Αν update Α=k, τότε στέλνεται μήνυμα στο target zone του αναβαθμίζοντας την cache του Γίνεται προώθηση σε όλες τις ζώνες του Acceptable region του Όποιος έχει παλιά τιμή του k την αλλάζει Αν έχει δείκτη σε κάποιο κόμβο, προωθεί το μήνυμα αναβάθμισης στον κόμβο Πρόβλημα: Κόμβοι που είναι υπεύθυνοι για μεγάλα ranges δέχονται πολλά μηνύματα αναβάθμισης. Λύση: Αποστολή πολλών αναβαθμίσεων μαζί σε ένα μήνυμα
Ερωτήσεις με πολλά attributes Έστω ερώτηση με n attributes και 2n-διάστατος χώρος. Ερώτηση,,..., αντιστοιχίζεται στο σημείο (l 1, h 1, l 2, h 2,..., l n, h n ) Πρώτες δύο διαστάσεις στο 1ο attribute, επόμενες 2 στο 2ο, κλπ Ίδιος αλγόριθμος δρομολόγησης
Ερωτήσεις;