1 One Torus to Rule them All: Multi-dimensional Queries in P2P Systems Authors: Prasanna Ganesan, Beverly Yang, Hector Garcia-Molina Ευθυμία Ρόβα
2 MURK: MUlti-Dimensional Rectangulation with Kd-trees
3 MURK “Μέθοδος” βάσεων δεδομένων για “multi- dimensional” ερωτήσεις σε P2P δίκτυο Διαχωρισμός των δεδομένων όπως βρίσκονται στο χώρο σε ορθογώνια παραλληλόγραμμα (“rectangles”) που καθένα το διαχειρίζεται ένας κόμβος Χρησιμοποίηση των kd-trees
4 Kd-trees Κάθε φύλλο αντιστοιχεί σε ένα “rectangle” που διαχειρίζεται κάποιος κόμβος Εισαγωγή κόμβου: διαμοιρασμός του χώρου που κατέχει κάποιο φύλλο (σε μια διάσταση) σε μέρη με ίσο φορτίο Αποχώρηση κόμβου: “παράδοση” του χώρου στο αδελφικό φύλλο αν δεν υπάρχει αδελφικό φύλλο, “παράδοση” σε κάποιον κόμβο από το υπο-δέντρο Παρόμοια εφαρμογή με το CAN με διαφορές: διαχωρισμός του χώρου σε μέρη με ίσο φορτίο διάσταση του χώρου εξαρτώμενη από τη διάσταση των δεδομένων
5 Παράδειγμα
6 Δρομολόγηση Διασύνδεση των κόμβων όπως στο CAN (“grid structure”) Κάθε κόμβος γνωρίζει τα όρια των γειτόνων του Η ερώτηση από έναν αρχικό στον τελικό, προωθείται μέσω των γειτόνων με επιλογή αυτού που μειώνει περισσότερο την απόσταση “Manhattan” μεταξύ αρχικού και τελικού κόμβου Προβλήματα: ανομοιομορφία των χώρων με αποτέλεσμα κόμβοι με μεγάλο “rectangle” να έχουν πολλούς γείτονες κι έτσι όχι ίδιο φορτίο μηνυμάτων σε κάθε κόμβο κατά τη δρομολόγηση οι συνδέσεις μόνο με τους γείτονες δεν είναι αρκετές για αποδοτική δρομολόγηση
7 Βελτιωμένη δρομολόγηση Επιπλέον συνδέσεις σε κόμβους (“skip pointers”) εκτός από τις υπάρχουσες λόγω της δομής Δύο διαφορετικές προσεγγίσεις ανάλογα με τον τρόπο που δημιουργούνται οι “skip pointers” Random: κάθε κόμβος διατηρεί “skip pointers” σε s τυχαίους κόμβους από το σύνολο των κόμβων. Ίδια απόδοση με την τεχνική των “realities” στο CAN Space-filling Skip graph: παρόμοια με την τεχνική “skip graph”. Χρησιμοποιείται γραμμική διάταξη των κόμβων η οποία έχει τις ιδιότητες ενός “skip graph”.
8 Ιδιότητες της τεχνικής MURK Locality: αρκετά καλή, αφού διαχωρίζει το χώρο σε τόσα “rectangles” όσοι και οι κόμβοι Load balancing: αρκετά καλή αν η κατανομή των δεδομένων είναι σταθερή “rectangles” με διαφορετικό φορτίο αν η κατανομή των δεδομένων είναι δυναμική. Χρησιμοποιούνται οι τεχνικές “N BR A DJUST ” “R EORDER ” για επίτευξη καλού load balancing
9 Ερωτήσεις ?