370 likes | 429 Views
RS2.7 : un Canevas Adaptable de Duplication. Stéphane Drapeau 1,2 , Claudia L. Roncancio 2 , Pascal Déchamboux 1 1 France Télécom R&D, Meylan 2 Laboratoire LSR IMAG, Saint Martin d’Hères. Contexte. De nouvelles contraintes dans la mise en place des infrastructures :
E N D
RS2.7 : un Canevas Adaptable de Duplication Stéphane Drapeau1,2, Claudia L. Roncancio2, Pascal Déchamboux1 1 France Télécom R&D, Meylan 2 Laboratoire LSR IMAG, Saint Martin d’Hères
Contexte • De nouvelles contraintes dans la mise en place des infrastructures : • Non connaissance de l’architecture • Systèmes évolutifs • Ressources offertes très différentes • Solution : séparation des considérations • Aspects fonctionnels : code applicatif • Aspects non fonctionnels : transactions, requêtes persistance, duplication • EJB, CORBA, .Net, AOP, Systèmes réflexifs
Le projet NODS Networked Open Database Services • « Déconstruire » les SGBD sous forme de services afin d'en répartir les fonctions • Rendre adaptable les aspects non fonctionnels Médiateurs Requêtes Transactions Persistance Duplication Communication, Env. d’exécution
Objectifs concernant la duplication • Offrir un support adaptable de la duplication • Donner la propriété d’adaptabilité au support • Adaptabilité pour être adaptable : • A l’application • Utilisation avec des applications différentes • Au contexte non fonctionnel • Utilisation dans divers contextes • Dans les protocoles supportés • Afin de supporter de nouveaux besoins
Problématique (1) • Séparationdes aspects : isolation de la duplication • Définition des interactions • Avec l’application • Avec les autres aspects non fonctionnels • Prise en compte de divers protocoles de duplication
Mémoire 1 Mémoire 2 Copie A1 Copie A3 Copie B2 Copie B1 Cohérence locale Cohérence globale Cohérence locale Mémoire 3 Copie B3 Objet Applicatif C Problématique (2) Objet Applicatif A Objet Applicatif B Objet Applicatif C
Plan • RS2.7 : un canevas adaptable de duplication • Adaptabilité au contexte non fonctionnel • Décomposition de l’aspect duplication • Mise en oeuvre • Travaux similaires • Conclusion et perspectives • RS2.7 : un canevasadaptable de duplication
Canevas Contexte transactionnel Contexte mobile Maître/esclave impatient Maître/esclave paresseux Application Application Un canevas adaptable de duplication • Canevas pour construire des services de duplication appropriés : • A l’application • Au contexte • Aux besoins
Service de duplication • Met en oeuvre la gestion des copies • Rôle minimum d’un service de duplication : • Gestion du cycle de vie des copies • Gestion de la mise en cohérence des copies = protocole de cohérence locale
Politique de duplication Quand ? Combien ? Où ? Comment ? Quand ? Combien? Où ? Service de Duplication = Protocole de cohérence locale Gestion du cycle de vie + Tolérance aux fautes Partage de charge, … Application Couche de transparence Canevas de Duplication Politique de duplication Comment ?
Différents niveaux de cohérence Modèle de cohérence locale (coherency model) • Nombreux protocoles de duplication • Augmentation des performances • Tolérance aux fautes • Modèle de cohérence locale • Contrat spécifiant la cohérence entre les copies • Comment les utilisateurs perçoivent les copies d’un même objet
4 modèles de cohérence locale • Copie unique : toutes les copies ont la même histoire • Copies divergentes: les copies ont deshistoires différentes + garanties sur la divergence • Copies convergentes avec L sur les copies divergentes: les copies ont des histoires différentes + même histoire à certains moments + copies non à jour consultables • Copies convergentes avec E sur les copies divergentes:idem + copies non à jour modifiables
Protocole de cohérence locale • Méthode choisie pour garantir un modèle de cohérence locale • Pour un même modèle différents protocoles • Exemple protocoles à copie unique : ROWA, ROWAA • Capte les informations destinées aux copies • Interactions avec d’autres aspects • Copies équivalentes : forte contrainte sur le contrôle de concurrence • Copies divergentes : peu de contraintes
Plan • RS2.7 : un canevas adaptable de duplication • Adaptabilité au contexte non fonctionnel • Décomposition de l’aspect duplication • Mise en oeuvre • Travaux similaires • Conclusion et perspectives
Modèles de cohérence globale (consistency models) • Spécification de comment apparaissent les données • Mémoires partagées réparties • Modèles forts : séquentiel, causal, PRAM, etc. • Modèles faibles : à l’entrée, au relâchement, etc. • Dans les SGBD répartis • Sérialisabilité • Sérialisabilité sur une copie • Remis en cause par la duplication • Interactions entre cohérence globale et locale
Contrôle de concurrence Modèle de cohérence globale Protocole de cohérence globale Couche de communication Modèle de cohérence locale Application Tolérance aux fautes Modèle de cohérence globale/locale Protocole de cohérence locale
acquerirVerrou(A) acquerirVerrou(B) acquerirVerrou(A2) acquerirVerrou(B2) acquerirVerrou(A1) acquerirVerrou(B1) Duplication et contrôle de la concurrence T1 ecrire(A) ecrire(B) T2 ecrire(A) • Deux niveaux de contrôle de la concurrence • Au niveau des objets applicatifs • Au niveau des copies BD2 BD1 A2 • Contexte transactionnel • Globale : sérialisabilité • Locale : copie unique B2 A1 B1
Plan • RS2.7 : un canevas adaptable de duplication • Adaptabilité au contexte non fonctionnel • Décomposition de l’aspect duplication • Mise en oeuvre • Travaux similaires • Conclusion et perspectives
Protocole de cohérence locale abstrait • Niveau d’abstraction • Décomposition structurelle des protocoles de cohérence locale • Accès • Soumission d’une requête à un objet dupliqué • Coordination • Traitements préliminaires à l’exécution de la requête • Exécution • Exécution de la requête • Validation • Vérification du résultat obtenu par les copies • Réponse • Renvoi du résultat de la requête exécutée
Décomposition structurelle • Différences entre les protocoles dues : • A l’approche utilisée (implantation) dans chaque phase et • A l’ordre d’exécution des phases
Réponse Accès Validation Exécution Coordination Coordination Validation Exécution Validation Coordination Exécution Exécution Exemple : protocole ROWA ROWA : read one, write all Objet applicatif Copie Copie Copie Copie
Réponse Accès Coordination Exécution Exécution Coordination Coordination Validation Validation Exécution Validation Validation Coordination Coordination Exécution Exécution Exécution Exécution Exemple : protocole ROWAA ROWAA : read one, write all available Objet applicatif Copie Copie Copie Copie
Architecture fonctionnelle des protocoles • Fonctionnalités présentes dans de nombreux protocoles • Extraction des fonctionnalités communes • Réutilisation • Flexibilité • Isolation d’interactions avec d’autres aspects Chaque phase du protocole abstrait = Ensemble de fonctionnalités
Quatre catégories de composant (1) • Composants primitifs • Niveau de base pour construire des protocoles primitifs • Interface avec le service de communication, gestionnaire d’accès aux copies, etc. • Composants communs à tous les modèles de cohérence locale • Composants liés à la gestion de la synchronisation • Déclencheur de synchronisation, gestionnaire de suivi des mises à jour, …
Quatre catégories de composant (2) • Composants dépendants du modèlede cohérence locale • Gestionnaire de rôle, détecteur de conflit, résolveur de conflits, etc. • Composants dépendants du protocole de cohérence locale • Composants spécifiques au protocoles de cohérence • Gestionnaire du groupe en lecture ou en écriture, consensus, etc.
Plan • RS2.7 : un canevas adaptable de duplication • Adaptabilité au contexte non fonctionnel • Décomposition de l’aspect duplication • Mise en oeuvre • Travaux similaires • Conclusion et perspectives
Principes Protocole de cohérence locale = Chaîne de liaison entre les différentes copies du même objet applicatif • Objet dupliqué accédé par l’intermédiaire de la chaîne de liaison
Copie A1 Copie A2 Copie A3 Objet Applicatif B Accès à un objet dupliqué Mémoire 1 Mémoire 2 Représentant objet de liaison Représentant objet de liaison Mémoire 3 Représentant objet de liaison
Person p = new Person("Smith", "john", 27); Représentant objet de liaison Binder binder = new BinderImpl(nameFactory); p p Binding lo = new BindingImpl(); LocalLogicalObject llo = lo.create(p); p Name np = binder.export(lo); Binder np lo Représentant objet de liaison LocalLogicalObject llo = lo.add(); Utilisation d’un service de RS2.7 Mémoire 1 Mémoire 1 llo.write(((Field)new FieldImplem("Nom")), ((Value)new ValueString("Simpson"))); Mémoire 2 Binding lo = binder.resolve(np); Mémoire 2
Construire un protocole de cohérence locale • Un protocole de cohérence locale est réparti sur chacune des copies : • A chaque copie on associe un représentant de liaison • Chaque représentant est une composition de phases • Chaque phase est composée d’un ensemble de fonctionnalité • Chaque fonctionnalité est un composant
Lock Unlock Accès Accès Exécution Exécution Réponse Réponse Coordination Coordination Validation Validation Read Write Method Begin End Abort Read Write Method Begin End Abort Lock Unlock Zoom sur un protocole de cohérence locale Copie A1 Représentant de liaison Représentant de liaison Copie A2
Objet Applicatif B ecrire(x,3) Copie A2 Copie A1 Exécution Accès Accès Exécution Role manager Replica accessor Role manager Replica accessor Dispatcher Coordination Updates log Coordination Synchro. messages factory Synchro. messages reader Starting Synchro. Com. manager Protocole paresseux maître/esclaves Représentant objet de liaison Maître Représentant objet de liaison Esclave
Copie A2 Copie A1 Exécution Accès Accès Exécution Role manager Replica accessor Role manager Replica accessor Dispatcher Coordination Updates log Coordination Synchro. messages factory Synchro. messages reader Starting Synchro. Com. manager Protocole paresseux maître/esclaves Représentant objet de liaison Maître Représentant objet de liaison Esclave
Objet Applicatif C ecrire(x,4) Copie A1 Copie A2 Exécution Accès Accès Exécution Role manager Replica accessor Role manager Replica accessor Dispatcher Coordination Updates log Coordination Synchro. messages factory Synchro. messages reader Starting Synchro. Com. manager Protocole paresseux maître/esclaves Représentant objet de liaison Maître Représentant objet de liaison Esclave
Travaux similaires • Orientés tolérance aux fautes • Garf, OGS, Ethernal, etc. • Nombre limité de protocole • Travaux supportant plus de protocoles • Core, Globe • Séparation duplication autres aspects pas claire • Contexte bases de données • Protocoles ad-hoc • Orientés adaptation et non adaptabilité
Conclusions • Contributions • Isolation de la duplication • L’adaptabilité au contexte non fonctionnel • Décomposition structurelle et fonctionnelle • Mise en oeuvre • Prototype en Java + Jonathan (Corba & RMI) • Plate-forme pour mondes virtuels (PING) • Expérimentations sur l’adaptabilité
Perspectives • Utilisation d’uncanevas de compositionafin d’obtenir : • l’adaptabilité dynamique et • l’optimisation de la composition