Gestion de données dans les systèmes pair-à-pair - IA

publicité
Gestion de données dans les systèmes
pair-à-pair
Remerciements à Bruno DEFUDE (GET- Institut National des Télécommunications)
1
Plan
• Introduction
• Architectures des réseaux P2P
– P2P non structurés
– P2P structurés
– P2P hybrides (super-pairs)
• P2P sémantiques
• P2P et BD
• Synthèse et Conclusion
2
Introduction
• Limitations de l’architecture client/serveur dans le
cadre du Web
– Concentration des ressources individuelles sur un petit
nombre de nœuds
– Goulot d’étranglement
• Besoin de répartir la charge de traitement et de la
bande passante à travers tous les nœuds du système
d’information réparti
3
P2P
• Internet des débuts était un système P2P
– N’importe quel couple d’ordinateurs pouvait s’envoyer des
paquets :
• Pas de firewalls, pas de communications asymétriques
– Les machines sont indifféremment client ou serveurs
– Approche coopérative
• Les P2P sont une sorte de renaissance des principes
de base d’internet.
4
Définition
• Chaque nœud (peer) participant peut être client ou
serveur
• Chaque nœud « paye » sa participation en donnant
accès à une partie de ses ressources
• Propriétés :
–
–
–
–
–
–
–
Pas de coordination centralisée
Pas de BD centralisée
Aucun nœud n’a une vision globale du système
Le comportement global émerge à partir des interactions locales
Tous les services et données sont accessibles de n’importe quel nœud
Les nœuds sont autonomes
Les nœuds et les connections ne sont pas fiables
5
Différents types de systèmes P2P
• Systèmes de partage de fichiers
– Napster, Gnutella, Freenet
• Commerce électronique
– eBay, serveurs d’intégration B2B
• Bases de données réparties
– Mariposa [Stonebraker96]
• Réseaux
– Réseaux mobiles ad-hoc
L’approche P2P se trouve à tous niveaux du système : utilisateur,
application, gestion de l’information, réseau.
6
Approches comparables
• Systèmes basés sur les événements
– Les nœuds génèrent et reçoivent des messages
• « push » systems
– Les nœuds envoient des informations
• Agents mobiles
– Similarité dans la recherche et la navigation
• Bases de données réparties
– Les données sont réparties sur plusieurs nœuds
– Traitement efficace de requêtes complexes par décomposition
– Structures d’index adaptées au passage à l’échelle
Le problème majeur est de retrouver l’information.
7
Classes de systèmes P2P
• P2P centralisé (ex: Napster)
– Index centralisé (non tolérant aux fautes) géré de façon centralisée
– Échange d’information direct
• P2P décentralisé (ou « pur ») (ex: Freenet, Gnutella)
– Pas d’index global, pas de coordination centrale, le comportement global vient des
interactions locales, etc.
– Échange d’information direct (Gnutella) ou à travers une chaîne d’intermédiaires
(Freenet)
• P2P structurés (ex: CHORD, CAN, P-GRID)
– Répartition des ressources sur les différents nœuds
– Utilisation de tables de hachage distribuées
• P2P hiérarchiques ou « super peers » (ex: Kazaa)
– Introduction des super-peers
– Mélange de client/serveur et P2P
• P2P sémantiques (ex: SON, Routing Indices)
– P2P « pur » avec routage basé sur une information sémantique
8
Fonctionnalités d’un système P2P
•
•
•
•
•
Découverte de ressources
Gestion des mises à jour
Passage à l’échelle
Tolérance aux fautes
Sécurité
9
Critères de comparaison
• Recherche de ressources :
– Topologie du réseau : ouverte(gnutella) ou contrôlée (Chord)
– Placement des données et des méta-données : libre(Gnutella) ou dirigé
(Chord)
– Routage des messages : fonction de choix des successeurs
• Besoins applicatifs :
– Expressivité du langage de requêtes
– Qualité des réponses, complétude des résultats : une réponse, toutes les
réponses, les k meilleures réponses, …
– Autonomie des nœuds : choix des ressources à stocker, choix des
nœuds successeurs, etc.
– Efficacité : rapidité des requêtes, répartition de charge, …
– Tolérance aux pannes
10
P2P non structurés
Napster, Gnutella
11
Napster
4
Nœud j
a1.mp3
Nœud i
3
b2.mp3
2
1
1: enregistrement de i
recherche de a1.mp3
ajout des fichiers de i dans l’index
2: retour des noeuds possédant a1.mp3
Index
centralisé
3: demande directe de i à j pour télécharger a1.mp3
4: téléchargement de a1.mp3 et
ajout dans la base de ressources partagées
12
Bilan Napster
• Fonctionne bien à l’échelle d’Internet
• Accès en P2P, mais recherche centralisée
• Serveur doit être bien dimensionné et tolérant aux
fautes
• Sensible aux partitionnements du réseau (serveur
inatteignable) et aux attaques
13
Gnutella
• Chaque nœud propage la requête à ses voisins (en général 4)
• Le nombre de propagations est limité (en général à 7)
• Détection de cycles grâce à l’identificateur des paquets
Recherche a
Retour a
14
Types de messages
Types
Ping
Description
Pong
Annonce disponibilité et lance
recherche nouveaux pairs
Réponse à un ping
Query
Requête
QueryHit
Réponse à Query si on possède
la ressource
Push
Demande de téléchargement pour
pairs derrière un firewall
Information
vide
Adresse IP + N°port;
nombre et taille de fichiers
partagés
Bande passante minimum
demandée; critère de
recherche
Adresse IP + N°port et
bande passante; Nb de
réponses + descripteurs
Id. du pair; index du fichier
demandé; adresse IP et N°
port où envoyer le fichier
15
Gnutella (ajout d’un nœud)
• Pour participer, un nœud doit se connecter à un hôte Gnutella connu
(www.gnutella.com). Des serveurs spécialisés renvoient une liste des
nœuds connus (extérieur au protocole).
C
A
B
D
Ping de A
Pong de B
Pong de C
E
Pong de D
Pong de E
16
Gnutella (recherche)
Get X.mp3
X.mp3
X.mp3
C
A
B
D
Query de A
QueryHit de C
QueryHit de E
E
X.mp3
Transfert du fichier
17
Les principes sous-jacents
• Principes 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
– Requêtes concernent principalement peu de ressources
• Principe de topologie du réseau
– Graphe minimisant le nombre de chemins entre deux nœuds
– Longueur de chemin minimum entre deux nœuds quelconques est
faible (5 à 8)
18
Quid des principes en réalité ?
• Principe d’égalité entre les nœuds
– [Sariou et al.01] montrent un écart de 1 à 3 dans la bande passante
disponible.
• Conséquence : risque de perturbation du réseau et de partitionnements
(trop forte charge demandée à des noeuds connectés via des modems par
exemple)
– [Adar, Hubermann 00] montrent que 70% des utilisateurs ne partagent
aucun fichier (ils n’en ont pas ou ils n’intéressent personne), et que
50% des résultats sont produits par 1% des nœuds.
• Conséquences : (1) ceux qui partagent n’y ont pas d’intérêt (pas de
réciprocité) et (2) le réseau est sensible aux fautes et aux attaques
– Les études montrent également que certains nœuds sous-évaluent leur
bande passante disponible pour éviter d’être choisis.
– Le free-riding est un problème social plutôt que technique. Il induit des
problèmes de performances et de vulnérabilité du système.
– Constat : beaucoup de pairs sont des « free-riders » et tous les domaines
19
sont concernés.
Quid des principes (2)
• Principe des requêtes « populaires »
– Les 100 requêtes les plus fréquentes sont distribuées uniformément
– Les autres suivent une distribution de type Zipf
– Les techniques de cache de résultats s’appliquent bien et peuvent
apporter une amélioration notable
• Principe de topologie du réseau
– Plusieurs études montrent que le graphe sous-jacent de Gnutella est de
type « small world » et que le degré des nœuds suit une distribution
« power law »
– Le principe de diffusion de Gnutella ne s’adapte pas à SW (beaucoup
de message redondants)
20
Observations sur la bande passante Gnutella
• Sur une période de 1 mois
– La taille d’une requête typique est de 560 bits (y compris
headers TCP/IP)
– Les requêtes occupent 25% du trafic, les ping 50% et le
reste 25%
– En moyenne, un pair est connecté activement à 3 autres
• Limite de la dégradation à 10 requêtes/seconde
– 10 req * 560bits*4 *3 connections = 67200 b/s
– Au dessus de la capacité des modems
• Gnutella ne passe pas à l’échelle (pour la bande
passante)
21
Bilan de 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)
• Problème du « free riding »
• Simple, robuste, passe l’échelle (pour le moment)
22
P2P « Structuré » (DHT)
Distributed Hash Table :
Chord, P-Grid
23
Chord [Stoica et al. 2001]
• Table de hachage distribuée
• Les nœuds sont répartis sur un anneau
• Les ressources sont réparties sur les différents nœuds de
l’anneau
• Structure dynamique
– Ajout/retrait de nœud
– Panne d’un nœud
• Peut être utilisée pour construire des applications au-dessus
(DNS, …)
24
Consistent Hashing
• Chord alloue les ressources aux nœuds en utilisant
une fonction de hachage
• Consistent Hashing garantit avec une probabilité
élevée
– Ressources sont distribuées uniformément sur l’ensemble
des nœuds
– L’ajout/retrait d’un Nème nœud n’oblige à déplacer que
O(1/N) ressources
25
Structure en anneau
N1
N8
Chaque nœud est
N56
alloué sur l’anneau en
fonction de hash(IP)
N51
Au plus 2m nœuds
N14
N48
N21
N42
N38
N32
26
Placement des ressources
N1
Hash(ressource)=k
K54
N8
k placé sur successeur(k) N56
successeur(k)=nœud
N51
immédiatement supérieur
N48
(ou égal) à k
K10
N14
N21
N42
N38
K38
N32 K30
K24
27
Recherche (naïve) d’une ressource
• Sur le nœud i on reçoit la requête : recherche(k)
• Si i possède k, il retourne k
• Sinon, il propage la requête à son successeur (chaque nœud
doit stocker l’identification de son successeur)
• Le résultat suit le chemin dans l’ordre inverse
• Recherche linéaire en nombre de nœuds
28
Exemple de recherche naïve
N1
K54
Recherche(K54)
N8
K10
N56
N14
N51
N48
N21
N42
N38
K38
N32 K30
K24
29
Amélioration de la recherche
• Avoir une table de routage plus complète
• Pour chaque nœud i :
– Succ[k]=premier nœud sur l’anneau qui vérifie
(i + 2k-1) mod 2m, 1<= k <= m
– Successeur=succ[1]
– m entrées dans la table
– Prédecesseur (utilisé pour la maintenance dynamique du réseau)
– Donne adresse IP et No de port du nœud
30
Exemple de recherche
N1
K54
Recherche(K54)
N8
K10
N56
N14
N51
N48
N21
N42
Table routage N8
N8+1
N14
N8+2
N14
N8+4
N14
N8+8
N21
N8+16
N32
N8+32
N42
N38
K38
N32 K30
K24
31
Algorithme de recherche
• Rechercher si la clé existe localement. Si oui on
renvoie la valeur associée sinon
• Rechercher dans la table routage un nœud avec plus
grande valeur inférieure ou égale à la clé cherchée
• Transmettre la requête au nœud sélectionné et
appliquer récursivement
• Nombre de sauts moyen : O(log2(N))
32
Ajout d’un nœud
• Repose sur la combinaison d’opérations élémentaires
– N.join(n’) : nœud n annonce au nœud n’ qu’il rentre dans le réseau
et lui demande de lui fournir son successeur
– N.stabilize() : lancé périodiquement, permet à n et à son successeur
de vérifier qu’ils forment un couple correct (il n’y a pas de
nouveaux nœuds entre les 2)
– N.majentrées() : lancé périodiquement, permet d’initialiser la table
de routage pour les nouveaux nœuds ou de la mettre à jour pour les
nœuds existants
– N.testpredecesseur() : lancé périodiquement, vérifie que le
prédécesseur est toujours là
33
Exemple d’ajout N26
N21
N21
Successeur(N21)
join
N26
N32
K24
N32
K24
K30
K30
N32
K24
N21
stabilize
N21
N26
K24
N26
K24
N32
K30
K30
34
Propriétés de l’algorithme d’ajout
• L’algorithme garantit que n’importe quelle séquence de join
entrelacée avec des stabilize converge vers un état stable (tous
les nœuds restent atteignables)
• Même en présence d’un ajout (limité) de nœud, le coût de la
recherche reste en O(log(N))
• Une recherche peut échouer si le réseau n’est pas
complètement stabilisé (il faut relancer la recherche un peu
plus tard)
35
Sensibilité aux fautes
• L’algorithme de recherche repose sur la notion de
successeur (sensible à la panne de celui-ci)
• Une solution consiste à gérer une liste de r
successeurs
36
Evaluation Chord
•
•
•
•
•
Type de recherche : égalité
Coût de la recherche : O(Log2(n))
Coût de la mise à jour : O(Log2(n))
Coût de l’ajout d’un nœud : O(Log2(n))
Pas d’autonomie de stockage et de routage
37
Bilan Chord
• Algorithme assez simple, avec de bonnes propriétés
démontrables
• Résultats expérimentaux confirment
• Problème de latence :
– Fonction de recherche minimise le nombre de sauts, mais tous les sauts
n’ont pas forcément le même prix (traversée transatlantique e.g)
– Besoin d’utiliser de l’information sur la distance entre les nœuds (on
choisira parmi les successeurs possibles celui à distance minimale) ->
Global Network Positionning
38
P-Grid [Aberer 01]
• Table de hachage distribuée
• Nœuds se répartissent les ressources selon une structure
d’arbre binaire de recherche
• Repose sur une fonction de hachage préservant les préfixes et
distribuant uniformément les ressources sur l’arbre binaire
• Structure auto-adaptative, avec réplication
• Permet les recherches basées sur les préfixes (pas seulement
égalité stricte)
39
Exemple d’un P-Grid
ABR
0
virtuel
Query(6, 100)
00
1
1: 3
01 : 2
6
1:5
01 : 2
Données Données
Préfixe 00 Préfixe 00
1
10
01 Query(5, 100)
2
1:4
00 : 6
3
0:2
11 : 5
11
Query(4, 100)
4
0:6
11 : 5
5
0:6
10 : 4
Données Données Données Données
Préfixe 01 Préfixe 10 Préfixe 10 Préfixe 11
Pairs
Table routage
Données
40
Bilan de P-Grid
• Structure assez simple, tolérante aux fautes, avec
passage à l’échelle
• Évite de structurer les nœuds selon une fonction de
hachage
• Peut intégrer facilement des optimisations sur la
latence (choix d’un pair)
• N’est pas restreint aux recherches basées sur l’égalité
stricte
41
Autres approches de DHT
• Freenet [Clarke 01]
• CAN [Ratsanamy 01] : espace à n-dimensions
• Pastry [Rowstron 01] : hypercube
42
P2P hybrides (super-pairs)
Client/serveur +P2P
43
Super-peers
• Eviter les problèmes dus à l’hétérogénéité de la bande
passante des nœuds
• Tous les nœuds ne sont plus égaux
– Les nœuds avec une bonne bande passante sont organisés en P2P : les
super-peers
– Les nœuds avec faible bande passante sont rattachés en mode
client/serveur à un super-peer (cluster)
– Les super-peers disposent d’un index de ressources de leur cluster
• Utilisé dans Kazaa
44
Exemple de super-peer
C/S
P2P
45
Super-peer redondant
• Le super-peer introduit de la sensibilité aux défaillances
• Amélioration possible, choisir k super-peers (partenaires) au
lieu d’un dans un cluster
• Chaque partenaire est connecté à chaque client et possède un
index de toutes leurs ressources
• Les clients envoient leurs requêtes aux partenaires selon un
principe de « round robin »
• Les voisins d’un partenaire distribuent également leurs
requêtes équitablement
• Fait baisser la charge du partenaire d’un facteur k
• Augmente le coût d’entrée d’un nouveau client d’un facteur k
• Augmente le nombre de connections ouvertes de k2
46
Exemple de super-peer redondant
C/S
P2P
47
Règles de conception d’un
super-peer [Yang 2003]
• R1 : augmenter la taille d’un cluster augmente la
charge individuelle (bande passante) mais diminue
la charge agrégée
– Peu de gros clusters : sensibilité aux défaillances, attaques, …
• R2 : la redondance de super-peer est favorable
– Amène la bonne charge agrégée des gros clusters avec une faible
charge individuelle et une bonne tolérance aux fautes
48
Règles de conception d’un super-peer
• R3 : maximiser le nombre de connexions des superpeers (diminue le nombre de sauts pour atteindre les
résultats). La stratégie doit être choisie pour tous les
pairs.
• R4 : minimiser le TTL (time-to-live)
49
Bilan des architectures
Non structuré
structuré
hybride
autonomie
Forte
Faible
Moyenne
efficacité
Faible
Forte
Forte
Qualité des
réponses
Faible
Forte
Forte
Expressivité
du langage
Tolérance aux
pannes
Forte
Faible
Forte
Forte
Forte
Faible
50
P2P sémantiques
Semantic Overlay Network (SON)
Routing Indices
51
P2P « sémantique »
• Ajouter de l’information aux tables de routage
• Généraliste vs spécifique (à une application)
• Information doit pouvoir être maintenue
dynamiquement
• Équilibre entre taille et précision
52
Quelle information ?
• Sur le contenu des nœuds (index)
– Suppose que les nœuds aient un contenu homogène (pas de placement
aléatoire)
– Routage par comparaison requête-index
– Même information partagée par tous, ou bien information construite
localement
– Exemples : SON, « routing indices »
• Sur le réseau (clustérisation)
– Regrouper logiquement les nœuds avec même « sémantique »
• Sur les requêtes
– Suppose qu’il y ait peu de requêtes différentes
– Routage par comparaison requête-requête
• Sur les utilisateurs
– Suppose que les utilisateurs aient toujours le même besoin
– Routage par comparaison utilisateur-utilisateur
53
Semantic Overlay Networks
• [Crespo, Garcia-Molina 03]
• Classifier 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
54
Exemple de SON
Rock
A
C
Rap
Country
B
D
Jazz
F
E
H
G
Un nœud est logiquement relié à un autre, par un lien : (ni, nj, lk). Ex : (A, B, ‘Rock’)
55
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 ?
56
Processus de génération d’un SON
requête
Classification
requête
Hiérarchie
concepts
Définition SON
Distribution
Des données
SON
Classification
document
Nouveaux
noeuds
résultats
Classification
noeud
57
Exemple de classification
Music
Style
Jazz
Rock
Sous-style
Sous-style
Pop
Dance
Soft
New Orleans
Bop
Fusion
Un concept = un SON
58
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
59
Principe de recherche
SON i
requête
Nœud i
Classification
requête
SON k
60
Choix de la classification
• « bonne » hiérarchie de classification
– Classes 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
61
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.
62
« Routing Indices » [Crespo 02]
• Introduire de l’information sur le contenu des nœuds
(index)
• 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
63
Exemple de « RI »
E
B
A
C
F
G
H
I
D
RI pour nœud A
Chemin
Nb
documents
BD
Réseaux
Théorie
langages
B
100
20
0
10
30
C
1000
0
300
0
50
D
200
10
0
0
100
150
J
64
Utilisation de l’index
• Soit Q une requête, conjonction de plusieurs termes de
recherche (tQ1, …tQk)
• Proximité(Q, chemin) =
Nbdedocuments X ∏i (RI(tQi)/Nbdedocuments)
•
•
•
•
•
Q émise sur A = (‘BD’, ‘langages’)
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
65
Exemple complet de RI
B
C
I
A
#
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
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
J
#
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
66
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 S le plus proche (et non encore
exploré), si vide retour
– Recherche(Q, S)
67
Création d’un RI (ajout de AD)
B
C
I
A
#
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
D
#
BD
R
T
L
A
300
30
80
0
10
B
100
20
0
10
30
C
1000
0
300
0
50
1400, 50, 380, 10, 90
J
#
BD
R
T
L
D
100
60
0
60
75
I
50
25
0
15
50
J
50
15
0
25
25
200, 100, 0, 100, 150
68
Création d’un RI (2)
B
C
I
A
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
A Maj sur B et C
BD
R
T
L
I
50
25
0
15
50
D
150
75
0
85
100
1550, 125, 380, 95, 190
D
#
#
J
#
BD
R
T
L
J
50
15
0
25
25
D
150
85
0
85
125
1550, 135, 380, 85, 215
#
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
Somme de D sauf J
69
Maj d’un RI
• Analogue au processus de création
• Pour diminuer le coût, on peut accumuler les maj et
les traiter par lots
• Suppression d’un nœud suit le même principe
70
Bilan RI
• Structure d’indexation assez simple, mais maj génère beaucoup de
messages (mais diminue globalement le nb de msg par rapport à
Gnutella!)
• Exploration restreinte aux nœuds ayant la plus grande probabilité de
succès
• Fonctionne bien pour obtenir les meilleurs résultats, mais pas
forcément tous les résultats (plutôt orienté recherche des k meilleurs
résultats)
• Pas de garantie d’avoir tous les résultats
• Pour traiter des graphes généraux, il faut intégrer la gestion des cycles
(détection ou prévention)
• S’applique à des langages types mots-clés mais pas généralisable à des
langages plus complexes
• Classifier l’ensemble des nœuds via une classification « sémantique »
(e.g genres de musique)
• Pas d’information sur le nombre de sauts nécessaires (améliorations
possibles avec d’autres RI)
71
Une approche plus générale [Shen 04]
Autre
Super-peer
Super-peer
Global index
Group index
Local index
Local index
Local index
72
Hiérarchie de résumés
Global index
hp
Super-peer
level
hp
vs
Group index
hp
hp
vp
Peer
level
vp
Local index
hp
hp
hp
hp
vd
vd
vd
vd
document
document
document
Unit level
document
73
Construction des résumés
• Construction en deux étapes
– VSM (Vector Space Model): chaque document est
représenté par un vecteur (de grande dimension)
– LSI (Latent Semantic Indexing): utilisation de SVD
(Singular Value Decomposition), donne un point dans un
espace à k dimensions
• index
– Adaptation des VA files (Vector Approximation)
• Permet de calculer efficacement les K plus proches voisins
74
Exemple (1)
Id
Documents
d111
Monitoring XML Data on the Web
d211
Approximate XML joins
d321
Outlier Detection for High Dimensional Data
d421
High Dimensional Indexing using Sampling
d512
Document clustering with committes
d612
Document clustering with cluster refinement
d722
Title language model for information retrieval
d822
Document summarization in information retrieval
P1
P2
P3
P4
dinm : ième document du pair m du groupe n
75
Exemple (2)
d1
peer1
vp
Data,1,join,1 ,monitor,1,XML,2,web,1
10111
d2
SVD
01010
2d
2d
hp
Peer group 1
Data,2,detection,1,dimensional,2,high,2,index,1,join,1,monitor,1,outlier,1,sample,1,XML,2,web1
d3
Data,1,detection,1,dimensional,2,high,2,index,1,outlier,1,sample,1
2d
10000110021
…
SVD
d4
1111010
2d
peer2
11221001100
2d
SVD
0011101
2d
Peer group 2
76
Projet PADOUE
• Projet avec INRIA, LIP6, LIRMM, Cemagref
• Partage de données et de programmes entre chercheurs dans le
domaine de l’environnement
• Réseau à grande échelle, spécialisé, avec des utilisateurs
spécialisé : P2P sémantique
77
Médiation de données à large échelle
• Partage de données hétérogènes
– Outil de médiation
• Propriétés
– Intégration de données existantes
• Hypothèse
– Connaissances sur les sources
• Intérêt
– Traitement efficace des requêtes
• Distribution à large échelle
– Réseaux pair-à-pair
• Permet le passage à l’échelle et la dynamicité
78
Médiation et Pair-à-Pair
• Exploiter la complémentarité :
– Médiateur :
+ Langage de requêtes de haut niveau (SQL, XQuery,…)
- Sources connues (fixes)
- nombre limité de sources
– Pair-à-pair
+ Très grand nombre de sources
- Langage de requêtes pauvre (mots-clefs)
- Pb : comment localiser rapidement les données ?
79
Principes
• Mélanger différents niveaux d’informations
– Réseau global (contenu des nœuds): analogue à SON
– Utilisateurs : nœuds dont ils sont satisfaits
– Requêtes : utiliser les mêmes nœuds que ceux ayant traité
avec succès des requêtes analogues (même domaine)
• Utiliser le feedback
• Propager le feedback vers tous les nœuds par lesquels
la requête a transité
80
Informations sémantiques de Padoue
global
communauté
utilisateur
Type SON
{(cj, {(critèrei, {nj})})}
agrégé pour tous les
utilisateurs de la communauté
{(uk, {(critèrei, {nj})})}
81
Construction du réseau
• Ajout d’un nœud : s’adresser à un noeud connu du
réseau et récupérer l’information globale
• Mise à jour des informations de routage :
– Le feedback de l’utilisateur permet de mettre à jour
l’information utilisateur ET la communauté du nœud de
rattachement de l’utilisateur.
82
Bilan Padoue
• Utilisation conjointe de différents types d’information
• Informations statiques et dynamiques
• Besoin d’un minimum d’utilisation pour avoir de
bonnes tables de routage
• Suppose que les sites soient spécialisés et que les
utilisateurs posent des requêtes semblables
• Adapté à un domaine spécialisé
83
Comparatif sémantique
Type de
connaissance
statique
dynamique
apprentissage
SON
classification
domaine
oui
Non
classifieur
Routing
Indices
indexation
contenu
non
Oui
Comparaison
requête/indice
Padoue
classification
domaine +
utilisateurs +
requêtes
passées
oui
Oui
Requête
Feedback
utilisateur
84
P2P et BD
85
Gestion de données dans les P2P
Systèmes P2P
Dynamique
Placement aveugle
Passage à l’échelle
Autonomie
BD
Persistance
Cohérence des données
Propriétés transactionnelles
Schéma, intégration, médiation
Langage de requêtes, évaluation,
optimisation
indexation
86
Peer-to-Peer et bases de données
• BD dans les systèmes P2P
– Augmenter la puissance d’expression du langage de
requêtes (Huebsch 03, Villamil 04)
– Gestion de caches de résultats de requêtes (Sahin 04)
– Partage de données (http://gemo.futurs.inria.fr/projects/KadoP)
• P2P dans les SGBD
– Évaluation de requêtes réparties (Nejdl 03)
– Intégration de schémas (Tatarinov 03, Ooi 03)
– « intégration » de données (Arenas 03)
87
Projet PIER (Berkeley)
• Peer-to-peer Information Exchange and Retrieval
• Moteur de requêtes pour des environnements
distribués à très grande échelle (plusieurs milliers de
nœuds)
• Type d’applications visés : surveillance de l’Internet
• Relâchement de certaines contraintes BD (ex. ACID)
88
Architecture de PIER
App. 1
App. 2
Query
optimizer
Catalog
manager
Applications
Core
Relational
Execution
engine
PIER
Sur chaque
noeud
provider
Storage
manager
DHT
Overlay
routing
89
Composants PIER
• DHT : Bamboo, CAN, Chord
• Routing (propagation): leave, join, lookup(key),
locationMapChange()
• Storage manager (stockage temporaire en MC des
données de la DHT): store, retrieve, remove
• Provider (relie les 2 autres modules, et fait l’interface
avec les applications): get, put, renew, multicast,
lscan, newData
• Opérateurs relationnels au-dessus d’une DHT
(sélection, projection, jointure)
90
Bilan PIER
• Permet une évaluation de requêtes relationnelles sur
des DHT
• Passage à l’échelle
• Intégrer d’autres opérations (range queries, θjointure)
• Beaucoup de travail à faire sur l’optimisation
91
PinS : LSR-IMAG Grenoble
• Enregistrement et gestion de
données et de méta-données
– Méta-données : couples (attribut, valeur)
User Application
• Résolution de requête de
localisation
– Différentes stratégies
– Indexation
Insert()
Query()
PinS
Put()
Get()
DistributedStorageService
Lookup(), Join(), Leave()
DistributedLookupService
92
PinS : enregistrement d’un objet
• Enregistrement de l’objet dans le DSS
– Calcul de la clé de l’objet (Oid).
– Oid désigne un pair (pair de stockage) qui stocke l’objet et les
méta-données associées (Local Catalog).
• Enregistrement des méta-données dans le DSS
– Fragmentation
– Calcul d’une clé (Tid) pour chaque couple (attribut,valeur).
– Tid désigne un pair (pair de localisation) qui conserve la liste des
clés d’objets ayant cette valeur pour cet attribut
93
Exemple
P150
P600
Titre= Cent Ans de Solitude
Auteur=Gabriel Garcia Márquez
Année=1967
DSS.Put(123,Obj)
DSS. Put(201,123)
Données de localisation
P210
Titre= Cent Ans de Solitude
Auteur=Gabriel Garcia Márquez
Année=1967
TId
201
DSS. Put(401,123)
LstOId
{123}
Pair de localisation
P410
OId = (DSS.HashF(objet)) = 123
DSS. Put(510,123)
TId1 = (DSS.HashF(Année=1967)) = 510
TId
401
LstOId
{123}
TId2 = (DSS.HashF(Titre=CAS)) = 201
P550
TId3 = (DSS.HashF(Auteur=GGM)) = 401
Catalogue local (LC) sur le pair stockant l’objet
201, Titre, CAS, {123}
510, année, 1967, {123}
401, Auteur, GGM, {123}
TId
510
LstOId
{123}
94
PinS : Langage de requête
•
•
•
•
Query ::= Term [and/or Term]*
Term ::= EqTerm | IneqTerm | LikeTerm
EqTerm ::= AttributeName = value
IneqTerm ::= AttributeName op value
op is <, >, <= ou =>
• LikeTerm ::= AttributeName like [%lchar+[%]]
Exemple
Année<1988 and Title like «%One%» and auteur=GGM
95
Évaluation d’un EqTerm
stratégie générale
• Identification du pair de localisation :
– Calcule Tid du couple (attribut=valeur)
– Tid désigne le pair de localisation qui connaît toutes les
clés d’objets vérifiant ce terme.
• Conjonction, disjonction de EqTerm
– Intersection, union des réponses des pairs de
localisation.
• Couple (attribut,valeur) fréquent
– Pair de localisation surchargé (stockage, traitement)
96
Évaluation d’un EqTerm
stratégie locale
• Requête comportant plusieurs EqTerm :
– Pour les (Attribut, valeur) peu fréquents on utilise les pairs de
localisation pour connaître les clés d’objets candidats.
– Puis les autres termes sont évalués par le pair de stockage à l’aide du
LC (local strategy).
• Exemple :
P600
Titre= Cent Ans de Solitude
and/or
Année=1967
DLS.Lookup(123)
PinS.Evaluate(123,Query)
P150
P410
DSS.Get(510)
TId1 = (DSS.HashF(Année=1967)) = 510
TId2 = (DSS.HashF(Titre=CAS)) = 401
Titre= Cent Ans de Solitude
Auteur=Gabriel Garcia Márquez
Année=1967
IdTer
401
DSS.Get(401)
LstIdObj
{123}
P550
IdTer
510
LstIdObj
{123,750,...}
97
Évaluation d’un IneqTerm
• Évaluation coûteuse
• Solutions basées sur hash ordonnées
– Parcours des pairs susceptibles de contenir de l’information
de localisation
• Dans PinS
– Utilisation d’index
98
Évaluation d’un IneqTerm : Index
• Création d’index de localisation
–
–
–
–
une clé (Aid) est associée aux attributs indexés
Aid désigne le pair (pair attribut) qui stocke un index.
L’index mis à jour à l’enregistrement des objets.
Pour une valeur de l’attribut existant dans le système, le Tid
correspondant.
1969 197
1969 Valeur d’année
197 DSSHashF(Année=1969)
>= 1969
< 1969
1979 827 1987 773 1999 693
1963 285
1958 795 1959 691 1961489
1980773 1993 733
1963285 1967 319
1999 693 2003 668
…
99
Évaluation d’un IneqTerm : LC
• Quand une requête comporte d’autres termes
– Termes non indexés évalués par le pair de stockage à l’aide
du LC.
• Exemple :
P600
DLS.Lookup(123)
PinS.Evaluate(123,Query)
P150
DSS.Get(401)
Titre= Cent Ans de Solitude
Auteur=Gabriel Garcia Márquez
Année=1967
P410
IdTer
401
DSS.Get(795)
Titre= Cent Ans de Solitude
and/or
Année < 1963
TId1 = (DSS.HashF(Année) = 510
LstIdObj
{123}
DSS.Get(691)
DSS.Get(510)
Attribut Année
P550
TId2 = (DSS.HashF(Titre=CAS)) = 401
1969197
100
< 1969
>= 1969
Conclusions
• PinS est indépendant du système de DHT sous-jacent
– Architecture en trois couches : PinS, DSS et DLS
– Aucune hypothèse aux niveaux DSS et DLS
• Des stratégies d’évaluation pour une optimisation des requêtes
• Proposition pour améliorer l’accès aux données dans les
systèmes P2P, en adoptant une approche « BD » :
– fragmentation, duplication, cache de requêtes, index.
101
Projet Piazza (Washington Univ.)
• Système de médiation sans schéma global
• Chaque source dispose de son propre schéma et de
mappings vers d’autres sources
• Composition de mappings
• Résolution de requêtes : problème de reformulation
(approche mixte LAV et GAV)
102
Piazza (problèmes abordés)
•
•
•
•
Définition du langage d’expression des mappings
Étudier la composition de mappings
Étudier la reformulation de requêtes
Optimiser le processus d’évaluation (pipeline, précalculs)
• Dans un cadre relationnel et XML
103
Exemple de PDMS Piazza
Area(areaID, name, descr)
Project(projID, name, sponsor)
ProjArea(projID, areaID)
Pubs(pubID, projname, title, venue, year)
Author(pubID, author)
Member(projname, member)
DB-projects
U-Penn
data
Project(projID, name, descr)
Student(studID, name, status)
Faculty(facID, name, rank, office)
Advisor(facID, studID)
ProjMember(projID, memberID)
Paper(papID, title, forum, year)
Author(authorID, paperID)
Members(memID, Name)
Projects(projID, name, startDate)
ProjFaculty(projID, facID)
ProjStudents(projID, studID)
…
UW
data
Stanford
Area(areaID, name, descr)
data
Project(projID, areaID, name)
Pub(pubID, title, venue, year)
PubAuthor(pubID, authorID)
PubProj(pubID, projID)
Member(memID, projID, name, pos)
Alumni(name, year, thesis)
Direction(dirID, name)
Project(pID, dirID, name)
…
Berkeley
data
104
Définition des mappings (PPL)
• Description des sources (storage description)
– A : R = Q ou A : R ⊆ Q (A pair, R relation stockée par A, Q requête définie sur
le schéma de A)
– UPenn : students(sid, name, advisor) ⊆
UPenn : Student(sid, name, -), UPenn : Advisor(sid, fid), UPenn :
Faculty(fid, advisor, -, -)
• Médiation (peer mappings)
– Q1(A1) = Q2(A2) ou Q1(A1) ⊆ Q2(A2)
• Q1 et Q2 requêtes conjonctives de même arité
• A1 et A2 ensemble de pairs
– Egalité entre UW et DBProjects :
DBProjects:Member(pName, member) =
UW:Member(mid,pid,member), UW:Project(pid,pName)
– Definitional mappings
• Règles datalog portant sur les relations des pairs
105
Evaluation de requêtes
• Transformer Q en Q’ (exprimée sur des relations
stockées uniquement)
• Suppose que les mappings sont connus globalement!!
• Selon les mappings utilisés, doit mixer évaluation
GAV et LAV
106
Piazza (Mapping de schémas XML)
Schema S1 :
S1
people
faculty*
name
advisee*
student*
Schema S2 :
S2
people
faculty*
student*
name
advisor
* : une ou plusieurs occurrences
107
Requête posée sur S1
<result>{
For $faculty in document("S1.xml")/people/faculty,
$name in $faculty/name/text(),
$advisee in $faculty/advisee/text()
Where $name= "Ullmann"
Return <student>{$advisee}</student>
}
</result>
Etudiants conseillés par Ullmann
108
Mapping S1 vers S2
<S2>
for $people in /S1/people
return
<people>
for $name in
$people/faculty/name/text()
return
<faculty>{$name}</faculty>
for $student in $people/student/text()
return
<student>
<name>{$student}</name>
for $faculty in $people/faculty,
$name in $faculty/name/text(),
$advisee in
$faculty/advisee/text()
where $advisee=$student
return
<advisor>{$name}</advisor>
</student>
</people>
</S2>
Restriction de XQuery
Sémantique ensembliste
109
Piazza (bilan)
• Médiation sans schéma global
• Travail formel (mappings, composition mappings,
réécriture de requêtes, optimisation, …)
• Sur des données relationnelles et XML
• Certaines parties ne sont pas encore décentralisées
(évaluation de requêtes suppose connaissance globale
des mappings)
110
P2P et BD
• P2P est une voie prometteuse pour la gestion de
réseaux dynamiques et à grande échelle
• Domaine de recherche multi-disciplinaire (BD,
réseau, systèmes répartis, sciences sociales,…) très
actif (plusieurs workshops et conférences spécialisés)
• Pour l’instant, limité aux systèmes de partage de
fichiers, mais d’autres applications émergent
• Beaucoup de problèmes ouverts
111
Besoins applicatifs
Type
recherche
résultats
Garantie
Autonomie
stockage
Autonomie
routage
Gnutella
filtre
Tous?
Non
Oui
Oui
Chord
égalité
Un
oui
non
non
P-Grid
préfixe
Un
oui
Faible
non
Freenet
égalité
Un
Non
Oui
O/N
Super-peer
filtre
K
meilleurs
non
Oui
Oui pour SP,
non pour
autres
sémantique
filtre
K
meilleurs
non
Oui
oui
112
Problèmes ouverts
•
•
•
•
Sécurité
réputation
Contrôler le « free riding »
P2P sémantique
– On en est au début
– Mixer différents types de connaissances
– Connaissances dynamiques (apprentissage)
113
Sécurité
• Disponibilité (résistance aux attaques DoS)
• Authentification des ressources (si plusieurs réponses
différentes pour la même ressource)
– Plus vieille ressource
– Réputation (« experts »)
– Vote
• Anonymat
–
–
–
–
Auteur : quels utilisateurs ont créé quels documents?
Document : sur quels nœuds est stocké un document donné?
Lecteur : quels utilisateurs accèdent quels documents?
Serveur : quels documents sont stockés sur un nœud donné?
114
Bibliographie (générale)
•
•
•
•
•
•
•
•
•
•
•
K. Aberer, M. Hauswirth. Peer-to-Peer Information Systems: Concepts and Models, state-of-the-art,
and Future Systems, Tutorial IEEE ICDE, 2002
E. Adar, B. Huberman. Free Riding on Gnutella, Technical Report, Xerox PARC, septembre 2000
I. Clarke et al. Freenet: A Distributed Anonymous Information Storage and Retrieval System, LNCS
2009, Springer Verlag, 2001
L. Gong. JXTA: A Network Programming Environment, IEEE Internet Computing, 5(3), mai-juin
2001
Gnutella : http://www.gnutella.com
M.A. Jovanovic et al Scalability Issues in Large Peer-to-Peer Networks – A Case Study of Gnutella,
Research report, Univ. Cincinnati, 2001
J. Kleinberg. The Small-World Phenomenon: An Algorithmic Perspective, Technical Report 991776, Cornell Univ., 1999
J. Kubiatowicz et al. OceanStore: An Architecture for Global-Scale Persistent Storage, Proc.
ASPLOS, 2000
S. Saroiu, P. Gummadi, S. Gribble. A Measurement Study of Peer-to-Peer Sharing Systems, Proc.
Multimedia Computing and Networking, 2002
K. Sripanidkulchai. The Popularity of Gnutella Queries and its Implications on Scalability, février
2001
B. Yang, H. Garcia-Molina. Improving Search in Peer-to-Peer Systems, Proc. 28th Conf. On
Distributed Computing Systems, 2002
115
Bibliographie (DHT et super-pairs)
•
•
•
•
•
•
•
K. Aberer et al. Improving Data Access in P2P Systems, IEEE Internet
Computing, January 2002
K. Aberer. P-Grid: A Self-Organizing Access Structure for P2P Information
Systems, Proc. COOPIS, 2001
A. Rowstron, P. Dreschel. Pastry: Scalable, Distributed Object Location and
Routing for Large-Scale Peer-to-Peer Systems, Proc. IFIP/ACM Conf. On
Distributed Systems Platforms, 2001
I. Stoica et al. Chord: A Scalable Peer-to-Peer Lookup Service for Internet
Applications, Proc. ACM SIGCOMM 2001
S. Ratsanamy et al. A Scalable Content Addressable Network, Proc. ACM
SIGCOMM 2001
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
116
Bibliographie (P2P sémantique)
• 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
117
Bibliographie (médiation P2P)
•
•
•
•
•
•
•
•
K. Aberer, P. Cudré-Mauroux, M. Hauswirth. A Framework for Semantic Gossiping,
ACM SIGMOD Record 31(4), 2002
M. Arenas, V. Kantere, A. Kementsietsidis, I. Kiringa, R. Miller, J. Mylopoulos. The
Hyperion Project: From Data Integration to Data Coordination, ACM SIGMOD Recod
32(3), 2003
A. Halevy, Z. Ives, J. Madhavan, P. Mork, D. Suciu, I. Tatarinov. The Piazza peer data
management system. IEEE TDKE 16(7), 2004.
B.C Ooi, Y. Shu, K-L. Tan. Relational Data Sharing in Peer-based Data Management
Systems, ACM SIGMOD Record 32(3), 2003
J. Madhavan, A. Halevy. Composing Mappings Among Data Sources, Proc. VLDB
Conf., 2003
W. Nejdl, W. Siberski, M. Sintek. Design issues and challenges for RDF- and schemabased peer-to-peer systems. SIGMOD Record, 32(3), 2003.
W. Nejdel, B. Wolf, C. Qu, S. Decker, M. Sintek, A. Naeve, M. Nilsson, M. Palmer, T.
Rish. EDUTELLA: a P2P Networking Infrastructure based on RDF. Int. Conf. WWW,
2002.
I. Tatarinov, A. Halevy. Efficient Query Reformulation in Peer Data Management
System, Proc. ACM SIGMOD 2004
118
Bibliographie (requêtes complexes et DHT)
• J. Hellerstein. Architectures and Algorithms for Internet-Scale
(P2P) Data Management, tutorial VLDB 2004
• R. Huebsch, J. Hellerstein, N. Lanham, B.T Loo, S. Shenker, I.
Stoica. Querying the Internet with PIER, Proc. VLDB Conf.,
2003
• V. Papadimos, D. Maier. Mutant Query Plans, Information and
Software Technology, 44(4), 2002
• O.D Sahin, A. Gupta, D. Agrawal, A. EL Abbadi. A Peer-to-Peer
Framework for Caching Range Queries, Proc. ICDE 04 Conf.,
2004
• M. Villamil, C. Roncancio, C. Labbé. PinS: Peer-to-Peer
Interrogation and Indexing System, Proc. IEEE IDEAS
Conference, 2004
119
Téléchargement