Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer

71
Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer Λεοντιάδης Ηλίας Πανεπιστήμιο Ιωαννίνων Τμήμα πληροφορικής

description

Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer. Λεοντιάδης Ηλίας Πανεπιστήμιο Ιωαννίνων Τμήμα πληροφορικής. Δομή. Επισκόπηση δικτύων peer to peer Πράκτορες και συστήματα πολλαπλών πρακτόρων Μοντέλο distributed cache Ανακάλυψη υπηρεσιών Κινητικότητα - PowerPoint PPT Presentation

Transcript of Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer

Page 1: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer

Λεοντιάδης Ηλίας

Πανεπιστήμιο Ιωαννίνων

Τμήμα πληροφορικής

Page 2: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

2

Δομή

Επισκόπηση δικτύων peer to peer

Πράκτορες και συστήματα πολλαπλών πρακτόρων Μοντέλο distributed cache Ανακάλυψη υπηρεσιών Κινητικότητα Ενημερώσεις (μέθοδοι push/pull και παραλλαγές) Πειραματικά αποτελέσματα

Αντίγραφα (Replication) Δημιουργία αντιγράφων Ενημέρωση αντιγράφων

Page 3: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

3

Συστήματα peer-to-peer (P2P)

Κεντρικός server

client peer

Αποκέντρωση Οι peers είναι ομότιμοι Διαμοιρασμός πόρων/ υπηρεσιών Άμεση συνεργασία (peer to peer) Αυτο-οργάνωση και αυτονομία Λειτουργία σε ασταθές και αναξιόπιστο περιβάλλον

Page 4: Κινητικότητα και ενημερώσεις σε δίκτυα   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

Έξυπνες συσκευές Δίκτυα από ανιχνευτές Δίκτυα αυτοκινήτων

Page 5: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

5

Κεντρικόςserver

peers

Τύποι συστημάτων P2PΚεντρικοποιημένα

Page 6: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

6peers

Broker peer

Τύποι συστημάτων P2PΣυστήματα μεσίτη

Page 7: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

7

Τύποι συστημάτων P2PΠλήρως αποκεντρωμένα

Page 8: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

8

Συνδέσεις super peers (αναζητήσεις)

Απ’ ευθείας συνδέσεις των client (δεδομένα)

Τύποι συστημάτων P2PΜερικώς αποκεντρωμένα

Page 9: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

9

Δομή δικτύων Αδόμητα (unstructured)

Η τοποθέτηση της πληροφορίας δεν έχει καμία σχέση με την τοπολογία του δικτύου Αναζήτηση τύπου flooding Παραδείγματα: Gnutella

Δομημένα (structured) Η τοπολογία είναι ελεγχόμενη και η πληροφορία τοποθετείται σε συγκεκριμένες θέσεις του

δικτύου Υπάρχει δρομολόγηση αναζητήσεων. Παραδείγματα: CAN, Chord, Tapestry κτλ

Ελαφρώς δομημένα Ανάμεσα στα προηγούμενα δύο Οι θέσεις τον πόρων επηρεάζεται από κάποια δρομολόγηση αλλά δεν καθορίζεται από

αυτήν Παραδείγματα: Freenet

Page 10: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

Συστήματα πολλαπλών πρακτόρων

Page 11: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

11

Multi-agent systems Multi-Agent system (MAS)

Δίκτυο από software agents Υπολογιστικοί πόροι και υπηρεσίες διαμοιράζονται σε όλο το δίκτυο Οι agents συνεργάζονται για να εκπληρώσουν έναν συγκεκριμένο στόχο

Για να το κάνουν αυτό, χρειάζονται υπηρεσίες που παρέχονται από άλλους agents

Open MAS Δεν υπάρχει σφαιρική γνώση για το τι υπάρχει στο σύστημα Έτσι, οι agents δεν γνωρίζουν ποιος agent προσφέρει ποια υπηρεσία

Page 12: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

12

Ανακάλυψη υπηρεσιών σε open MAS

