Cohérence et volatilité dans un service de partage de données dans les grilles de calcul Jean-François Deverge, Sébastien Monnet Projet PARIS - IRISA/INRIA, Rennes RenPar - Avril 2005
Contexte : grille de calcul Architecture visée : fédérations de grappes (ex. GRID 5000) Applications visées : simulations numériques distribuées (ex. couplage de code) Problème : quelle est la bonne approche pour le partage de données ? Solid mechanics Optics Dynamics Satellite design Thermodynamics
Approches existantes : gestion explicite Localisation et transfert explicite GridFTP [ANL], MPICH-G2 [ANL] Sécurité, transfert parallèle Internet Backplane Protocol [UTK] Limites Complexité des applications à grande échelle Aucune garantie de cohérence pour les données répliquées
Gestion de la cohérence : Sytèmes à Mémoire Virtuellement Partagée Propriétés : Accès uniforme à la donnée via un identifiant global Localisation et transfert transparents Modèles et protocoles de cohérence Mais : Petite échelle, architecture statique Challenge dans les grilles : Intégrer de nouvelles hypothèses ! Passage à l’échelle Nature dynamique Tolérance aux fautes Migration ? Réplication ? Ces problèmes ont fait l’objet d’études dans le cadre des DSM. Nœud 0 Nœud 1
Etude de cas : Protocol de cohérence tolérant aux fautes Point de départ : protocole « home-based » non tolérant aux fautes Modèle de cohérence relâchée, cohérence d’entrée Association explicite données / verrous Ecrivain unique / lecteurs multiples acquire(L) acquireRead(L) Implémenté par un protocole « home-based » Home Home Home Client
Idée : groupes tolérants aux fautes Répliquer les entités critiques sur un groupe de nœuds Gestion des groupes de nœuds : protocoles de composition de groupe Diffusion atomique Exemple d’architecture: A. Schiper[EPFL] Tolérance aux fautes Adapteur Composition et communication de groupe Diffusion atomique Consensus Détecteur de défaillance Communications
Approche : gestion découplée Couches de tolérance aux faute et de cohérence séparées Interactions définies par une couche de jonction Cohérence Couche de jonction Tolérance aux fautes
Interaction cohérence/tolérance aux fautes Protocole de cohérence (PC) Configuration dynamique du CP Tolérance aux fautes Groupe auto-organisant Entités critiques implémentées par des groupes de noeuds Gestion des groupes : protocoles de composition et de communication de groupes Couche de jonction : Groupe auto-organisant Configuration des nouveaux membres D D D A B A B A B A B C
Passage à l’échelle lock acquire read x donnée x release Grappe A Grappe B Client A Home Client B acquire lock read x donnée x release acquire w(x) lock read x donnée x w(x) release
Idée : groupes hiérarchiques GL GG : groupe global GL : groupe local GG Client Repose sur des mécanismes de réplication et des protocoles de communication de groupe utilisés dans les systèmes distribués.
Résumé Home
Cadre d’application : Le service de partage de données JuxMem Systèmes MVP : cohérence et accès transparent Systèmes pair-à-pair : grande échelle et dynamicité Basé sur JXTA, plateforme pair-à-pair [Sun Microsystems] Groupe JuxMem Groupe data Groupe cluster A Groupe cluster C Groupe cluster B Architecture logique Architecture physique
Implémentation au sein de JuxMem GG : groupe global GL : groupe local Groupe data ≈ GL + GG Groupe JuxMem GG GL GL Groupe cluster A Groupe cluster C Groupe cluster B Architecture logique Architecture physique
Evaluation préliminaire Expérimentations Coût de l’allocation en fonction du degré de réplication Coût des opérations de base read/update Environnement de test : grappe paraci (IRISA) Bi Pentium IV 2,4 Ghz, 1 Go de RAM, Ethernet 100 Emulation de 6 grappes de 8 nœuds GroupJuxMem Groupe cluster A Groupe cluster B Groupe cluster C Groupe cluster D Groupe Cluster E Groupe cluster F
Processus d’allocation Découverte de n fournisseurs selon le degré de réplication spécifié Envoie d’une requête d’allocation aux n fournisseurs trouvés Chaque fournisseur recevant une telle requête : Instancie les couches de cohérence et de tolérance aux fautes
Coût de l’allocation 1 grape 2 grapes 3 grapes 4 grapes 5 grapes
Coût des opérations de base (16KO)
Coût des opérations de base (4MO)
Groupes auto-organisants Conclusion Gestion de la cohérence de données modifiables répliquées dans un environnement dynamique Plateforme expérimentale pour étudier les interactions tolérance aux fautes <-> protocoles de cohérence Cohérence Groupes auto-organisants Tolérance aux fautes Noyau JuxMem (Mathieu Jan)
Travaux en cours Conception Expérimentations (avec des fautes ;-)) De nouveaux protocoles de cohérence, stage de DEA de Loïc Cudennec De multiples algorithmes de composition de groupe, réplication Collaboration avec Indranil Gupta (UIUC, IL) Etude des interactions cohérence / tolérance aux fautes Expérimentations (avec des fautes ;-)) Multiples scénarios de fautes Multiples protocoles de cohérence / blocks tolérants aux fautes Etude des compromis garanties offertes / efficacité Introspection et politiques d’adaptation (cohérence, tolérance aux fautes) Degré de risques Besoins des applications