270 likes | 381 Vues
Premières études sur la gestion de la volatilité dans Pastis Fabio Picconi Réunion GDS – 19/11/2004. Plan de l’exposé. 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
E N D
Premières études sur la gestion de la volatilité dans Pastis Fabio Picconi Réunion GDS – 19/11/2004
Plan de l’exposé • 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
Systèmes pair-à-pair Couches pair-à-pair Application Syst. de fichiers réparti Pastis Tier 2 Tier 1 DHT : PAST Tier 0 KBR : Pastry
Pastry 04F2 04F2 E25A C52A 834B k = 8958 5230 8909 3A79 route(m,8959) 8BB2 C52A 3A79 k = 8959 AC78 8954 E25A 5230 8BB2 AC78 root ofkey 8959 8957 895D 8957 8954 895D 8909 834B Address space
PAST Interface • void put( Key k, Block b ); • Block b = get( Key k );
PAST 04F2 04F2 E25A C52A 834B k = 8958 5230 8909 3A79 put(8959,block) 8BB2 C52A 3A79 k = 8959 AC78 8954 E25A 5230 8BB2 replica AC78 root ofkey 8959 8957 895D 8957 block 8954 895D 8909 replica 834B Address space
Pastis Caractéristiques • Simplicité • Complètement décentralisé • Passant à l’échelle
Pastis Structure similaire à l’UFS (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 @CHB1 @CHB2 … @CHBi @CHBii @CHBiii file contents file1 @UCB2 file2 @UCB3 file3 … … metadata @CHB3 … … … … … … CHB1 CHB3 UCB1 directory contents indirect block UCB2 file4 @UCBj file5 @UCBk file6 … … @CHBx @CHBy @CHBz --- empty --- CHBx CHBi
Pastis – mises à jour • insérer les nouvelles données (CHBs) • réinsérer l’inode (UCB) qui pointe vers les nouveaux CHBs directory inode file inode file contents directory contents metadata @CHB1 @CHB2 … @CHBi @CHBii @CHBiii metadata @CHB3 … … … … … foo file1 @UCB2 file2 @UCB3 file3 … … CHB3 CHB1 UCB1 UCB2
Pastis – mises à jour • insérer les nouvelles données (CHBs) • réinsérer l’inode (UCB) qui pointe vers les nouveaux CHBs directory inode file inode file contents directory contents metadata @CHB1 @CHB2 … @CHBi @CHBii @CHBiii metadata @CHB3 … … … … … foo file1 @UCB2 file2 @UCB3 file3 … … CHB3 CHB1 new file contents foo bar UCB1 UCB2 Insert new CHB into the DHT CHB4
Pastis – mises à jour • insérer les nouvelles données (CHBs) • réinsérer l’inode (UCB) qui pointe vers les nouveaux CHBs directory inode file inode file contents directory contents metadata @CHB1 @CHB2 … @CHBi @CHBii @CHBiii metadata @CHB4 … … … … … foo file1 @UCB2 file2 @UCB3 file3 … … CHB3 CHB1 new file contents foo bar UCB1 UCB2 Update file inode to point to new CHB CHB4
Pastis – mises à jour • insérer les nouvelles données (CHBs) • réinsérer l’inode (UCB) qui pointe vers les nouveaux CHBs directory inode file inode file contents directory contents metadata @CHB1 @CHB2 … @CHBi @CHBii @CHBiii metadata @CHB4 … … … … … foo file1 @UCB2 file2 @UCB3 file3 … … CHB3 CHB1 new file contents foo bar UCB1 UCB2 Reinsert inode UCB into the DHT CHB4
Problé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 d’une forte volatilité • Effets sur les couches DHT et Pastis
Volatilité Résilience statique Capacité d’un algorithme de routage pair-à-pair de délivrer un message à sa destination après défaillance d’un ensemble de nœuds Gummadi et al. (2003) :
Volatilité 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
Volatilité 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) :
Volatilité Effets d’un 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
Volatilité – Effets sur le KBR 04F2 E25A 3A79 k = 8959 C52A AC78 k = 8959 root seen by node 3A79 5230 8BB2 895D 8957 root seen by node 5230 8954 8909 834B Address space
Volatilité – Effets sur la DHT 04F2 E25A 3A79 C52A AC78 k = 8959 5230 8BB2 895D 8957 8954 répliques 8909 834B Address space
Volatilité – 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
Volatilité – Effets sur la DHT 04F2 E25A 3A79 C52A AC78 k = 8959 5230 8BB2 895D 8957 8954 répliques reconnectées 8909 834B Address space
Volatilité 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)
Volatilité Directions • Peut-on caractériser le comportement défaillant des couches KBR et DHT en présence d’une forte volatilité ? • Peut-on les fiabiliser ? • Détection de routage défaillant • Déviation maximale par rapport à la vraie racine • Disposant d’un 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 d’une DHT et KBR non fiables ?