Προσεγγίσεις: Central directory

Υπάρχει ένας agent που διατηρεί έναν κεντρικό κατάλογο που αντιστοιχεί υπηρεσίες σε agents

Middle agents Υπάρχουν μερικοί agents (middle agents) που κρατούν τμήμα αυτού του καταλόγου

Distributed cache model: Κάθε agent διατηρεί τμήμα του καταλόγου

Απόδοση Ανοχή σε σφάλματα

Ζήτημα:

Πώς ανακαλύπτουμε έναν agent που προσφέρει μια συγκεκριμένη υπηρεσία

Page 13: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 14: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 15: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

15

Το πρόβλημα: Το δίκτυο των cache και κινητικότητα

Κινητικότητα Οι agents μπορεί να μετακινηθούν

π.χ. να αλλάξουν IP Οι υπηρεσίες μπορεί να μετακινηθούν

από έναν agent σε κάποιον άλλο

Όσοι είχαν στην cache υπηρεσίες του μη-έγκυρες εγγραφές (invalid cache entries)

Ουσιαστικά, κανείς δεν γνωρίζει την νέα του θέση, αφού κάνεις δεν ενημερώθηκε για την μετακίνηση

a2

a4

a1

a6

a3

a5

a3

Παλιά θέση

Νέα θέση

Όταν ένας agent μετακινείται δημιουργείται ασυνέπεια στις εγγραφές cache των άλλων

Page 16: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

16

Πολιτικές ενημέρωσης

Από την στιγμή που οι εγγραφές στην cache ορίζουν το δίκτυο P2P, με το να ενημερώνουμε την cache, ενημερώνουμε το ίδιο το δίκτυο.

Προτείνουμε πολιτικές που βασίζονται σε δύο βασικές μεθόδους: Pull

Ξεκινά από agents που επιθυμούν να ανανεώσουν την cache τους Push

Ξεκινά από agents που μετακινούνται

Μελετήσαμε το πρόβλημα της ενημέρωσης των cache σε ένα δίκτυο από κινητούς πράκτορες

Page 17: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

17

Μέθοδος pull

Οποιοσδήποτε αλγόριθμος αναζήτησης που βασίζεται στο flooding μπορεί να χρησιμοποιηθεί Απλό flood Teeming with decay K-Random paths

Pull Αναζήτηση του δικτύου για κάποιον agent που γνωρίζει νεότερη θέση

Ξεκινά από κάποιον agent που επιθυμεί να ανανεώσει κάποια εγγραφή περιοδικά on demand

Page 18: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

18

Παράδειγμα pull

Παλιά θέση

Νέα θέση

Agent που γνωρίζει την νέα θέση

Agent που κάνει pull

Page 19: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

19

Παράδειγμα pull

Page 20: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

20

Παράδειγμα pull

Page 21: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

21

Παράδειγμα pull

Page 22: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

22

Παράδειγμα pull

Απευθείας απάντηση

Page 23: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

23

Παράδειγμα pull

Page 24: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

25

Μέθοδος push Το pull δεν μπορεί να δουλέψει από μόνο του

Όταν κάποιος agent μετακινείται πρέπει να ενημερώσει τουλάχιστον έναν ακόμα για την νέα του θέση

PushΌταν ένας agent μετακινείται προωθεί στο δίκτυο (κάνει push) την πληροφορία που σχετίζεται με την νέα του θέση.

Page 25: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

26

Παράδειγμα push

Νέα θέση

Χρειάζεται ενημέρωση

Χρειάζεται ενημέρωση

Χρειάζεται ενημέρωση

Παλιά θέση

Page 26: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

27

Παράδειγμα push

Page 27: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

28

Παράδειγμα push

Page 28: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

29

Παράδειγμα push

Page 29: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

30

Παράδειγμα push

Page 30: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

31

Προτεινόμενες πολιτικές Απλό push/pull

Συνδυασμός των αλγορίθμων push / pull με χρήση των κατάλληλων αλγορίθμων flooding

