Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer Λεοντιάδης Ηλίας Πανεπιστήμιο Ιωαννίνων Τμήμα πληροφορικής
2 Δομή Επισκόπηση δικτύων peer to peer Πράκτορες και συστήματα πολλαπλών πρακτόρων Μοντέλο distributed cache Ανακάλυψη υπηρεσιών Κινητικότητα Ενημερώσεις (μέθοδοι push/pull και παραλλαγές) Πειραματικά αποτελέσματα Αντίγραφα (Replication) Δημιουργία αντιγράφων Ενημέρωση αντιγράφων
3 Συστήματα peer-to-peer (P 2 P) Κεντρικός server client peer Αποκέντρωση Οι peers είναι ομότιμοι Διαμοιρασμός πόρων/ υπηρεσιών Άμεση συνεργασία (peer to peer) Αυτο-οργάνωση και αυτονομία Λειτουργία σε ασταθές και αναξιόπιστο περιβάλλον
4 Εφαρμογές δικτύων peer to peer Συστήματα ανταλλαγής αρχείων Napster, Gnutella, Kazaa, BitTorrent, LimeWire, Freenet, E-donkey Κατανεμημένοι υπολογισμοί (distributed computing) United Devices,Entropia, GPU Επικοινωνία ICQ, Net meeting Συνεργασία Ασφάλεια Ιδιωτικότητα (privacy) Freenet Έξυπνες συσκευές Δίκτυα από ανιχνευτές Δίκτυα αυτοκινήτων
5 Κεντρικός server peers Τύποι συστημάτων P 2 P Κεντρικοποιημένα
6 peers Broker peer Τύποι συστημάτων P 2 P Συστήματα μεσίτη
7 Τύποι συστημάτων P 2 P Πλήρως αποκεντρωμένα
8 Συνδέσεις super peers (αναζητήσεις) Απ’ ευθείας συνδέσεις των client (δεδομένα) Τύποι συστημάτων P 2 P Μερικώς αποκεντρωμένα
9 Δομή δικτύων Αδόμητα (unstructured) Η τοποθέτηση της πληροφορίας δεν έχει καμία σχέση με την τοπολογία του δικτύου Αναζήτηση τύπου flooding Παραδείγματα: Gnutella Δομημένα (structured) Η τοπολογία είναι ελεγχόμενη και η πληροφορία τοποθετείται σε συγκεκριμένες θέσεις του δικτύου Υπάρχει δρομολόγηση αναζητήσεων. Παραδείγματα: CAN, Chord, Tapestry κτλ Ελαφρώς δομημένα Ανάμεσα στα προηγούμενα δύο Οι θέσεις τον πόρων επηρεάζεται από κάποια δρομολόγηση αλλά δεν καθορίζεται από αυτήν Παραδείγματα: Freenet
Συστήματα πολλαπλών πρακτόρων
11 Multi-agent systems Multi-Agent system (MAS) Δίκτυο από software agents Υπολογιστικοί πόροι και υπηρεσίες διαμοιράζονται σε όλο το δίκτυο Οι agents συνεργάζονται για να εκπληρώσουν έναν συγκεκριμένο στόχο Για να το κάνουν αυτό, χρειάζονται υπηρεσίες που παρέχονται από άλλους agents Open MAS Δεν υπάρχει σφαιρική γνώση για το τι υπάρχει στο σύστημα Έτσι, οι agents δεν γνωρίζουν ποιος agent προσφέρει ποια υπηρεσία
12 Ανακάλυψη υπηρεσιών σε open MAS Προσεγγίσεις: Central directory Υπάρχει ένας agent που διατηρεί έναν κεντρικό κατάλογο που αντιστοιχεί υπηρεσίες σε agents Middle agents Υπάρχουν μερικοί agents (middle agents) που κρατούν τμήμα αυτού του καταλόγου Distributed cache model: Κάθε agent διατηρεί τμήμα του καταλόγου Απόδοση Ανοχή σε σφάλματα Ζήτημα: Πώς ανακαλύπτουμε έναν agent που προσφέρει μια συγκεκριμένη υπηρεσία
13 Distributed cache model Κάθε agent διατηρεί k εγγραφές cache που αφορούν υπηρεσίες που προσφέρουν άλλοι agents Εγγραφές Cache : Κάθε εγγραφή περιέχει την διεύθυνση του agent που προσφέρει την συγκεκριμένη υπηρεσία. Το σύστημα μοντελοποιείται ως ένας κατευθυνόμενος γράφος G(V;E) που ονομάζουμε δίκτυο των cache Αν στο G υπάρχει ακμή u v, τότε ο agent v καλείται γείτονας του u a2a2 a4a4 a1a1 a6a6 a3a3 a5a5 R 4 : A 2 (IP) R 8 : A 6 (IP) R1R2R3R1R2R3 R4R7R4R7 R1R1 R8R5R2R1R8R5R2R1 R9R9 R6R6 Cache του a 1
14 Αναζήτηση υπηρεσιών Μέθοδοι αναζήτησης που βασίζονται στην τεχνική flooding Απλό flood Κάθε κόμβος που λαμβάνει το μήνυμα αναζήτησης Εξετάζει αν έχει την απάντηση Το προωθεί σε όλους τους γείτονες Μέχρι να φτάσουμε έναν μέγιστο αριθμό βημάτων (TTL) Teeming Προωθεί το μήνυμα σε ένα τυχαίο υποσύνολο των γειτόνων Σταθερή πιθανότητα Φ να επιλεχθεί κάποιος γείτονας Teeming με decay Παρόμοιο με το teeming, μόνο που το υποσύνολο μικραίνει καθώς αυξάνεται το βάθος αναζήτησης Φ = (1-d) level Το d < 1 ονομάζεται παράμετρος decay K-Random paths (K-walkers) Μόνο ο πρώτος agent προωθεί το μήνυμα σε K τυχαίους γείτονες Όλοι οι υπόλοιποι προωθούν το μήνυμα σε έναν μόνο τυχαίο γείτονα Απλό floodTeeming2-Random paths
15 Το πρόβλημα: Το δίκτυο των cache και κινητικότητα Κινητικότητα Οι agents μπορεί να μετακινηθούν π.χ. να αλλάξουν IP Οι υπηρεσίες μπορεί να μετακινηθούν από έναν agent σε κάποιον άλλο Όσοι είχαν στην cache υπηρεσίες του μη-έγκυρες εγγραφές (invalid cache entries) Ουσιαστικά, κανείς δεν γνωρίζει την νέα του θέση, αφού κάνεις δεν ενημερώθηκε για την μετακίνηση a2a2 a4a4 a1a1 a6a6 a3a3 a5a5 a3a3 Παλιά θέση Νέα θέση Όταν ένας agent μετακινείται δημιουργείται ασυνέπεια στις εγγραφές cache των άλλων
16 Πολιτικές ενημέρωσης Από την στιγμή που οι εγγραφές στην cache ορίζουν το δίκτυο P 2 P, με το να ενημερώνουμε την cache, ενημερώνουμε το ίδιο το δίκτυο. Προτείνουμε πολιτικές που βασίζονται σε δύο βασικές μεθόδους: Pull Ξεκινά από agents που επιθυμούν να ανανεώσουν την cache τους Push Ξεκινά από agents που μετακινούνται Μελετήσαμε το πρόβλημα της ενημέρωσης των cache σε ένα δίκτυο από κινητούς πράκτορες
17 Μέθοδος pull Οποιοσδήποτε αλγόριθμος αναζήτησης που βασίζεται στο flooding μπορεί να χρησιμοποιηθεί Απλό flood Teeming with decay K-Random paths Pull Αναζήτηση του δικτύου για κάποιον agent που γνωρίζει νεότερη θέση Ξεκινά από κάποιον agent που επιθυμεί να ανανεώσει κάποια εγγραφή περιοδικά on demand
18 Παράδειγμα pull Παλιά θέση Νέα θέση Agent που γνωρίζει την νέα θέση Agent που κάνει pull
19 Παράδειγμα pull
20 Παράδειγμα pull
21 Παράδειγμα pull
22 Παράδειγμα pull Απευθείας απάντηση
23 Παράδειγμα pull
24 Location sequence numbers (LSN) Χρησιμοποιούμε location sequence numbers για να αναζητήσουμε νεότερη θέση μιας υπηρεσίας Κάθε υπηρεσία έχει ένα LSN Όταν ένας agent μετακινείται αυξάνει το LSN όλων των υπηρεσιών που προσφέρει Έτσι, μεγαλύτερο LSN σημαίνει νεότερη θέση Σε κάθε εγγραφή στην cache κρατάμε και το LSN της υπηρεσίας που είχε όταν προστέθηκε Όταν κάνουμε pull Ψάχνουμε για την υπηρεσία με LSN που είναι μεγαλύτερο από αυτό που έχουμε στην cache Αν υπάρχουν απαντήσεις με διαφορετικά LSN κρατάμε το μεγαλύτερο a2a2 a3a3 a3a3 R 9 : LSN = 5 R 9 : LSN = 6 Παλιά θέση Νέα θέση R 9 A 3 :LSN = 5 a 2 Cache
25 Μέθοδος push Το pull δεν μπορεί να δουλέψει από μόνο του Όταν κάποιος agent μετακινείται πρέπει να ενημερώσει τουλάχιστον έναν ακόμα για την νέα του θέση Push Όταν ένας agent μετακινείται προωθεί στο δίκτυο (κάνει push) την πληροφορία που σχετίζεται με την νέα του θέση.
26 Παράδειγμα push Νέα θέση Χρειάζεται ενημέρωση Παλιά θέση
27 Παράδειγμα push
28 Παράδειγμα push
29 Παράδειγμα push
30 Παράδειγμα push
31 Προτεινόμενες πολιτικές Απλό push/pull Συνδυασμός των αλγορίθμων push / pull με χρήση των κατάλληλων αλγορίθμων flooding Push με καταλόγους snooping και περιοδικά pulls Νέα παραλλαγή του push όπου οι κόμβοι που «μαθαίνουν» για μία μετακίνηση κρατούν την πληροφορία αυτή σε κάποιον κατάλογο Inverted cache με leasing Μία «ενημερωμένη» έκδοση του αλγορίθμου push που συνδυάσαμε με την ιδέα leasing
32 Απλό push/pull Δεν υπάρχει καμία πληροφορία για το ποιοι agents χρειάζονται την ενημέρωση Απλό push O agent που μετακινείται πλημμυρίζει τυφλά το δίκτυο με μηνύματα που περιέχουν την νέα του θέση έτσι ώστε να ενημερώσει όσο το δυνατό περισσότερους agents. Απαιτείται ένα ευρύ push ώστε να ενημερώσουμε επαρκή αριθμό από agents Αλγόριθμος teeming with decay Μεγάλο TTL και μικρή παράμετρος decay
33 Απλό push/pull Pull Ένας agent μπορεί να μην λάβει την ενημέρωση: Εκτός σύνδεσης την ώρα του push TTL, decay Μη συνεκτικό δίκτυο Όταν ο agent αντιληφθεί μη έγκυρη εγγραφή στην cache του on-demand pull
34 Push με καταλόγους snooping και περιοδικό pull Ουσιαστικά: Όταν λάβει κάποιο μήνυμα push, αποθηκεύει την πληροφορία στον δικό του κατάλογο snooping Το κάνει αυτό ακόμα και αν το μήνυμα δεν περιέχει πληροφορία για κάποιον agent που τον ενδιαφέρει Κρατά την πληροφορία αυτή για περιορισμένο χρονικό διάστημα (υπάρχει expiration time) Επομένως, κάθε κόμβος θυμάται για λίγο τις νέες θέσεις όλων των agent για τους οποίους έλαβε μήνυμα push. Κατάλογοι snooping Κάθε agent παρακολουθεί το δίκτυο και κρατά έναν κατάλογο με τους πρόσφατα μετακινηθέντες κόμβους για τους οποίους ενημερώθηκε. Αυτός ο κατάλογος ονομάζεται snooping directory.
35 Παράδειγμα push με καταλόγους snooping
36 Παράδειγμα push με καταλόγους snooping Snooping dir -a 1 moved to … Snooping dir -a 1 moved to …
37 Παράδειγμα push με καταλόγους snooping a1a1 Snooping dir -a 1 moved to … Snooping dir -a 1 moved to … Snooping dir -a 1 moved to … Snooping dir -a 1 moved to … Snooping dir -a 1 moved to …
38 Περιοδικά pulls Όλοι οι agent κάνουν περιοδικά pull Περιοδικά, μαθαίνουν αν κάποιος agent που τους ενδιαφέρει έχει μετακινηθεί πρόσφατα ρωτώντας τους γείτονες τους. Γιατί περιοδικά pull; Για να εκμεταλλευτούμε τα snooping directories: Αν κάνουμε pull πολύ αργά οι παλιές μετακινήσεις θα έχουν σβηστεί από τους καταλόγους snooping των γειτόνων. Ο χρόνος μεταξύ δύο διαδοχικών pull < expiration time
39 Push με καταλόγους snooping και περιοδικά pull: Συζήτηση Πλέον, σε κάθε μετακίνηση δεν χρειάζεται να ενημερώσουμε όσο το δυνατό περισσότερους agents άλλα μερικούς Η μέθοδος αυτή μας επιτρέπει να χρησιμοποιήσουμε λιγότερο ευρύ push Για παράδειγμα: Αν υποθέσουμε ότι όλοι οι agent κάνουν περιοδικό pull από την 2-hop γειτονιά τους: Όσοι κόμβοι απέχουν 2-hop από τους agents που ενημερώθηκαν με push θα λάβουν την ενημέρωση. Έτσι αρκεί να ενημερωθεί ένας μόνο κόμβος σε κάθε 2-hop γειτονιά Προτιμούμε τον αλγόριθμο k-walkers Δημιουργούμε K-walkers Επιθυμούμε όλοι οι agents να απέχουν το πολύ 2-hop από τα μονοπάτια τους.
40 Push με καταλόγους snooping και περιοδικά pull
41 Inverted cache push/pull Κάθε agent κρατάει μια λίστα των agent που τον γνωρίζουν, η οποία ονομάζεται inverted cache. Όταν ένας agent μετακινείται, ενημερώνει τους agents στην inverted cache ώστε να ανανεώσουν την cache τους. απλή cache ώστε να ανανεώσουν την inverted cache τους. Με το να γνωρίζουμε του που να στείλουμε το update Αποφεύγουμε το flooding Ελάχιστος φόρτος μηνυμάτων Μειονέκτημα: Οι αλλαγές στην cache κάποιου agent (προσθήκη διαγραφή κτλ.) απαιτούν ανταλλαγή μηνυμάτων ABCA B C
42 Inverted cache push/pull Ζήτημα Το να φυλάσσουμε ολόκληρο τον κατάλογο της inverted cache μπορεί να μην είναι πάντα επιθυμητό επειδή υπάρχουν δημοφιλείς agents. Λύσεις Κρατάμε μόνο ένα μέρος του καταλόγου Συνδυασμός με την τεχνική leasing Οι agents που δεν ενημερώθηκαν πρέπει να καταφύγουν σε on-demand pull.
43 Inverted cache push/pull: Leasing Σε κάθε εγγραφή της cache ανατίθεται από τον ιδιοκτήτη της υπηρεσίας χρόνος μίσθωσης (lease time) Μετά την λήξη της μίσθωσης ο ιδιοκτήτης της υπηρεσίας μπορεί να σβήσει την εγγραφή από την inverted cache του χωρίς ενημερώσει ποτέ τον μισθωτή Έτσι μπορούμε να ελέγξουμε το μέγεθος της inverted cache μέσω του χρόνου μίσθωσης Μικρότερος χρόνος μίσθωσης μικρότερες λίστες Lease time Το χρονικό διάστημα κατά το οποίο ο ιδιοκτήτης της υπηρεσίας εγγυάται ότι θα ενημερώσει τον μισθωτή για την οποιαδήποτε μετακίνηση της.
44 Πειραματικά αποτλέσματα Χρήση ενός εξομοιωτή Παραγωγή τυχαίου γράφου Κάθε agent παρέχει έναν αριθμό από υπηρεσίες Υπάρχουν δημοφιλής και μη-δημοφιλείς υπηρεσίες Αρχικά όλοι οι πράκτορες έχουν έγκυρες εγγραφές στην cache Η εξομοίωση τρέχει για έναν αριθμό από γύρους (turn based): Σε κάθε γύρο, ένας agent μπορεί να Μετακινηθεί Να χρησιμοποιήσει μια υπηρεσία Μπορεί να χρειαστεί on-demand push Να κάνει κάποιο περιοδικό pull (ανάλογα με τον αλγόριθμο) Να προσθέσει, σβήσει, αντικαταστήσει εγγραφές στην cache του. Κρατάμε στατιστικά Μηνύματα push/pull Ποσοστό έγκυρων εγγραφών στην cache Μέσο μέγεθος καταλόγων (snooping, inverted cache…) Πόσοι agent μετακινήθηκαν σε κάθε βήμα μετά την μετακίνηση Πόσο γρήγορα βρίσκεται μια τυχαία υπηρεσία (βάθος αναζήτησης).
45 Εξομοίωση Στις εξομοιώσεις που θα παρουσιάσουμε Δίκτυο των 1000 agent 3000 υπηρεσίες 250 γύροι Ενδιαφερόμαστε κυρίως για: Το ποσοστό των cache που παρέμεινε έγκυρο κατά την διάρκεια της εξομοίωσης. Το κόστος μηνυμάτων του Pull Push Αλλαγών στην cache Την ταχύτητα ενημέρωσης Την ταχύτητα εύρεσης μιας τυχαίας υπηρεσίας
46 Απλό push/pull Εύρος του push – ποσοστό έγκυρων εγγραφών cache decayTTL narrow0.44 medium0.35 wide0.25 full05
47 Απλό push/pull Εύρος του push – αριθμός μηνυμάτων
48 Push with snooping directories and periodic pull Εύρος του push – ποσοστό έγκυρων εγγραφών cache
49 Push with snooping directories and periodic pull Εύρος του push – αριθμός μηνυμάτων
50 Απλό push/pull vs. snooping
51 Inverted cache push/pull με leasing Διάρκεια του lease - ποσοστό έγκυρων εγγραφών cache Lease time small5 medium25 large50 Very large100
52 Inverted cache push/pull Συχνότητα αλλαγών στην cache – φόρτος μηνυμάτων
53 Σύγκριση μεθόδων Απλό push/pull Κατάλληλη όταν δεν επιθυμούμε να χρησιμοποιήσουμε παραπάνω μνήμη για λόγους ενημέρωσης Μπορεί να χρησιμοποιηθεί σε ασταθές και αναξιόπιστο περιβάλλον Έχει ικανοποιητικά αποτελέσματα όταν χρησιμοποιείται ευρύ flooding Μεγάλος φόρτος μηνυμάτων Push με καταλόγους snooping και περιοδικά pull Ίδια ποιότητα ενημέρωσης με πολύ μικρότερο αριθμό μηνυμάτων Απαιτεί επιπρόσθετη μνήμη Inverted cache με leasing Αμελητέος φόρτος μηνυμάτων για κάθε μετακίνηση Άμεση ενημέρωση (1-hop) Μη κατάλληλη όταν έχουμε πολλές αλλαγές στην cache και λίγες μετακινήσεις Το μέγεθος της inverted cache μπορεί να γίνει μεγάλο για δημοφιλείς agent Μη κατάλληλη σε ασταθή και αναξιόπιστα συστήματα Οι πράκτορες βασίζονται ο ένας στον άλλο για να ενημερωθούν Πρέπει να είναι online συνεχώς για να διατηρούν τους καταλόγους inverted cache
Δημιουργία αντιγράφων
55 Αντίγραφα Σε ένα δίκτυο P 2 P υπάρχουν πολλαπλά αντίγραφα του ίδιου αντικειμένου τα οποία προσφέρονται από διαφορετικούς κόμβους Πολιτικές δημιουργίας αντιγράφων Μόνο κόμβοι που χρησιμοποιούν το αντικείμενο δημιουργούν αντίγραφο (Gnutella) Μπορεί να δημιουργηθούν αντίγραφα σε ένα κόμβο ακόμα και αν δεν το ζήτησε (Freenet)
56 Αριθμός αντιγράφων Πρόβλημα: Πόσα αντίγραφα ενός αντικειμένου πρέπει να δημιουργηθούν ώστε το κόστος των αναζητήσεων να βελτιστοποιηθεί Έχουμε n κόμβους και m αντικείμενα r i αντίγραφα του αντικειμένου i Κάθε αντικείμενο αναζητείται με σχετικό ρυθμό q i έτσι ώστε Υποθέτουμε ότι υπάρχει μέγιστος αριθμός αντιγράφων R Οπότε η βασική ερώτηση είναι πως κατανέμουμε τα R αντίγραφα στα m αντικείμενα
57 Πολιτικές δημιουργίας αντιγράφων Ομοιόμορφη Ίδιος αριθμός αντιγράφων για όλα τα αντικείμενα: Αναλογική Αριθμός αντιγράφων ενός αντικειμένου i ανάλογος του ρυθμού ερωτήσεων q i : Η ομοιόμορφη και αναλογική κατανομή έχουν το ίδιο μέσο μέγεθος αναζήτησης Ερώτημα Υπάρχει κατανομή που να ελαχιστοποιεί το μέσο μέγεθος αναζήτησης Κατανομή τετραγωνικής ρίζας Τα αντίγραφα ενός αντικειμένου i είναι ανάλογα ως προς την τετραγωνική ρίζα του ρυθμού ερωτήσεων q i όπου
58 Επίτευξη κατανομής τετραγωνικής ρίζας Η ομοιόμορφη και η αναλογική κατανομή μπορούν να υλοποιηθούν εύκολα σε ένα κατανεμημένο περιβάλλον Ομοιόμορφη σταθερός αριθμός αντιγράφων για κάθε αντικείμενο Αναλογική Ανάλογος του αριθμού ερωτήσεων Πρόβλημα: Δεν υπάρχει προφανής τρόπος για την κατανομή τετραγωνικής ρίζας Ευριστική προσέγγιση Μετά από αναζήτηση ενός αντικειμένου i δημιουργούμε έναν αριθμό αντιγράφων που είναι ανάλογος ως προς τον αριθμό τον κόμβων που ερωτήθηκαν.
59 Πρακτικοί αλγόριθμοι Πρόβλημα: Ο αριθμός των κόμβων που ερωτήθηκαν δεν είναι γνωστός Προσεγγίσεις Ιδιοκτήτη (Owner replication): Μόνο ο κόμβος που ξεκίνησε την αναζήτηση δημιουργεί αντίγραφο Μονοπατιού (Path replication): Δημιουργείται αντίγραφο κατά μήκος αναζητητή κόμβου που βρέθηκε το αντικείμενο Pull then push
60 Μέθοδος pull then push Στόχος: Η δημιουργία αντιγράφων που είναι ανάλογα των κόμβων που ερωτήθηκαν κατά την αναζήτηση (pull) Προσέγγιση Έστω ότι κατά την αναζήτηση το αντικείμενο βρέθηκε σε βάθος t Αμέσως μετά την αναζήτηση pull, κάνουμε push με TTL = t. Οι κόμβοι που λαμβάνουν το μήνυμα push δημιουργούν αντίγραφα με πιθανότητα P replicate
61 Πειραματικά αποτελέσματα
Ενημέρωση αντιγράφων
63 Ενημέρωση αντιγράφων Ο κόμβος που δημοσίευσε για πρώτη φορά το αντικείμενο θεωρείται ιδιοκτήτης του. Υπάρχει ήδη ένας αριθμός αντιγράφων Πρόβλημα: Κάθε φορά που ο ιδιοκτήτης δημοσιεύσει μια νεότερη έκδοση του αντικειμένου, όλα τα αντίγραφα πρέπει να ενημερωθούν
64 Push Οι κόμβοι που θα λάβουν το μήνυμα μπορούν Να ακυρώσουν το αντίγραφό τους (invalidate) Να επικοινωνήσουν με τον αρχικό κόμβο ώστε να ενημερώσουν την έκδοσή τους Push Όταν ο ιδιοκτήτης δημοσιεύσει μια νέα έκδοση του αντικειμένου κάνει push στο δίκτυο την πληροφορία αυτή
65 Pull Ζήτημα: Οι κόμβοι δεν γνωρίζουν αν το τοπικό αντίγραφο που χρησιμοποιούν χρειάζεται ενημέρωση Πρέπει να κάνουν περιοδικά pull ώστε να ανακαλύψουν αν υπάρχει κάποια νεότερη έκδοση
66 Χρόνος μεταξύ δυο pull Ο χρόνος TTP για το επόμενο pull (Time To Pull) βασίζεται σε παλιότερα στατιστικά Προσαρμογή TTP Αρχικά όλοι οι κόμβοι κάνουν pull με την ίδια συχνότητα Αν μεταξύ δυο διαδοχικών pull δεν βρεθεί νεότερη έκδοση αυξάνουμε το TTP: Αν μεταξύ δύο διαδοχικών pull βρεθεί νεότερη έκδοση μειώνεται το TTP:
67 Βελτίωση: push/pull-push Αν τα αντίγραφα δημιουργήθηκαν με την τεχνική pull then push O κόμβος που προκάλεσε το push έχει στην γειτονιά του αρκετά αντίγραφα Έτσι, όταν ο κόμβος αυτός λάβει μια ενημέρωση μέσω ενός περιοδικού pull Θα πρέπει να προωθήσει την ενημέρωση αυτή στην γειτονιά του Συνολικά Όταν ο ιδιοκτήτης κάνει αλλαγές push Οι κόμβοι κάνουν περιοδικό pull Επιπρόσθετα: Αν ένας κόμβος είχε δημιουργήσει παλιότερα αντίγραφα ενός αντικειμένου και λάβει μια ενημέρωση του κάνει push.
68 Πειραματικά αποτελέσματα
69 Συμπεράσματα Εξετάσαμε το πρόβλημα των ενημερώσεων της cache σε ένα δίκτυο από κινητούς πράκτορες Kάθε πράκτορας διατηρεί cache Μετακινήσεις μη έγκυρες εγγραφές Προτείναμε κάποιες μεθόδους ενημέρωσης που συνδυάζουν Τεχνική pull ξεκινά από τον agent που θέλει να ενημερώσει κάποια δική του εγγραφή Τεχνική push ξεκινά από τον agent που μετακινείται Παραλλαγές push/pull Snooping directories Inverted cache push/pull Τα πειραματικά αποτελέσματα υποδεικνύουν Κατάλογοι snooping Ίδιο ποσοστό ενημέρωσης με απλό push/pull αλλά με πολύ λιγότερα μηνύματα Inverted cache Ελάχιστο φόρτο μηνυμάτων για κάθε μετακίνηση Μη κατάλληλη όταν έχουμε πολλές αλλαγές στις cache Δεν μπορεί να εφαρμοστεί σε ασταθές και αναξιόπιστο περιβάλλον
70 Συμπεράσματα Εξετάσαμε το πρόβλημα δημιουργίας αντιγράφων σε ένα σύστημα P 2 P Βέλτιστο Αριθμός αντιγράφων ανάλογος της τετραγωνικής ρίζας των ερωτήσεων Προσέγγιση Δημιουργία αντιγράφων ανάλογα του αριθμού κόμβων που ερωτήθηκαν Προτείναμε την μέθοδο pull then push Αμέσως μετά από μια αναζήτηση γίνεται push στο δίκτυο με ίδιο TTL ώστε να κατασκευαστούν τα αντίγραφα Τα πειραματικά αποτελέσματα υποδεικνύουν ότι η προτεινόμενη μέθοδος προσεγγίζει κατά πολύ την επιθυμητή κατανομή
71 Συμπεράσματα Εξετάσαμε το πρόβλημα της ενημέρωσης των αντιγράφων Όταν ο ιδιοκτήτης αντικειμένου δημοσιεύσει νεότερη έκδοση τα αντίγραφα πρέπει να ενημερωθούν Εφαρμογή μεθόδου push με περιοδικό pull Ο χρόνος μεταξύ δυο pull προσαρμόζεται δυναμικά Βελτίωση όταν έχουμε αντίγραφα που έχουν φτιαχτεί με την τεχνική pull then push Αμέσως μετά μια επιτυχημένη ενημέρωση γίνεται push Τα πειραματικά αποτελέσματα υποδεικνύουν ότι η μέθοδοι push-pull μπορούν να εφαρμοστούν και για την ενημέρωση αντιγράφων
72 Μελλοντική δουλειά Εφαρμογή σε ασύρματα ad-hoc δίκτυα Ανακάλυψη υπηρεσιών Δρομολόγηση Εφαρμογή των μεθόδων push/pull σε άλλους τομείς Τι μπορεί να θεωρηθεί μετακίνηση Τι μπορεί να θεωρηθεί ενημέρωση Εύρεση νέων αλγορίθμων πλημμύρας για push και pull Εύρεση βέλτιστων παραμέτρων