Title: Premi
1- Premières études sur la gestion
- de la volatilité dans Pastis
- Fabio Picconi
- Réunion GDS 19/11/2004
2Plan de lexposé
- Systèmes pair-à-pair
- Réseaux structurés Pastry, PAST
- Pastis
- Rappel
- Mises à jour
- Problème de la volatilité
- KBR routage cohérent
- DHT accès aux blocs
- Pastis modèles de cohérence
3 4Systèmes pair-à-pair
Application
Syst. de fichiers réparti Pastis
Tier 2
Tier 1
DHT PAST
Tier 0
KBR Pastry
5Pastry
04F2
04F2
E25A
C52A
834B
k 8958
5230
8909
3A79
route(m,8959)
8BB2
C52A
3A79
AC78
k 8959
8954
E25A
5230
8BB2
AC78
root ofkey 8959
8957
895D
8957
8954
895D
8909
834B
Address space
6PAST
- Interface
- void put( Key k, Block b )
- Block b get( Key k )
7PAST
04F2
04F2
E25A
C52A
834B
k 8958
5230
8909
3A79
put(8959,block)
8BB2
C52A
3A79
AC78
k 8959
8954
E25A
5230
8BB2
replica
AC78
root ofkey 8959
8957
895D
8957
block
8954
895D
8909
replica
834B
Address space
8 9Pastis
- Caractéristiques
- Simplicité
- Complètement décentralisé
- Passant à léchelle
10Pastis
- Structure similaire à lUFS (Unix File System)
- inodes stockés dans des User Certificate Blocks
(UCB, modifiables) - données stockées dans Content-Hash Blocks (CHB,
immuables)
directory inode
directory contents
file inode
metadata _at_CHB1 _at_CHB2 _at_CHBi _at_CHBii _at_CHBiii
file contents
file1 _at_UCB2 file2 _at_UCB3 file3
metadata _at_CHB3
CHB1
CHB3
UCB1
indirect block
directory contents
UCB2
_at_CHBx _at_CHBy _at_CHBz --- empty ---
file4 _at_UCBj file5 _at_UCBk file6
CHBi
CHBx
11Pastis mises à jour
- insérer les nouvelles données (CHBs)
- réinsérer linode (UCB) qui pointe vers les
nouveaux CHBs
directory inode
file inode
file contents
directory contents
metadata _at_CHB1 _at_CHB2 _at_CHBi _at_CHBii _at_CHBiii
metadata _at_CHB3
foo
file1 _at_UCB2 file2 _at_UCB3 file3
CHB3
CHB1
UCB1
UCB2
12Pastis mises à jour
- insérer les nouvelles données (CHBs)
- réinsérer linode (UCB) qui pointe vers les
nouveaux CHBs
directory inode
file inode
file contents
directory contents
metadata _at_CHB1 _at_CHB2 _at_CHBi _at_CHBii _at_CHBiii
metadata _at_CHB3
foo
file1 _at_UCB2 file2 _at_UCB3 file3
CHB3
CHB1
new file contents
foo bar
UCB1
UCB2
Insert new CHB into the DHT
CHB4
13Pastis mises à jour
- insérer les nouvelles données (CHBs)
- réinsérer linode (UCB) qui pointe vers les
nouveaux CHBs
directory inode
file inode
file contents
directory contents
metadata _at_CHB1 _at_CHB2 _at_CHBi _at_CHBii _at_CHBiii
metadata _at_CHB4
foo
file1 _at_UCB2 file2 _at_UCB3 file3
CHB3
CHB1
new file contents
foo bar
UCB1
UCB2
Update file inode to point to new CHB
CHB4
14Pastis mises à jour
- insérer les nouvelles données (CHBs)
- réinsérer linode (UCB) qui pointe vers les
nouveaux CHBs
directory inode
file inode
file contents
directory contents
metadata _at_CHB1 _at_CHB2 _at_CHBi _at_CHBii _at_CHBiii
metadata _at_CHB4
foo
file1 _at_UCB2 file2 _at_UCB3 file3
CHB3
CHB1
new file contents
foo bar
UCB1
UCB2
Reinsert inode UCB into the DHT
CHB4
15- Volatilité dans les systèmes pair-à-pair
16Problématique
- Réseaux structurés
- Routage efficace O(log N)
- Routage correcte le message est délivré à la
racine de la clef - Il faut maintenir des tables de routage correctes
- Resistance à la volatilité
- Résilience statique
- Mesures de temps de session sur des réseaux
existants - Comportement des prototypes existants en présence
dune forte volatilité - Effets sur les couches DHT et Pastis
17Volatilité
- Résilience statique
- Capacité dun algorithme de routage pair-à-pair
de délivrer un message à sa destination après
défaillance dun ensemble de nœuds - Gummadi et al. (2003)
18Volatilité
- Mesures de temps de session
- Effectuées sur des réseaux existants
- Méthodes actives (crawling, probing) et passives
(tracing) - Résultats très différents
19Volatilité
- Comportement des prototypes existants
- Injection de fautes selon un processus de Poisson
- Mesures pourcentage de lookups cohérents,
latence du lookup - Rhea et al. (2004)
20Volatilité
- Effets dun routage défaillant
- KBR
- Messages délivrés à de fausses racines(un nœud
croit, à tort, être la racine ? leafsets
incorrects) - DHT
- Vision incohérente, voir partitionnement du
replica set - Mises à jour effectuées sur des répliques
différentes - Données existantes non retrouvées (répliques
flottantes) - Pastis
- Non respect du modèle de cohérence
21Volatilité Effets sur le KBR
04F2
E25A
3A79
k 8959
C52A
AC78
k 8959
5230
root seen by node 3A79
8BB2
895D
8957
root seen by node 5230
8954
8909
834B
Address space
22Volatilité Effets sur la DHT
04F2
E25A
3A79
C52A
AC78
k 8959
5230
8BB2
895D
8957
8954
répliques
8909
834B
Address space
23Volatilité Effets sur la DHT
04F2
E25A
3A79
C52A
AC78
k 8959
5230
8BB2
895D
8957
8954
répliques déconnectées
8909
834B
Address space
24Volatilité Effets sur la DHT
04F2
E25A
3A79
C52A
AC78
k 8959
5230
8BB2
895D
8957
8954
répliques reconnectées
8909
834B
Address space
25Volatilité
- Premiers systèmes adressant la volatilité au
niveau KBR - Bamboo (Berkeley, basé sur Pastry)
- Maintenance périodique au lieu de réactive
- MSPastry (Microsoft, évolution de Pastry)
- Heartbeats, active probing
- Propagation des leaf sets correctes
- Difficultés
- Comportement prototypes difficile à analyser par
seule simulation - Absence de preuve des algorithmes
- Modèle de communication peu clair
- DHT protocole de réplication (répliques
flottantes)
26Volatilité
- Directions
- Peut-on caractériser le comportement défaillant
des couches KBR et DHT en présence dune forte
volatilité ? - Peut-on les fiabiliser ?
- Détection de routage défaillant
- Déviation maximale par rapport à la vraie racine
- Disposant dun KBR non fiable, peut-on construire
au-dessus une DHT fiable ? - Protocole de réplication (niveau DHT)
- Quorum dynamiques ?
- Peut-on envisager de fiabiliser la couche tier 2
(Pastis) à partir dune DHT et KBR non fiables ?
27