Push με καταλόγους snooping και περιοδικά pulls Νέα παραλλαγή του push όπου οι κόμβοι που «μαθαίνουν» για μία μετακίνηση κρατούν την πληροφορία αυτή σε κάποιον κατάλογο

Inverted cache με leasingΜία «ενημερωμένη» έκδοση του αλγορίθμου push που συνδυάσαμε με την ιδέα leasing

Page 31: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

32

Απλό push/pull

Δεν υπάρχει καμία πληροφορία για το ποιοι agents χρειάζονται την ενημέρωση

Απλό pushO agent που μετακινείται πλημμυρίζει τυφλά το δίκτυο με μηνύματα που περιέχουν την νέα του θέση έτσι ώστε να ενημερώσει όσο το δυνατό περισσότερους agents.

Απαιτείται ένα ευρύ push ώστε να ενημερώσουμε επαρκή αριθμό από agents Αλγόριθμος teeming with decay Μεγάλο TTL και μικρή παράμετρος decay

Page 32: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

33

Απλό push/pullPull Ένας agent μπορεί να μην λάβει την ενημέρωση:

Εκτός σύνδεσης την ώρα του push TTL, decay Μη συνεκτικό δίκτυο

Όταν ο agent αντιληφθεί μη έγκυρη εγγραφή στην cache του on-demand pull

Page 33: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

34

Push με καταλόγους snooping και περιοδικό pull

Ουσιαστικά: Όταν λάβει κάποιο μήνυμα push, αποθηκεύει την πληροφορία στον δικό του κατάλογο

snooping Το κάνει αυτό ακόμα και αν το μήνυμα δεν περιέχει πληροφορία για κάποιον agent που τον

ενδιαφέρει Κρατά την πληροφορία αυτή για περιορισμένο χρονικό διάστημα (υπάρχει expiration time)

Επομένως, κάθε κόμβος θυμάται για λίγο τις νέες θέσεις όλων των agent για τους οποίους έλαβε μήνυμα push.

Κατάλογοι snoopingΚάθε agent παρακολουθεί το δίκτυο και κρατά έναν κατάλογο με τους πρόσφατα μετακινηθέντες κόμβους για τους οποίους ενημερώθηκε.

Αυτός ο κατάλογος ονομάζεται snooping directory.

Page 34: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

35

Παράδειγμα push με καταλόγους snooping

Page 35: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

36

Παράδειγμα push με καταλόγους snooping

Snooping dir-a1 moved to …

Snooping dir-a1 moved to …

Page 36: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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 …

Page 37: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

38

Περιοδικά pulls

Όλοι οι agent κάνουν περιοδικά pull

Περιοδικά, μαθαίνουν αν κάποιος agent που τους ενδιαφέρει έχει μετακινηθεί πρόσφατα ρωτώντας τους γείτονες τους.

Γιατί περιοδικά pull; Για να εκμεταλλευτούμε τα snooping directories:

Αν κάνουμε pull πολύ αργά οι παλιές μετακινήσεις θα έχουν σβηστεί από τους καταλόγους snooping των γειτόνων.

Ο χρόνος μεταξύ δύο διαδοχικών pull < expiration time

Page 38: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

39

Push με καταλόγους snooping και περιοδικά pull: Συζήτηση

Πλέον, σε κάθε μετακίνηση δεν χρειάζεται να ενημερώσουμε όσο το δυνατό περισσότερους agents άλλα μερικούς

Η μέθοδος αυτή μας επιτρέπει να χρησιμοποιήσουμε λιγότερο ευρύ push

Για παράδειγμα:Αν υποθέσουμε ότι όλοι οι agent κάνουν περιοδικό pull από την 2-hop γειτονιά τους:

Όσοι κόμβοι απέχουν 2-hop από τους agents που ενημερώθηκαν με push θα λάβουν την ενημέρωση.

Έτσι αρκεί να ενημερωθεί ένας μόνο κόμβος σε κάθε 2-hop γειτονιά

