M2 TI 1
Systèmes d’Information Distribués et Collaboratifs
CM 2 : Mercredi 30 septembre 2009
Les architectures P2P
Les architectures P2P non structurées Les réseaux « pur » pair à pair
Les architectures P2P hybrides Les réseaux hiérarchiques
Les architectures P2P structurées Les réseaux à base de Distributed HashTable (DHT)
Ce que nous allons voir
Description des architectures P2P non structurées Caractéristiques Protocole de connexion
Construction de la table de voisinage Protocole de communication Architecture d’un pair
Localisation de l’Information dans les P2P non structurées Stratégies de réplication Stratégies à l’aveugle Stratégies de routage Stratégies d’auto-organisation
Description des architectures P2Pnon structurées
Caractéristiques du P2P non structuré
Respect du paradigme du P2P
Principe d’égalité entre les nœuds Même capacité (puissance, bande passante, …) Même comportement (également client et serveur) et bon
comportement (pas de « mensonge »)
Principe de requêtes « populaires » Les ressources très demandées sont très répliquées Les requêtes concernent principalement peu de ressources
Principe de topologie du réseau Graphe entre pairs variant au fur et à mesure des connexions et des
déconnexions
Tables de voisinage
Associée à chaque nœud Représente la seule connaissance disponible du
réseau
A
B
C
Table de voisinage Table de voisinage
Table de voisinage
@B
@C
@A
@C
@DD
Serveur dédié
Principe de connexion au réseau (1)« Il faut connaître et se faire connaître»
Etape 1Pour participer, un nœud doit se connecter à des serveurs spécialisés capables de renvoyer une liste des nœuds connus (1ère connexion) ou réutiliser la liste des nœuds utilisés lors de la précédente connexion.
Remarque : Le réseau étant dynamique, pas de garantie que la liste des nœuds retournée
au nœud entrant soit constituée que de nœuds réellement connectés=> Vérification par une communication Ping/Pong des nœuds réellement connectés
Ping
Pong
Pong
F
B
G
@B
@C
@G
@H
Nœuds connus
C
H
@B
@C
@G
@H
PingPingPing
Pong
Dem. Con.
Principe de connexion au réseau (2)
Etape 2 : Mise à jour des tables de voisinage
Table de voisinage du pair entrant «connaitre»
Table de voisinage des pairs déjà connectés «se faire connaitre»
F
B
G
H
Algorithme de sélection des voisins
Expanding ring search Envoi de messages par inondation aux voisins
potentiels, puis calcul des temps de latence (RTT) Le pair entrant choisit comme voisins les pairs les plus
rapides à répondre
Quelles sont les limites de l’approche précédente ?
Localisation des ressources Pour la localisation :
Propagation à l’aveugle des messages
Principe Chaque nœud propage la requête à ses voisins Le nombre de rebonds logiques est limité par le TTL :
Time To Live (en général à 7) Détection de cycles grâce à l’identificateur des
paquets
Illustration du processus d’inondation
TTL=4
TTL=3
TTL=2
TTL=3
TTL=2
TTL=2
TTL=1
TTL=1
TTL=1
TTL=0
TTL=0
A
B
H
F
C DE
G
I J
K
L
: message
: message traité
: message non traité
: pairs stockant des données pertinentes
Pourquoi passer par le chemin inverse ?
TTL=4
TTL=3
TTL=2
TTL=3
TTL=2
TTL=2
TTL=1
TTL=1
TTL=1
TTL=0
TTL=0
A
B
H
F
C DE
G
I J
K
L
: message
: message traité
: message non traité
: pairs stockant des données pertinentes
Pour des raisons d’anonymat du nombre de connexions (cas de données très populaires)
Car sinon…
Types de messagesTypes Description Information
Ping Annonce disponibilité et lance viderecherche nouveaux pairs
Pong Réponse à un ping Adresse IP + N°port; nombre et taille de
fichierspartagés
Query Requête Bande passante minimum demandée; critère de
rechercheQueryHit Réponse à Query si on possède Adresse IP + N°port et
la ressource bande passante; Nb de réponses + descripteurs
Push Demande de téléchargement pour Id. du pair; index du fichier
pairs derrière un firewall demandé; adresse IP et N°
port où envoyer le fichier
Remarque
Le recouvrement du réseau dépend de : la durée de vie des messages
TTL : nombre de rebonds logiques possibles RTT : temps d’attente tolérée
La topologie du réseau
B
C
D
A
B C DA
Architecture générale d’un pairG
est
ionnair
e d
e M
ess
ages
Pair
Interface Utilisateur
Requête
Ressources locales
Table de voisinage
Exécuteur requêteRécepteur requête
Transmetteur résultat
Diffuseur requête
Récepteur de résultat
Résultat
Résultat
Requête Requête Requête
Gest
ionnair
e d
es
charg
em
ent
Demande
Service de téléchargement
Ressource
Bilan
Les avantages Chaque pair est autonome Pas de coût d’indexation des données
Les inconvénients Pas de garantie de trouver une ressource qui pourtant
est stockée sur le réseau Multiplication des messages échangés à travers le
réseau
Exemple de système P2P non structuré
Gnutella Complètement décentralisé Très tolérant aux fautes S’adapte bien à la dynamique du réseau Gros consommateur de bande passante Pas de garantie de succès, ni d’estimation de la
durée des requêtes Pas de sécurité, ni de réputation (pas de notion de
qualité des pairs ni des données fournies) Simple, robuste, passe l’échelle (pour le moment)
Première conclusion
Les architectures P2P non structurées Une application directe du paradigme du P2P Chaque pair :
À la fois client et serveur Est autonome en terme de stockage des ressources A pour unique connaissance du réseau : son voisinage
logique
Problèmes : Nombreuses limitations dues
Au nombre de messages échangés Efficacité du processus de localisation
Localisation de l’Information dans les P2P non structurées
Comment améliorer ces performances ?
Exploiter la réplication Trouver rapidement une réplique
Trouver une alternative à l’inondation Réduire le nombre de messages échangés
Avoir une stratégie de routage des messages Aller plus rapidement vers les pairs pertinents
Avoir un stratégie d’organisation du réseau Regrouper les pairs qui ont des données d’intérêt commun
Stratégie de réplication
La réplication en P2P
Améliore la recherche Plus il y a de répliques distribuées à travers le réseau,
plus on augmente les chances d’en trouver une rapidement
Mais aussi : Améliore la disponibilité des données Améliore la répartition de charge
A propos de la réplication Les questions à se poser :
Combien de répliques sont nécessaires pour minimiser le coût de la recherche ? Où stocker les répliques ?
On considère n nœuds {ni}1i n. On suppose vouloir stocker m données : {di}1i m
On pose : R : la capacité totale de stockage du système ri : le nombre de nœuds stockant une réplique de la donnée di
qi.: le taux d’interrogation de la donnée di On suppose que :
i
i Rr
1i
iq On définit :
La taille de recherche moyenne de la donnée di est le nombre moyen de nœuds visités jusqu’à ce que la donnée soit trouvée : Ai = n / ri La taille de recherche moyenne globale de toutes les données est :
i
iistratégie AqA .
Méthodes de réplication
Réplication uniforme Toutes les données sont indifféremment répliquées. ri = R/m Auniforme = n.m / R Taille de recherche moyenne indépendant de qi
Approche simpliste, minimise le pire cas de recherche
Réplication proportionnelle La réplication des données est fonction du taux de requêtes
portant sur ces données. ri = R.qi
Aproportionnelle = n.m / R Taille de recherche moyenne indépendant de qi et identique à la
stratégie uniforme Approche plus naturelle et ‘juste’, reflétant l’utilisation du réseau
Taux d’utilisation des répliques
Taux d’utilisation d’une requête: Taux de requêtes auxquels une réplique de la donnée di répond. Pour la donnée di, on a : Ui = R . qi / ri
Réplication uniforme Ui=m.qi Les réplicas de données populaires ont un fort taux
d’utilisation
Réplication proportionnelle Ui=1 Toute les répliques ont le même taux d’utilisation
Réplication optimale : Square-root
La taille de recherche moyenne est minimale si : (Admis ou cf B.Cooper)
Aoptimal =
Ui =
Résultat Le taux d’utilisation varie moins que dans la stratégie uniforme Le taux de recherche moyenne varie moins que dans la
stratégie proportionnelle
ii
ii
q
qRr
.
2
i
iqn
R
j
ij qq .
Propagation à l’aveugle
Alternatives à l’inondation
Sans ajout d’information Inondation graduelle
Variation du TTL
Marche aléatoire Filtrage des voisins
Inondation graduelle
Variation du TTL initiale Etape 1 : TTL = 1 Si pas de résultats, TTL = 2 …
TTL=1
TTL=0
TTL=0
A
B
H
TTL=2
TTL=1
TTL=0
TTL=1
TTL=0
TTL=0
A
B
H
F
C
I
Etape 1 Etape 2
Approche valable si les données sont fortement répliquées et que la probabilité de trouver les données pertinentes sur les pairs proches est élevée
Marche aléatoire (1)
Principe de non diffusion à tous les voisins Sélection aléatoire du/des voisins à qui l’on propage
la requête
TTL=4
TTL=3
TTL=2
TTL=1
TTL=0
A
B
H
F
C DE
G
I J
K
L
: message
: message traité
: pairs stockant des données pertinentes
Réduction positive du nombre global de messages échangés,
MAIS réduction de la complétude des recherches
Marche aléatoire (2)
La charge du réseau est clairement réduite mais les délais de retour augmentent de manière significative.
En augmentant le nombre de marcheurs l'augmentation des délais peut être contrôlée.
Les expérimentations ont montré qu'en adaptant le nombre de marcheurs en fonction du TTL des messages, la marche aléatoire gère mieux la large échelle que l'inondation pure.
Stratégies de routage
Alternative à l’inondation et l’aléatoire : le routage Inondation, inondation graduelle, marche aléatoire avec
un ou plusieurs marcheurs …
sont des techniques de diffusion des messages à l’aveugle basées sur l’aléatoire
Il faudrait avoir une véritable stratégie de sélection des voisins à qui transmettre les résultats !
Choisir le ou les voisins les plus pertinents => exprimer et exploiter la notion de pertinence
=> définir une représentation sémantique des pairs
Information sémantique
Sur le contenu des nœuds (index) Les pairs ont un contenu supposé homogène
Possibilité d’avoir une vision thématique d’un pair Routage basé sur les comparaisons requête/index
Sur les requêtes Les requêtes diffusées sur le réseau sont supposées se ressembler Routage basé sur les comparaisons requête/requête
Sur les utilisateurs Les utilisateurs sont supposés avoir toujours les mêmes besoins Routage basé sur les comparaisons utilisateur/utilisateur
« Routing Indices »
Introduire de l’information sur le contenu des nœuds (index) Statistiques sur ce que contient le pair Statistiques sur ce que contiennent les voisins du pair
Analogue aux systèmes d’index répartis et hiérarchisés pour moteurs de recherche sur Internet
Trouver l’équilibre entre la taille de l’index et le gain
Exemple de « RI »
A
B
C
D
E
F
G
H
I
J
Chemin Nb documents
BD Réseaux Théorie langages
B 100 20 0 10 30
C 1000 0 300 0 50
D 200 100 0 100 150
RI pour nœud A
Utilisation de l’index
Soit Q une requête, conjonction de plusieurs termes de recherche (tQ
1, …tQk)
Le calcul de proximité :Proximité(Q, chemin) = NbDoc X i (RI(tQ
i)/NbDoc) Exemple
Q émise sur A = (‘BD’, ‘langages’) A peut calculer :
Proximité(Q, B) = 100 X 20/100 X 30/100 = 6 Proximité(Q, C) = 1000 X 0/1000 X 50/1000 = 0 Proximité(Q, D) = 200 X 100/200 X 150/200 = 75
Permet d’ordonner les nœuds successeurs
Routage grâce au RI
A
B
C
D
I
J
# BD R T L
I 50 25 0 15 50
D 1550 125 380 95 190
# BD R T L
J 50 15 0 25 25
D 1550 135 380 85 215
# BD R T L
A 300 30 80 0 10
B 100 20 0 10 30
C 1000 0 300 0 50
D 200 100 0 100 150
# BD R T L
D 100 60 0 60 75
A 1400 50 380 10 90
I 50 25 0 15 50
J 50 15 0 25 25
Q=(BD, L)
60
75
25
7
Si aucun résultat
pertinent retourné par I
Si aucun résultat
pertinent retourné par D
Algorithme de recherche
Résoudre Q localement.
Si suffisamment de résultats OK,
Sinon
Tant qu’il n’y a pas assez de résultats Évaluer proximité des successeurs Prendre le successeur non exploré S le plus proche,
si vide retour Recherche(Q, S)
Performances de la recherche
Par rapport à Gnutella diminue le nombre de messages
Exploration restreinte aux nœuds ayant la plus grande probabilité de succès
Pas d’information sur le nombre de sauts nécessaires (améliorations possibles avec d’autres RI)
Pas de garantie d’avoir tous les résultats Plutôt orienté recherche des k meilleurs résultats
Mise à jour des RI (1)
A
B
C
D
I
J# BD R T L
A 300 30 80 0 10
B 100 20 0 10 30
C 1000 0 300 0 50 # BD R T L
D 100 60 0 60 75
I 50 25 0 15 50
J 50 15 0 25 25
# BD R T L
I 50 25 0 15 50
D 150 75 0 85 100
# BD R T L
J 50 15 0 25 25
D 150 85 0 85 125
Etat initial
Mise à jour des RI (2)
200 100 0 100 150
A
B
C
D
I
J# BD R T L
A 300 30 80 0 10
B 100 20 0 10 30
C 1000 0 300 0 50# BD R T L
D 100 60 0 60 75
I 50 25 0 15 50
J 50 15 0 25 25
A veut se connecter à D ! Etape 1 : Création des vecteurs agrégés
1400 50 380 10 80
# BD R T L
I 50 25 0 15 50
D 150 75 0 85 100
# BD R T L
J 50 15 0 25 25
D 150 85 0 85 125
Mise à jour des RI (3)
A
B
C
D
I
J
A veut se connecter à D ! Etape 2 : Mise à jour des RI de A et de D
# BD R T L
A 300 30 80 0 10
B 100 20 0 10 30
C 1000 0 300 0 50
D 200 100 0 100 150
# BD R T L
D 100 60 0 60 75
A 1400 50 380 10 90
I 50 25 0 15 50
J 50 15 0 25 25
# BD R T L
I 50 25 0 15 50
D 150 75 0 85 100
# BD R T L
J 50 15 0 25 25
D 150 85 0 85 125
Mise à jour des RI (4)
A
B
C
D
I
J
# BD R T L
I 50 25 0 15 50
D 1550 125 380 95 190
# BD R T L
J 50 15 0 25 25
D 1550 135 380 85 215
A veut se connecter à D ! Etape 3 : Propagation des mise à jour
# BD R T L
A 300 30 80 0 10
B 100 20 0 10 30
C 1000 0 300 0 50
D 200 100 0 100 150
# BD R T L
D 100 60 0 60 75
A 1400 50 380 10 90
I 50 25 0 15 50
J 50 15 0 25 25
Agr(A,D,J)
Agr(A,D,I)
Agr(A
,D,C
)
Agr(A,D,B)
Variante
Tenir compte du nombre de rebonds logiques dans le tableau d’indices
Bilan des Routing Indices Avantages
Structure d’indexation assez simple Fonctionne bien pour obtenir les meilleurs résultats
Inconvénients La mise à jour génère beaucoup de messages On n’obtient pas forcement tous les résultats S’applique à des langages plus complexes Pour types mots-clés mais pas généralisable à des
traiter des graphes généraux, il faut intégrer la gestion des cycles (détection ou prévention)
Auto-organisation du réseau
Clustering de pairs
Intérêt de l’auto-organisation
Facilité d’utilisation Administration locale automatique Pas d’administration globale
Gestion automatique de la dynamicité Volatilité des machines Déconnexions violentes
Découverte de ressources automatique Annonce automatique
Motivation
TTL=4
TTL=3
TTL=2
TTL=3
TTL=2
TTL=2
TTL=1
TTL=1
TTL=1
TTL=0
TTL=0
A
B
H
F
C DE
G
I J
K
L
: message
: message traité
: message non traité
: pairs stockant des données pertinentes
Sans politique de regroupement des pairs
Motivation (2)
TTL=4
TTL=3
TTL=2
TTL=3
TTL=2
TTL=2
TTL=1
TTL=1
TTL=1
TTL=0
TTL=0
A
F
J
L
C DE
G
I H
K
B
: message
: message traité
: message non traité
: pairs stockant des données pertinentes
Avec politique de regroupement des pairs
Problèmes liés au regroupement de pairs
Forte interconnexion entre des sous-ensembles de pair Transitivité des distances sémantiques
Rapprochement logique de pairs physiquement proches Latence des retours de résultats
1 Rebond : 4 pairs touchés
2 rebonds : 1 pair touché
3 rebonds : 1 pair touché
….
A
F
J
L
C DE
G
I H
K
B
Réseau des petits mondes (small-world)
Issue des sciences sociales
Propriétés Graphe connecté dont la distance entre deux nœuds
choisi aléatoirement est faible Coefficient de clustering élevé (# de connections
actives important)
Construction Chaque pair est connecté à un ensemble de pairs
voisins Chaque pair dispose de liens vers des nœuds
distants
Liens courts / liens longs
Les propriétés small world
Deux propriétés essentielles Regroupement maximal
Mes voisins se connaissent entre eux Chemin minimal
La distance entre deux nœuds du graphe est faible Dans l’idéal, pour un graphe G=(E,V), maxi,jV (min(Path(i,j)) est le plus petit
possible
Ces propriétés permettent de mettre en œuvre des hubs d’information Des nœuds très communicants, connaissant beaucoup de voisins
lointains
Permet de rester « scalable », en O(log(N))
Tour d’horizon Regroupement sémantique des pairs, selon:
Leur contenu Données
Thématique : SON[cre01], MEnT2 [lum03] Métadonnées
Schémas / Ontologies : Xylème[clu01], Edutella [nej03] Mappings : Semantic Gossiping [abe03], PeerDB [00i03], Piazza [tat03]
Leur propriétés physiques Capacité/Comportement
Approches hiérarchiques Gnutella 0.6 [gnu],[nta04] Localisation géographique
Approches topologiques [rat02],[cas02],[cai04]
Leur usage Intérêt / Popularité
Approches collaboratives [Iam 02],[man02],[dan04],[lum04]
Approche Ultra-Pair (Gnutella 6.0)
Les ultra-pairs sont des pairs qui disposent de bonnes capacités (bandes passantes) et par qui le traitement des messages est efficace.
Les pairs n’ont pour voisin qu’un ultra-pair et pas d’autres voisins (ils ne propageront donc pas le message)
pair
ultra-pair
Semantic Overlay Networks
PrincipeClassifier l’ensemble des nœuds via une
classification « sémantique » (ex: genres de musiques)
Un même nœud peut se trouver dans plusieurs classes
Selon la requête, on sélectionne le ou les SON susceptibles d’y répondre au mieux
Exemple de SON
A C
B
E
G
F
D
H
Rock
Country
Jazz
Rap
Un nœud est logiquement relié à un autre, par un lien : (ni, nj, lk). Ex : (A, B, ‘Rock’)Les nœuds ayant le même l forment un SON
Problématique des SON
Un SON avec un seul label est un P2P classique Une fois le label choisi (en fonction de la
requête), on a un P2P classique Comment définir le SON ?
Processus de génération d’un SON
Définition SON
Classificationrequête
Classification document
Classificationnoeud
requête
résultats
Hiérarchie concepts
DistributionDes données
SON
Nouveauxnoeuds
Exemple de classification
Music
RockJazz
Pop Dance Soft New Orleans Bop Fusion
Style
Sous-styleSous-style
Un concept = un SON
Association des nœuds aux SON
Repose sur un classifieur de documents Si un document du nœud correspond : favorise la
complétude, mais augmente le coût de la recherche Si k documents du nœud correspondent : diminue la
complétude, mais diminue le coût de la recherche
Résolution d’une requête Cherche le(s) concept(s) correspondant à la requête Propage la requête dans le SON + ascendants +
descendants
Principe de recherche
Classificationrequête
Nœud irequête
SON i
SON k
Choix de la classification
« bonne » hiérarchie de classificationClasses dont les documents appartiennent à
un petit nombre de nœuds
Les nœuds se trouvent dans peu de classes
Classifieurs faciles à construire et les plus fiables possibles
Bilan SON
Repose sur la classification Lié à un domaine précis Favorise la précision, mais pas la complétude Peut se paralléliser pour obtenir rapidement des
réponses (requête lancée dans chaque SON sélectionné par le classifieur)
Les résultats expérimentaux montrent une amélioration notable en nombre de messages par rapport à Gnutella.
Bibliographie
B. Yang, H. Garcia-Molina. Improving Search in Peer-to-Peer Systems, Proc. 28th Conf. On Distributed Computing Systems, 2002
Gnutella : http://www.gnutella.com K. Aberer et al. Improving Data Access in P2P Systems, IEEE Internet
Computing, January 2002 B. Yang, H. Garcia-Molina. Comparing Hybrid Peer-to-Peer Systems,
Proc. VLDB Conference, 2002 B. Yang, H. Garcia-Molina. Designing a Super-Peer Network, Proc.
ICDE Conf., 2003 A. Crespo, H. Garcia-Molina. Routing Indices for Peer-to-Peer
Systems, Proc. ICDCS 2002 P. Haase, R. Siebes. Peer Selection in Peer-to-Peer Networks with
Semantic Topologies, Proc. WWW Conf., 2004 H. T Shen, B. Yu. Efficient Semantic-Based Content Search in P2P
Network, IEEE TKDE 16(7), 2004
Top Related