Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer
-
Upload
awentia-jackson -
Category
Documents
-
view
25 -
download
0
description
Transcript of Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer
Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer
Λεοντιάδης Ηλίας
Πανεπιστήμιο Ιωαννίνων
Τμήμα πληροφορικής
2
Δομή
Επισκόπηση δικτύων peer to peer
Πράκτορες και συστήματα πολλαπλών πρακτόρων Μοντέλο distributed cache Ανακάλυψη υπηρεσιών Κινητικότητα Ενημερώσεις (μέθοδοι push/pull και παραλλαγές) Πειραματικά αποτελέσματα
Αντίγραφα (Replication) Δημιουργία αντιγράφων Ενημέρωση αντιγράφων
3
Συστήματα peer-to-peer (P2P)
Κεντρικός server
client peer
Αποκέντρωση Οι peers είναι ομότιμοι Διαμοιρασμός πόρων/ υπηρεσιών Άμεση συνεργασία (peer to peer) Αυτο-οργάνωση και αυτονομία Λειτουργία σε ασταθές και αναξιόπιστο περιβάλλον
4
Εφαρμογές δικτύων peer to peer
Συστήματα ανταλλαγής αρχείων Napster, Gnutella, Kazaa, BitTorrent, LimeWire, Freenet, E-donkey
Κατανεμημένοι υπολογισμοί (distributed computing) SETI@Home, United Devices,Entropia, GPU
Επικοινωνία ICQ, Net meeting
Συνεργασία
Ασφάλεια
Ιδιωτικότητα (privacy) Freenet
Έξυπνες συσκευές Δίκτυα από ανιχνευτές Δίκτυα αυτοκινήτων
5
Κεντρικόςserver
peers
Τύποι συστημάτων P2PΚεντρικοποιημένα
6peers
Broker peer
Τύποι συστημάτων P2PΣυστήματα μεσίτη
7
Τύποι συστημάτων P2PΠλήρως αποκεντρωμένα
8
Συνδέσεις super peers (αναζητήσεις)
Απ’ ευθείας συνδέσεις των client (δεδομένα)
Τύποι συστημάτων P2PΜερικώς αποκεντρωμένα
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
a2
a4
a1
a6
a3
a5
R4: A2 (IP)
R8: A6 (IP) R1
R2
R3
R4
R7
R1
R8
R5
R2
R1
R9
R6
Cache του a1
14
Αναζήτηση υπηρεσιών Μέθοδοι αναζήτησης που βασίζονται στην τεχνική flooding
Απλό flood Κάθε κόμβος που λαμβάνει το μήνυμα αναζήτησης
Εξετάζει αν έχει την απάντηση Το προωθεί σε όλους τους γείτονες
Μέχρι να φτάσουμε έναν μέγιστο αριθμό βημάτων (TTL)
Teeming Προωθεί το μήνυμα σε ένα τυχαίο υποσύνολο των γειτόνων Σταθερή πιθανότητα Φ να επιλεχθεί κάποιος γείτονας
Teeming με decay Παρόμοιο με το teeming, μόνο που το υποσύνολο μικραίνει καθώς αυξάνεται το βάθος αναζήτησης Φ = (1-d)level Το d < 1 ονομάζεται παράμετρος decay
K-Random paths (K-walkers) Μόνο ο πρώτος agent προωθεί το μήνυμα σε K τυχαίους γείτονες Όλοι οι υπόλοιποι προωθούν το μήνυμα σε έναν μόνο τυχαίο γείτονα
Απλό flood Teeming 2-Random paths
15
Το πρόβλημα: Το δίκτυο των cache και κινητικότητα
Κινητικότητα Οι agents μπορεί να μετακινηθούν
π.χ. να αλλάξουν IP Οι υπηρεσίες μπορεί να μετακινηθούν
από έναν agent σε κάποιον άλλο
Όσοι είχαν στην cache υπηρεσίες του μη-έγκυρες εγγραφές (invalid cache entries)
Ουσιαστικά, κανείς δεν γνωρίζει την νέα του θέση, αφού κάνεις δεν ενημερώθηκε για την μετακίνηση
a2
a4
a1
a6
a3
a5
a3
Παλιά θέση
Νέα θέση
Όταν ένας agent μετακινείται δημιουργείται ασυνέπεια στις εγγραφές cache των άλλων
16
Πολιτικές ενημέρωσης
Από την στιγμή που οι εγγραφές στην cache ορίζουν το δίκτυο P2P, με το να ενημερώνουμε την 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
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 χρειάζονται την ενημέρωση
Απλό pushO agent που μετακινείται πλημμυρίζει τυφλά το δίκτυο με μηνύματα που περιέχουν την νέα του θέση έτσι ώστε να ενημερώσει όσο το δυνατό περισσότερους agents.
Απαιτείται ένα ευρύ push ώστε να ενημερώσουμε επαρκή αριθμό από agents Αλγόριθμος teeming with decay Μεγάλο TTL και μικρή παράμετρος decay
33
Απλό push/pullPull Ένας 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-a1 moved to …
Snooping dir-a1 moved to …
37
Παράδειγμα push με καταλόγους snooping
a1
Snooping dir-a1 moved to …
Snooping dir-a1 moved to …
Snooping dir-a1 moved to …
Snooping dir-a1 moved to …
Snooping dir-a1 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 (προσθήκη διαγραφή κτλ.) απαιτούν ανταλλαγή μηνυμάτων
A B C A
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
0
20
40
60
80
100
120
0 20 40 60 80 100 120 140 160 180 200 220 240
turn
% o
f va
lid c
ach
e
narrowmediumwidefull
decay TTL
narrow 0.4 4
medium 0.3 5
wide 0.2 5
full 0 5
47
Απλό push/pullΕύρος του push – αριθμός μηνυμάτων
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
full wide medium narrow
mes
sag
es
pull
push
48
Push with snooping directories and periodic pull Εύρος του push – ποσοστό έγκυρων εγγραφών cache
0
20
40
60
80
100
120
0 20 40 60 80 100 120 140 160 180 200 220 240
turn
% o
f va
lid c
ach
e
narrowmediumwidefull
49
Push with snooping directoriesand periodic pull Εύρος του push – αριθμός μηνυμάτων
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
full wide medium narrow
mes
sag
es
pull
push
50
Απλό push/pull vs. snooping
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
full wide medium narrow
messag
es
pull
push
0
20
40
60
80
100
120
0 20 40 60 80 100 120 140 160 180 200 220 240
turn
% o
f va
lid c
ach
e
narrowmediumwidefull
0
20
40
60
80
100
120
0 20 40 60 80 100 120 140 160 180 200 220 240
turn
% o
f va
lid c
ach
e
narrowmediumwidefull
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
full wide medium narrow
messag
es
pull
push
51
Inverted cache push/pull με leasing Διάρκεια του lease - ποσοστό έγκυρων εγγραφών cache
0
20
40
60
80
100
120
0 20 40 60 80 100 120 140 160 180 200 220 240
turn
% o
f v
alid
ca
che
smallmediumlargevery large
Lease time
small 5
medium 25
large 50
Very large 100
52
Inverted cache push/pullΣυχνότητα αλλαγών στην cache – φόρτος μηνυμάτων
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
high medium low
Cache replacement frequency
me
ss
ag
es
replacementpullpush
53
Σύγκριση μεθόδων Απλό push/pull
Κατάλληλη όταν δεν επιθυμούμε να χρησιμοποιήσουμε παραπάνω μνήμη για λόγους ενημέρωσης
Μπορεί να χρησιμοποιηθεί σε ασταθές και αναξιόπιστο περιβάλλον Έχει ικανοποιητικά αποτελέσματα όταν χρησιμοποιείται ευρύ flooding
Μεγάλος φόρτος μηνυμάτων
Push με καταλόγους snooping και περιοδικά pull Ίδια ποιότητα ενημέρωσης με πολύ μικρότερο αριθμό μηνυμάτων
Απαιτεί επιπρόσθετη μνήμη
Inverted cache με leasing Αμελητέος φόρτος μηνυμάτων για κάθε μετακίνηση Άμεση ενημέρωση (1-hop)
Μη κατάλληλη όταν έχουμε πολλές αλλαγές στην cache και λίγες μετακινήσεις Το μέγεθος της inverted cache μπορεί να γίνει μεγάλο για δημοφιλείς agent Μη κατάλληλη σε ασταθή και αναξιόπιστα συστήματα
Οι πράκτορες βασίζονται ο ένας στον άλλο για να ενημερωθούν Πρέπει να είναι online συνεχώς για να διατηρούν τους καταλόγους inverted cache
Δημιουργία αντιγράφων
55
Αντίγραφα
Σε ένα δίκτυο P2P υπάρχουν πολλαπλά αντίγραφα του ίδιου αντικειμένου τα οποία προσφέρονται από διαφορετικούς κόμβους
Πολιτικές δημιουργίας αντιγράφων Μόνο κόμβοι που χρησιμοποιούν το αντικείμενο
δημιουργούν αντίγραφο (Gnutella) Μπορεί να δημιουργηθούν αντίγραφα σε ένα κόμβο
ακόμα και αν δεν το ζήτησε (Freenet)
56
Αριθμός αντιγράφωνΠρόβλημα:
Πόσα αντίγραφα ενός αντικειμένου πρέπει να δημιουργηθούν ώστε το κόστος των αναζητήσεων να βελτιστοποιηθεί
Έχουμε n κόμβους και m αντικείμενα ri αντίγραφα του αντικειμένου i
Κάθε αντικείμενο αναζητείται με σχετικό ρυθμό qi έτσι ώστε
Υποθέτουμε ότι υπάρχει μέγιστος αριθμός αντιγράφων R1i
i
q
Οπότε η βασική ερώτηση είναι πως κατανέμουμε τα R αντίγραφα στα m αντικείμενα
57
Πολιτικές δημιουργίας αντιγράφων
ΟμοιόμορφηΊδιος αριθμός αντιγράφων για όλα τα αντικείμενα:
ΑναλογικήΑριθμός αντιγράφων ενός αντικειμένου i ανάλογος του ρυθμού ερωτήσεων qi:
Η ομοιόμορφη και αναλογική κατανομή έχουν το ίδιο μέσο μέγεθος αναζήτησης
ΕρώτημαΥπάρχει κατανομή που να ελαχιστοποιεί το μέσο μέγεθος αναζήτησης
Κατανομή τετραγωνικής ρίζαςΤα αντίγραφα ενός αντικειμένου i είναι ανάλογα ως προς την τετραγωνική ρίζα του ρυθμού ερωτήσεων qi
i
Rr
m
i ir Rq
i ir qi
i
R
q
όπου
58
Επίτευξη κατανομής τετραγωνικής ρίζας Η ομοιόμορφη και η αναλογική κατανομή μπορούν να υλοποιηθούν εύκολα
σε ένα κατανεμημένο περιβάλλον Ομοιόμορφη σταθερός αριθμός αντιγράφων για κάθε αντικείμενο Αναλογική Ανάλογος του αριθμού ερωτήσεων
Πρόβλημα:Δεν υπάρχει προφανής τρόπος για την κατανομή τετραγωνικής ρίζας
Ευριστική προσέγγισηΜετά από αναζήτηση ενός αντικειμένου i δημιουργούμε έναν αριθμό αντιγράφων που είναι ανάλογος ως προς τον αριθμό τον κόμβων που ερωτήθηκαν.
59
Πρακτικοί αλγόριθμοι
Πρόβλημα:Ο αριθμός των κόμβων που ερωτήθηκαν δεν είναι γνωστός
Προσεγγίσεις Ιδιοκτήτη (Owner replication):
Μόνο ο κόμβος που ξεκίνησε την αναζήτηση δημιουργεί αντίγραφο
Μονοπατιού (Path replication): Δημιουργείται αντίγραφο κατά μήκος αναζητητή κόμβου που βρέθηκε το αντικείμενο
Pull then push
60
Μέθοδος pull then push
Στόχος: Η δημιουργία αντιγράφων που είναι ανάλογα των κόμβων που ερωτήθηκαν κατά την αναζήτηση (pull)
Προσέγγιση Έστω ότι κατά την αναζήτηση το αντικείμενο βρέθηκε σε βάθος t Αμέσως μετά την αναζήτηση pull, κάνουμε push με TTL = t. Οι κόμβοι που λαμβάνουν το μήνυμα push δημιουργούν
αντίγραφα με πιθανότητα Preplicate
61
Πειραματικά αποτελέσματα
0
0.01
0.02
0.03
0.04
0.05
0.06
Συχνότητα ερωτήσεων
Σχ
ετικ
ός
αρ
ιθμ
ός
αν
τιγ
ρά
φω
ν r
/R
Ομοιόμορφη
Ιδιοκτήτη
Μονοπατιού
pull then push
Θεωρητικό βέλτιστο
Ενημέρωση αντιγράφων
63
Ενημέρωση αντιγράφων
Ο κόμβος που δημοσίευσε για πρώτη φορά το αντικείμενο θεωρείται ιδιοκτήτης του.
Υπάρχει ήδη ένας αριθμός αντιγράφων
Πρόβλημα:
Κάθε φορά που ο ιδιοκτήτης δημοσιεύσει μια νεότερη έκδοση του αντικειμένου, όλα τα αντίγραφα πρέπει να ενημερωθούν
64
Push
Οι κόμβοι που θα λάβουν το μήνυμα μπορούν Να ακυρώσουν το αντίγραφό τους (invalidate) Να επικοινωνήσουν με τον αρχικό κόμβο ώστε να ενημερώσουν
την έκδοσή τους
PushΌταν ο ιδιοκτήτης δημοσιεύσει μια νέα έκδοση του αντικειμένου κάνει push στο δίκτυο την πληροφορία αυτή
65
Pull
Ζήτημα:Οι κόμβοι δεν γνωρίζουν αν το τοπικό αντίγραφο που χρησιμοποιούν χρειάζεται ενημέρωση
Πρέπει να κάνουν περιοδικά pull ώστε να ανακαλύψουν αν υπάρχει κάποια νεότερη έκδοση
66
Χρόνος μεταξύ δυο pull
Ο χρόνος TTP για το επόμενο pull (Time To Pull) βασίζεται σε παλιότερα στατιστικά
Προσαρμογή TTP Αρχικά όλοι οι κόμβοι κάνουν pull με την ίδια συχνότητα
Αν μεταξύ δυο διαδοχικών pull δεν βρεθεί νεότερη έκδοση αυξάνουμε το TTP:
Αν μεταξύ δύο διαδοχικών pull βρεθεί νεότερη έκδοση μειώνεται το TTP:
(1 )
TTPTTP TTP
V V a
TTP TTP C
67
Βελτίωση: push/pull-push
Αν τα αντίγραφα δημιουργήθηκαν με την τεχνική pull then push O κόμβος που προκάλεσε το push έχει στην γειτονιά του αρκετά αντίγραφα
Έτσι, όταν ο κόμβος αυτός λάβει μια ενημέρωση μέσω ενός περιοδικού pull
Θα πρέπει να προωθήσει την ενημέρωση αυτή στην γειτονιά του
Συνολικά Όταν ο ιδιοκτήτης κάνει αλλαγές push Οι κόμβοι κάνουν περιοδικό pull Επιπρόσθετα: Αν ένας κόμβος είχε δημιουργήσει παλιότερα αντίγραφα ενός
αντικειμένου και λάβει μια ενημέρωση του κάνει push.
68
Πειραματικά αποτελέσματα
0
2000
4000
6000
8000
10000
12000
14000
push/pull push/pull-pushσε τυχαίααντίγραφα
push/pull-pushσε αντίγραφα
πουδημιουργήθηκανμε push then pull
Αρ
ιθμ
ός
μη
νυμ
άτω
ν
pull
push
0
20
40
60
80
100
120
0 20 40 60 80 100 120 140 160 180 200 220 240
Βήμα εξομοίωσης
% έ
γκυ
ρη
ς c
ach
e
push/pull
push/pull-push σε τυχαία αντίγραφα
push/pull-push σε αντίγραφα πουδημιουργήθηκαν με push then pull
69
Συμπεράσματα Εξετάσαμε το πρόβλημα των ενημερώσεων της cache σε ένα δίκτυο από κινητούς
πράκτορες Kάθε πράκτορας διατηρεί cache Μετακινήσεις μη έγκυρες εγγραφές
Προτείναμε κάποιες μεθόδους ενημέρωσης που συνδυάζουν Τεχνική pull
ξεκινά από τον agent που θέλει να ενημερώσει κάποια δική του εγγραφή Τεχνική push
ξεκινά από τον agent που μετακινείται
Παραλλαγές push/pull Snooping directories Inverted cache push/pull
Τα πειραματικά αποτελέσματα υποδεικνύουν Κατάλογοι snooping
Ίδιο ποσοστό ενημέρωσης με απλό push/pull αλλά με πολύ λιγότερα μηνύματα Inverted cache
Ελάχιστο φόρτο μηνυμάτων για κάθε μετακίνηση Μη κατάλληλη όταν έχουμε πολλές αλλαγές στις cache Δεν μπορεί να εφαρμοστεί σε ασταθές και αναξιόπιστο περιβάλλον
70
Συμπεράσματα
Εξετάσαμε το πρόβλημα δημιουργίας αντιγράφων σε ένα σύστημα P2P
Βέλτιστο Αριθμός αντιγράφων ανάλογος της τετραγωνικής ρίζας των ερωτήσεων
Προσέγγιση Δημιουργία αντιγράφων ανάλογα του αριθμού κόμβων που ερωτήθηκαν
Προτείναμε την μέθοδο pull then push Αμέσως μετά από μια αναζήτηση γίνεται push στο δίκτυο με ίδιο TTL ώστε να
κατασκευαστούν τα αντίγραφα
Τα πειραματικά αποτελέσματα υποδεικνύουν ότι η προτεινόμενη μέθοδος προσεγγίζει κατά πολύ την επιθυμητή κατανομή
71
Συμπεράσματα
Εξετάσαμε το πρόβλημα της ενημέρωσης των αντιγράφων
Όταν ο ιδιοκτήτης αντικειμένου δημοσιεύσει νεότερη έκδοση τα αντίγραφα πρέπει να ενημερωθούν
Εφαρμογή μεθόδου push με περιοδικό pull
Ο χρόνος μεταξύ δυο pull προσαρμόζεται δυναμικά
Βελτίωση όταν έχουμε αντίγραφα που έχουν φτιαχτεί με την τεχνική pull then push
Αμέσως μετά μια επιτυχημένη ενημέρωση γίνεται push
Τα πειραματικά αποτελέσματα υποδεικνύουν ότι η μέθοδοι push-pull μπορούν να εφαρμοστούν και για την ενημέρωση αντιγράφων
72
Μελλοντική δουλειά
Εφαρμογή σε ασύρματα ad-hoc δίκτυα Ανακάλυψη υπηρεσιών Δρομολόγηση
Εφαρμογή των μεθόδων push/pull σε άλλους τομείς Τι μπορεί να θεωρηθεί μετακίνηση Τι μπορεί να θεωρηθεί ενημέρωση
Εύρεση νέων αλγορίθμων πλημμύρας για push και pull Εύρεση βέλτιστων παραμέτρων