Προτιμούμε τον αλγόριθμο k-walkers Δημιουργούμε K-walkers Επιθυμούμε όλοι οι agents να απέχουν το πολύ 2-hop από τα μονοπάτια

τους.

Page 39: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

40

Push με καταλόγους snooping και περιοδικά pull

Page 40: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 41: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

42

Inverted cache push/pull

ΖήτημαΤο να φυλάσσουμε ολόκληρο τον κατάλογο της inverted cache μπορεί να

μην είναι πάντα επιθυμητό επειδή υπάρχουν δημοφιλείς agents.

Λύσεις Κρατάμε μόνο ένα μέρος του καταλόγου Συνδυασμός με την τεχνική leasing

Οι agents που δεν ενημερώθηκαν πρέπει να καταφύγουν σε on-demand pull.

Page 42: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

43

Inverted cache push/pull: Leasing Σε κάθε εγγραφή της cache ανατίθεται από τον ιδιοκτήτη της υπηρεσίας

χρόνος μίσθωσης (lease time)

Μετά την λήξη της μίσθωσης ο ιδιοκτήτης της υπηρεσίας μπορεί να σβήσει την εγγραφή από την inverted cache του χωρίς ενημερώσει ποτέ τον μισθωτή

Έτσι μπορούμε να ελέγξουμε το μέγεθος της inverted cache μέσω του χρόνου μίσθωσης Μικρότερος χρόνος μίσθωσης μικρότερες λίστες

Lease timeΤο χρονικό διάστημα κατά το οποίο ο ιδιοκτήτης της υπηρεσίας εγγυάται ότι θα ενημερώσει τον μισθωτή για την οποιαδήποτε μετακίνηση της.

Page 43: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

44

Πειραματικά αποτλέσματα Χρήση ενός εξομοιωτή

Παραγωγή τυχαίου γράφου Κάθε agent παρέχει έναν αριθμό από υπηρεσίες Υπάρχουν δημοφιλής και μη-δημοφιλείς υπηρεσίες Αρχικά όλοι οι πράκτορες έχουν έγκυρες εγγραφές στην cache

Η εξομοίωση τρέχει για έναν αριθμό από γύρους (turn based): Σε κάθε γύρο, ένας agent μπορεί να

Μετακινηθεί Να χρησιμοποιήσει μια υπηρεσία

Μπορεί να χρειαστεί on-demand push Να κάνει κάποιο περιοδικό pull (ανάλογα με τον αλγόριθμο) Να προσθέσει, σβήσει, αντικαταστήσει εγγραφές στην cache του.

Κρατάμε στατιστικά Μηνύματα push/pull Ποσοστό έγκυρων εγγραφών στην cache Μέσο μέγεθος καταλόγων (snooping, inverted cache…) Πόσοι agent μετακινήθηκαν σε κάθε βήμα μετά την μετακίνηση Πόσο γρήγορα βρίσκεται μια τυχαία υπηρεσία (βάθος αναζήτησης).

Page 44: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

45

Εξομοίωση

Στις εξομοιώσεις που θα παρουσιάσουμε Δίκτυο των 1000 agent 3000 υπηρεσίες 250 γύροι

Ενδιαφερόμαστε κυρίως για: Το ποσοστό των cache που παρέμεινε έγκυρο κατά την διάρκεια της

εξομοίωσης. Το κόστος μηνυμάτων του

Pull Push Αλλαγών στην cache

Την ταχύτητα ενημέρωσης Την ταχύτητα εύρεσης μιας τυχαίας υπηρεσίας

Page 45: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 46: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

47

Απλό push/pullΕύρος του push – αριθμός μηνυμάτων

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

full wide medium narrow

mes

sag

es

pull

push

Page 47: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 48: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 49: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 50: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 51: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 52: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

53

Σύγκριση μεθόδων Απλό push/pull

Κατάλληλη όταν δεν επιθυμούμε να χρησιμοποιήσουμε παραπάνω μνήμη για λόγους ενημέρωσης

