1 / 24

Un protocole de cohérence des données tolérant aux fautes

Jean-Francois Deverge Encadrants : Gabriel Antoniu, Luc Bougé Réunion GDS IRISA – Projet PARIS DEA Informatique - 05/2004. Un protocole de cohérence des données tolérant aux fautes. Plan. Introduction Quel modèle de cohérence pour les données ? Un protocole pour le partage des données

ivan
Download Presentation

Un protocole de cohérence des données tolérant aux fautes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jean-Francois Deverge Encadrants : Gabriel Antoniu, Luc Bougé Réunion GDS IRISA – Projet PARIS DEA Informatique - 05/2004 Un protocole de cohérence des données tolérant aux fautes

  2. Plan • Introduction • Quel modèle de cohérence pour les données ? • Un protocole pour le partage des données • Le support de la tolérance aux fautes

  3. Partage de données pour la grille • Fédération de grappes • Hétérogène • Hiérarchique • Approche classique • Partage explicite • GridFTP, IBP, etc

  4. La plate-forme JuxMem • Service de partage de données pour la grille • Données modifiables • Environnement dynamique • Plate-forme d’expérimentations • Protocoles de cohérence • Stratégies de tolérance aux fautes juxmem Groupe g Groupe grappe C Groupe grappe A Groupe grappe B Architecture logique Architecture physique http://www.irisa.fr/paris/Juxmem

  5. Le modèle choisi :la cohérence d’entrée • Accès ordinaires (read/write) • Accès spéciaux synchronisés • acquire : accès exclusif • acquireR : accès en lecture • release : libération du verrou • Association explicite d'un verrou avec une ou plusieurs variables partagées • Granularité de partage = ensemble des données protégées par le verrou • Plusieurs lecteurs concurrents • MRSW : Multiple Reader Single Writer

  6. Exemple (1/2) • var A, B shared(L) • B = 3 • acquireR(L) • c = A; • d = B; • acquireR(L) • e = A; • f = B; • acquire(L) • A = 12; • B = 99; • release(L)

  7. Exemple (2/2) • var A, B shared(L) • B = 3 • acquireR(L) • c = A; • d = B; • acquireR(L) • e = A; • f = B; • acquire(L) • A = 12; • B = 99; • release(L) c = e = A = 12; d = f = B = 99;

  8. API visée • interface JuxMemService • ID alloc( size, attrib ) • ECMemory map( ID ) • interface ECMemory • void read(buffer, offset, length) • void write(buffer, offset, length) • void acquire() • void acquireR() • void release() • void flush()

  9. Quel protocole pour la gestion de ces données ? • Une copie de référence (« home ») persistante [HBRC] • Utilisation d’un group membership pour réaliser la réplication du home • Gestion des accès à la donnée (obtention du verrou) Home access req_acquire req_update req_release req_acquire

  10. Ou placer ces données ? • Persistance : • Dissémination statistique [PAST] • Répartition sur plusieurs grappes • Efficacité : • Copies primaires choisies dans une partie rapide du réseau [OceanStore] • Copies choisies dans des grappes proches • Communication inter-grappes pour toutes requêtes req_acquire

  11. Un début de solution :Les caches hiérarchiques • Utilisation d'un cache de données au niveau de chaque grappe [CLRC] • Plusieurs politiques de cohérence des caches • Communication inter-grappes pour les requêtes d’acquisition du verrou et les mises a jour home req_read * req_acquire

  12. Un deuxième pas :Les verrous hiérarchiques [H2BRC] GDG Home Home global req_acquire req_read req_write req_release req_acquire req_read req_write req_release Home local Home local C B A C A B

  13. Idee : superposer les caches et verrous hierarchiques • Gestion des accès aux nœuds locaux • Possibilité de relâchement de la cohérence en repoussant l'application des mises à jour sur le home global • Mécanisme d'allocation du home local GDG Home global req_acquire req_read req_release allocate_home Home local

  14. Persistance des home locaux • Réplication des home locaux par l’utilisation de group membership • LDG : Local Data Group • Home global • GDG : Global Data Group • Multiplication des copies dans le système GDG req_acquire req_read req_release allocate_ldg LDG LDG

  15. Assimilation des LDG en membres du GDG • Diminution du nombre de copies • Amélioration de la persistance du GDG

  16. Le support de la tolérance aux fautes • Fautes au niveau • GDG • LDG • Client • Utilisation d'un group membership proactif • Coût GDG LDG LDG LDG

  17. L'objet version • Associe a chaque verrou • (X, Y, Z) = • X : un compteur de fautes de LDG • Y : compteur de fautes de client • Z : Un compteur de mises à jour • Un historique des versions valides

  18. Scenario 0 : un exemple d’execution sans fautes

  19. Scenario 1 : La faute d'un client

  20. Scenario 2 : La reprise d'un client

  21. Scenario 3 : La faute d'un LDG (1/2)

  22. Scenario 3 : La faute d'un LDG (2/2)

  23. Prochaines étapes • Terminer l’implémentation • Évaluation expérimentale sur plusieurs grappes • Autres modèles et protocoles : • Protocoles par invalidation • Modèles de cohérence stricte ou séquentielle • Modèle de cohérence de portée (MRMW) • Multi-modèles (couches LDG différentes)

  24. --- Copie [] [C; A] [C; A] data lock_access data req_acquire req_write req_acquire req_read A req_read C B Fig 3 :B lit la donnee et C met a jour la donnee Fig 2 :C obtient une donnee coherente Fig 1 :A et C demandent l'acces exclusif [A] [A] lock_access data req_read req_release Fig 4 :C relache le verrou et A obtient l'acces exclusif Fig 5 : A lit une donnee coherente req_acquire

More Related