Title: Architecture des syst
1Architecture des systèmes pair-à -pairde gestion
de données
- Gabriel Antoniu
- Projet PARIS
- IRISA/INRIA
2Quest-ce que le pair-Ã -pair ?
NÅ“ud
NÅ“ud
NÅ“ud
Internet
NÅ“ud
NÅ“ud
- Une architecture de système distribué
- Sans contrôle centralisé
- Symétrie fonctionnelle des nœuds
- Une architecture pour la très grande échelle
3Le modèle pair-à -pair
- Caractéristiques
- Haute dynamicité
- Composition et topologie du réseau
- Extensibilité
- Haute disponibilité
- Réplication
- Applications
- Partage de données
- Messagerie instantanée
- Calcul global
4Recherche dun objetdans un réseau pair-à -pair
- Problème trouver une donnée à partir dun
mot-clé
NÅ“ud
?
NÅ“ud
NÅ“ud
Internet
NÅ“ud
NÅ“ud
5Localisation centralisée Napster
?
BD
Transfert
Internet
Publication
- Goulot détranglement
- Taille du répertoire central O(n)
- Vulnérabilité
6Localisation par inondation Gnutella
?
?
?
?
Internet
?
- Coût élevé (grand nombre messages)
- Réponse partielle
7Localisation dun objet
- Sources des difficultés
- Comment obtenir des réponses pertinentes ?
- Placement arbitraire des objets
- Simplifier le problème
- Une clé unique pour chaque objet
- Affectation  intelligente des clés aux nœuds
- Trouver lobjet à partir de clé
- Solution table de hachage !
?
Internet
8Localisation par hachage
Localiser (clé)
Internet
Publier (clé, objet)
- Approche totalement distribuée
- Localisation exacte et efficace
- Equilibrage de charge (tables de routage, trafic)
- Extensible
9Défis
- Minimiser le nombre de sauts
- Minimiser la taille des tables de routage
- Réagir efficacement à la dynamicité
- Freenet (I. Clarke) anonymat
- Chord (MIT) efficacité et simplicité
- Tapestry (Berkeley) introspection et
auto-maintenance - Pastry (Rice/MSR) extensibilité
10Exemple Chord Hachage clé -gt successeur
0
1
2m-1
N10
K5, K10
Clé Noeud
N100
K100
Espace circulaire des ID (m bits)
N32
K11, K30
N80
K65, K70
N60
K33, K40, K52
- Les clés et les nœuds ont des identifiants
uniques sur m bits - Successeur le plus petit ID(noeud) ? ID(clé)
11Localisation
N5
N10
N110
Où est la clé 50?
N20
La clé 50 est sur le noeud 60
N99
N32
N40
N80
N60
12Tolérance aux fautes Listes de successeurs
10, 20, 32
N5
20, 32, 40
N10
5, 10, 20
N110
32, 40, 60
N20
110, 5, 10
N99
40, 60, 80
N32
N40
60, 80, 99
99, 110, 5
N80
N60
80, 99, 110
- Chaque nœud mémorise r successeurs
- Les nœuds morts peuvent être ignorés
13Efficacité Table des raccourcis
N10
1/128
1/64
1/32
1/16
1/8
¼
½
- N mémorise raccourcik Successeur(N 2k-1)
14Localisation en O(log N) sauts
N5
N10
N110
K19
N20
N99
N32
Localiser(K19)
N80
N60
15Insertion dun nœud
N25
N36
1. Localiser(N36)
K30 K38
N40
16Insertion dun nœud (2)
N25
2. N36 positionne son successeur
N36
K30 K38
N40
17Insertion dun nœud (3)
N25
3. Copie des clés 26..36 depuis N40 vers N36
N36
K30
K30 K38
N40
18Insertion dun nœud (4)
N25
4. Positionner successeur(N25)
N36
K30
K30 K38
N40
19Localisation dans ChordRésumé
- API localisation(clé) ? adresse IP
- Chord ne stocke pas les données
- Simplicité
- Efficacité O(log N) sauts
- N est le nombre total de nœuds
- Extensibilité taille des tables O(log N)
- Tolérance aux fautes
20Table de hachage distribuée
valeur
get (clé)
put(clé, valeur)
(DHash)
Table de hachage distribuée
Adresse IP
localiser(clé)
(Chord)
Service de localisation
.
nœud
nœud
nœud
- DHash distribue les données sur plusieurs nœuds
21Rôle de la couche de gestion des données (DHash)
- Put(clé, valeur) et get(clé) ? valeur
- Un bloc une paire clé/valeur
- Utilise Chord pour le stockage des blocs
- Tolérance aux fautes réplication des blocs
- Equilibrage de charge cacher les blocs
- Authentification du contenu des blocs
22DHash réplication des blocs sur r successeurs
N5
N10
N110
N20
N99
Bloc 17
N40
N80
N50
N60
N68
- Réplicas faciles à trouver en cas de panne du
successeur - Hachage des IDs -gt pannes indépendantes
23Gestion des réplicas par le premier successeur
N5
N10
N110
N20
N99
Copie de 17
Bloc 17
N40
N80
N50
N60
N68
24CFS Système de fichiers pair-à -pair
fichier
insert(fichier)
lookup(fichier)
(CFS)
Système de fichiers en lecture seule
valeur
get(clé)
put(clé, valeur)
(DHash)
Table de hachage distribuée
Adresse IP
localiser(clé)
(Chord)
Service de localisation
.
nœud
nœud
nœud
- Les fichiers ont des noms uniques
- CFS découpe le fichier en blocs et les stocke
grâce à DHash
25La couche CFS
I-nœud répertoire
H(B1)
Racine
Répertoire
I-nœud
B1
H(F)
H(I)
H(D)
D
F
I
signature
B2
H(B2)
Exemple /D/F
- CFS interprète les blocs DHash
- Blocs de données
- Blocs de méta-données
26Combiner localisation et routage Pastry,
Tapestry
insert(fichier)
lookup(fichier)
fichier
(PAST, Oceanstore)
Système de stockage de fichiers
route(msg, clé)
reply
(Pastry, Tapestry)
Service de localisation et routage
.
nœud
nœud
nœud
- Les données sont envoyées à des IDs, non à des
adresses IP - Pas (forcément) de découpage en blocs
27Gestion de données modifiables Ivy
insert
lookup
read/write
(Ivy)
Système de fichiers modifiables
valeur
get(clé)
put(clé, valeur)
(DHash)
Table de hachage distribuée
Adresse IP
localiser(clé)
(Chord)
Service de localisation
.
nœud
nœud
nœud
- Nouveau bloc pour chaque modification sur Ivy
- Ecrivains multiples un journal par utilisateur
- Faible nombre dutilisateurs
28Gestion de données modifiables OceanStore
29Dissémination des fragments
- Hypothèse peu de modifications
30Conclusion
- Résultats significatifs
- Stratégies de localisation
- Extensibilité
- Disponibilité
- Gestion de la dynamicité
- Tolérance aux fautes
- Applications stockage persistant et partage en
lecture seule - To do list
- Plates-formes dévaluation expérimentale réaliste
- Prise en compte dautres applications
- Calcul scientifique
31Stockage pour le calcul scientifique quelques
problèmes
- Partage de données modifiables
- Peu décrivains
- Peu de modifications
- Modèle de cohérence ?
- Partage de données structurées
- Gestion de matrices distribuées
- Prise en compte de la topologie réseau
- Hiérarchie
- Liens haut-débit
- Sécurité, authentification
32Ecole DRUIDE 2004
- DistRibUtIon de Données à grande Echelle
- CNRS, INRIA, ARP, ACI
- Port aux Rocs (Bretagne)
- 24-28 Mai 2004