1 Premières études sur la gestion de la volatilité dans Pastis Fabio Picconi Réunion GDS – 19/11/2004
2 1.Systèmes pair-à-pair Réseaux structurés : Pastry, PAST 2.Pastis Rappel Mises à jour 3.Problème de la volatilité KBR : routage cohérent DHT : accès aux blocs Pastis : modèles de cohérence Plan de l’exposé
3 Systèmes pair-à-pair
4 Tier 0 Tier 1 Tier 2 KBR : Pastry DHT : PAST Syst. de fichiers réparti Pastis Couches pair-à-pair Application
5 Pastry 04F B C52A BB2 3A AC78 895D E25A 04F2 3A B BB2 AC78 C52A E25A k = 8958 k = 8959 route(m,8959) root of key 8959 Address space 895D
6 PAST Interface void put( Key k, Block b ); Block b = get( Key k );
7 PAST 04F B C52A BB2 3A AC78 895D E25A 04F2 3A B BB2 AC78 C52A E25A k = 8958 k = 8959 put(8959,block) root of key 8959 block Address space replica 895D replica
8 Pastis
9 Caractéristiques Simplicité Complètement décentralisé Passant à l’échelle
10 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, UCB1 directory inode file3 … … CHB1 directory contents … UCB2 file inode … CHB3 @CHBz --- empty --- CHBi indirect block file6 … … CHBx directory contents
11 Pastis – mises à UCB1 directory inode file3 … … CHB1 directory contents … UCB2 file inode foo CHB3 file contents insérer les nouvelles données (CHBs) réinsérer l’inode (UCB) qui pointe vers les nouveaux CHBs
12 Pastis – mises à jour insérer les nouvelles données (CHBs) réinsérer l’inode (UCB) qui pointe vers les nouveaux directory inode CHB1 directory contents … file inode foo CHB3 file contents foo bar CHB4 new file contents Insert new CHB into the DHT UCB1UCB2 file3 … …
13 Pastis – mises à jour insérer les nouvelles données (CHBs) réinsérer l’inode (UCB) qui pointe vers les nouveaux directory inode CHB1 directory contents … file inode foo CHB3 file contents foo bar CHB4 new file contents Update file inode to point to new CHB file3 … … UCB1UCB2
14 Pastis – mises à jour insérer les nouvelles données (CHBs) réinsérer l’inode (UCB) qui pointe vers les nouveaux directory inode CHB1 directory contents … file inode foo CHB3 file contents foo bar CHB4 new file contents Reinsert inode UCB into the DHT file3 … … UCB1UCB2
15 Volatilité dans les systèmes pair-à-pair
16 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
17 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) :
18 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é
19 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é
20 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
21 Volatilité – Effets sur le KBR 04F2 3A B BB2 AC78 C52A E25A k = 8959 Address space 895D root seen by node 5230 root seen by node 3A79 k = 8959
22 Volatilité – Effets sur la DHT 04F2 3A B BB2 AC78 C52A E25A k = 8959 Address space 895D répliques
23 Volatilité – Effets sur la DHT 04F2 3A B BB2 AC78 C52A E25A k = 8959 Address space 895D répliques déconnectées
24 Volatilité – Effets sur la DHT 04F2 3A B BB2 AC78 C52A E25A k = 8959 Address space 895D répliques reconnectées
25 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)
26 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 ?
27 Questions ?