Μπορεί να χρησιμοποιηθεί σε ασταθές και αναξιόπιστο περιβάλλον Έχει ικανοποιητικά αποτελέσματα όταν χρησιμοποιείται ευρύ flooding

Μεγάλος φόρτος μηνυμάτων

Push με καταλόγους snooping και περιοδικά pull Ίδια ποιότητα ενημέρωσης με πολύ μικρότερο αριθμό μηνυμάτων

Απαιτεί επιπρόσθετη μνήμη

Inverted cache με leasing Αμελητέος φόρτος μηνυμάτων για κάθε μετακίνηση Άμεση ενημέρωση (1-hop)

Μη κατάλληλη όταν έχουμε πολλές αλλαγές στην cache και λίγες μετακινήσεις Το μέγεθος της inverted cache μπορεί να γίνει μεγάλο για δημοφιλείς agent Μη κατάλληλη σε ασταθή και αναξιόπιστα συστήματα

Οι πράκτορες βασίζονται ο ένας στον άλλο για να ενημερωθούν Πρέπει να είναι online συνεχώς για να διατηρούν τους καταλόγους inverted cache

Page 53: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

Δημιουργία αντιγράφων

Page 54: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

55

Αντίγραφα

Σε ένα δίκτυο P2P υπάρχουν πολλαπλά αντίγραφα του ίδιου αντικειμένου τα οποία προσφέρονται από διαφορετικούς κόμβους

Πολιτικές δημιουργίας αντιγράφων Μόνο κόμβοι που χρησιμοποιούν το αντικείμενο

δημιουργούν αντίγραφο (Gnutella) Μπορεί να δημιουργηθούν αντίγραφα σε ένα κόμβο

ακόμα και αν δεν το ζήτησε (Freenet)

Page 55: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

56

Αριθμός αντιγράφωνΠρόβλημα:

Πόσα αντίγραφα ενός αντικειμένου πρέπει να δημιουργηθούν ώστε το κόστος των αναζητήσεων να βελτιστοποιηθεί

Έχουμε n κόμβους και m αντικείμενα ri αντίγραφα του αντικειμένου i

Κάθε αντικείμενο αναζητείται με σχετικό ρυθμό qi έτσι ώστε

Υποθέτουμε ότι υπάρχει μέγιστος αριθμός αντιγράφων R1i

i

q

Οπότε η βασική ερώτηση είναι πως κατανέμουμε τα R αντίγραφα στα m αντικείμενα

Page 56: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

57

Πολιτικές δημιουργίας αντιγράφων

ΟμοιόμορφηΊδιος αριθμός αντιγράφων για όλα τα αντικείμενα:

ΑναλογικήΑριθμός αντιγράφων ενός αντικειμένου i ανάλογος του ρυθμού ερωτήσεων qi:

Η ομοιόμορφη και αναλογική κατανομή έχουν το ίδιο μέσο μέγεθος αναζήτησης

ΕρώτημαΥπάρχει κατανομή που να ελαχιστοποιεί το μέσο μέγεθος αναζήτησης

Κατανομή τετραγωνικής ρίζαςΤα αντίγραφα ενός αντικειμένου i είναι ανάλογα ως προς την τετραγωνική ρίζα του ρυθμού ερωτήσεων qi

i

Rr

m

i ir Rq

i ir qi

i

R

q

όπου

Page 57: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

58

Επίτευξη κατανομής τετραγωνικής ρίζας Η ομοιόμορφη και η αναλογική κατανομή μπορούν να υλοποιηθούν εύκολα

σε ένα κατανεμημένο περιβάλλον Ομοιόμορφη σταθερός αριθμός αντιγράφων για κάθε αντικείμενο Αναλογική Ανάλογος του αριθμού ερωτήσεων

Πρόβλημα:Δεν υπάρχει προφανής τρόπος για την κατανομή τετραγωνικής ρίζας

Ευριστική προσέγγισηΜετά από αναζήτηση ενός αντικειμένου i δημιουργούμε έναν αριθμό αντιγράφων που είναι ανάλογος ως προς τον αριθμό τον κόμβων που ερωτήθηκαν.

Page 58: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

59

Πρακτικοί αλγόριθμοι

Πρόβλημα:Ο αριθμός των κόμβων που ερωτήθηκαν δεν είναι γνωστός

Προσεγγίσεις Ιδιοκτήτη (Owner replication):

Μόνο ο κόμβος που ξεκίνησε την αναζήτηση δημιουργεί αντίγραφο

Μονοπατιού (Path replication): Δημιουργείται αντίγραφο κατά μήκος αναζητητή κόμβου που βρέθηκε το αντικείμενο

Pull then push

Page 59: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

60

Μέθοδος pull then push

Στόχος: Η δημιουργία αντιγράφων που είναι ανάλογα των κόμβων που ερωτήθηκαν κατά την αναζήτηση (pull)

Προσέγγιση Έστω ότι κατά την αναζήτηση το αντικείμενο βρέθηκε σε βάθος t Αμέσως μετά την αναζήτηση pull, κάνουμε push με TTL = t. Οι κόμβοι που λαμβάνουν το μήνυμα push δημιουργούν

αντίγραφα με πιθανότητα Preplicate

Page 60: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

61

Πειραματικά αποτελέσματα

0

0.01

0.02

0.03

0.04

0.05

0.06

Συχνότητα ερωτήσεων

Σχ

ετικ

ός

αρ

ιθμ

ός

αν

τιγ

ρά

φω

ν r

/R

Ομοιόμορφη

Ιδιοκτήτη

Μονοπατιού

pull then push

Θεωρητικό βέλτιστο

Page 61: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

Ενημέρωση αντιγράφων

Page 62: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

63

Ενημέρωση αντιγράφων

Ο κόμβος που δημοσίευσε για πρώτη φορά το αντικείμενο θεωρείται ιδιοκτήτης του.

Υπάρχει ήδη ένας αριθμός αντιγράφων

Πρόβλημα:

Κάθε φορά που ο ιδιοκτήτης δημοσιεύσει μια νεότερη έκδοση του αντικειμένου, όλα τα αντίγραφα πρέπει να ενημερωθούν

Page 63: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

64

Push

Οι κόμβοι που θα λάβουν το μήνυμα μπορούν Να ακυρώσουν το αντίγραφό τους (invalidate) Να επικοινωνήσουν με τον αρχικό κόμβο ώστε να ενημερώσουν

την έκδοσή τους

PushΌταν ο ιδιοκτήτης δημοσιεύσει μια νέα έκδοση του αντικειμένου κάνει push στο δίκτυο την πληροφορία αυτή

Page 64: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

65

Pull

Ζήτημα:Οι κόμβοι δεν γνωρίζουν αν το τοπικό αντίγραφο που χρησιμοποιούν χρειάζεται ενημέρωση

Πρέπει να κάνουν περιοδικά pull ώστε να ανακαλύψουν αν υπάρχει κάποια νεότερη έκδοση

Page 65: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

66

Χρόνος μεταξύ δυο pull

Ο χρόνος TTP για το επόμενο pull (Time To Pull) βασίζεται σε παλιότερα στατιστικά

Προσαρμογή TTP Αρχικά όλοι οι κόμβοι κάνουν pull με την ίδια συχνότητα

Αν μεταξύ δυο διαδοχικών pull δεν βρεθεί νεότερη έκδοση αυξάνουμε το TTP:

Αν μεταξύ δύο διαδοχικών pull βρεθεί νεότερη έκδοση μειώνεται το TTP:

(1 )

TTPTTP TTP

V V a

TTP TTP C

Page 66: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

67

Βελτίωση: push/pull-push

Αν τα αντίγραφα δημιουργήθηκαν με την τεχνική pull then push O κόμβος που προκάλεσε το push έχει στην γειτονιά του αρκετά αντίγραφα

Έτσι, όταν ο κόμβος αυτός λάβει μια ενημέρωση μέσω ενός περιοδικού pull

Θα πρέπει να προωθήσει την ενημέρωση αυτή στην γειτονιά του

Συνολικά Όταν ο ιδιοκτήτης κάνει αλλαγές push Οι κόμβοι κάνουν περιοδικό pull Επιπρόσθετα: Αν ένας κόμβος είχε δημιουργήσει παλιότερα αντίγραφα ενός

αντικειμένου και λάβει μια ενημέρωση του κάνει push.

Page 67: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

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

Page 68: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

69

Συμπεράσματα Εξετάσαμε το πρόβλημα των ενημερώσεων της cache σε ένα δίκτυο από κινητούς

πράκτορες Kάθε πράκτορας διατηρεί cache Μετακινήσεις μη έγκυρες εγγραφές

Προτείναμε κάποιες μεθόδους ενημέρωσης που συνδυάζουν Τεχνική pull

ξεκινά από τον agent που θέλει να ενημερώσει κάποια δική του εγγραφή Τεχνική push

ξεκινά από τον agent που μετακινείται

Παραλλαγές push/pull Snooping directories Inverted cache push/pull

Τα πειραματικά αποτελέσματα υποδεικνύουν Κατάλογοι snooping

Ίδιο ποσοστό ενημέρωσης με απλό push/pull αλλά με πολύ λιγότερα μηνύματα Inverted cache

Ελάχιστο φόρτο μηνυμάτων για κάθε μετακίνηση Μη κατάλληλη όταν έχουμε πολλές αλλαγές στις cache Δεν μπορεί να εφαρμοστεί σε ασταθές και αναξιόπιστο περιβάλλον

Page 69: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

70

Συμπεράσματα

Εξετάσαμε το πρόβλημα δημιουργίας αντιγράφων σε ένα σύστημα P2P

Βέλτιστο Αριθμός αντιγράφων ανάλογος της τετραγωνικής ρίζας των ερωτήσεων

Προσέγγιση Δημιουργία αντιγράφων ανάλογα του αριθμού κόμβων που ερωτήθηκαν

Προτείναμε την μέθοδο pull then push Αμέσως μετά από μια αναζήτηση γίνεται push στο δίκτυο με ίδιο TTL ώστε να

κατασκευαστούν τα αντίγραφα

Τα πειραματικά αποτελέσματα υποδεικνύουν ότι η προτεινόμενη μέθοδος προσεγγίζει κατά πολύ την επιθυμητή κατανομή

Page 70: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

71

Συμπεράσματα

Εξετάσαμε το πρόβλημα της ενημέρωσης των αντιγράφων

Όταν ο ιδιοκτήτης αντικειμένου δημοσιεύσει νεότερη έκδοση τα αντίγραφα πρέπει να ενημερωθούν

Εφαρμογή μεθόδου push με περιοδικό pull

Ο χρόνος μεταξύ δυο pull προσαρμόζεται δυναμικά

Βελτίωση όταν έχουμε αντίγραφα που έχουν φτιαχτεί με την τεχνική pull then push

Αμέσως μετά μια επιτυχημένη ενημέρωση γίνεται push

Τα πειραματικά αποτελέσματα υποδεικνύουν ότι η μέθοδοι push-pull μπορούν να εφαρμοστούν και για την ενημέρωση αντιγράφων

Page 71: Κινητικότητα και ενημερώσεις σε δίκτυα   peer to peer

72

Μελλοντική δουλειά

Εφαρμογή σε ασύρματα ad-hoc δίκτυα Ανακάλυψη υπηρεσιών Δρομολόγηση

Εφαρμογή των μεθόδων push/pull σε άλλους τομείς Τι μπορεί να θεωρηθεί μετακίνηση Τι μπορεί να θεωρηθεί ενημέρωση

Εύρεση νέων αλγορίθμων πλημμύρας για push και pull Εύρεση βέλτιστων παραμέτρων