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éparation des 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
Problématique (2) Cohérence locale Cohérence locale Cohérence globale Mémoire 1 Mémoire 3 Mémoire 2 Objet Applicatif A Copie A1 A3 Copie B2 B3 B1 Cohérence locale Cohérence locale Cohérence globale Objet Applicatif B Objet Applicatif C 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 canevas adaptable de duplication
Un canevas adaptable de duplication Canevas pour construire des services de duplication appropriés : A l’application Au contexte Aux besoins Contexte transactionnel Application Contexte mobile Application Maître/esclave impatient Maître/esclave paresseux
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 ? Où ? Combien? Tolérance aux fautes Partage de charge, … Application Couche de transparence Service de Duplication Comment ? Protocole de cohérence locale Canevas de Duplication + = Gestion du cycle de vie
Modèle de cohérence locale (coherency model) Nombreux protocoles de duplication Augmentation des performances Tolérance aux fautes Différents niveaux de cohérence 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 des histoires 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 relachement, 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
Modèle de cohérence globale/locale Application Modèle de cohérence globale cohérence globale Protocole de Contrôle de concurrence communication Couche de Tolérance aux fautes Modèle de cohérence locale Protocole de cohérence locale
Duplication et contrôle de la concurrence Deux niveaux de contrôle de la concurrence Au niveau des objets applicatifs Au niveau des copies T1 ecrire(A) ecrire(B) T2 ecrire(A) acquerirVerrou(A) acquerirVerrou(B) BD2 BD1 A2 Contexte transactionnel Globale : sérialisabilité Locale : copie unique A1 B2 B1 acquerirVerrou(A1) acquerirVerrou(B1) acquerirVerrou(A2) acquerirVerrou(B2)
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
Exemple : protocole ROWA ROWA : read one, write all Réponse Accès Objet applicatif Copie Validation Exécution Coordination Copie Copie Copie
Exemple : protocole ROWAA ROWAA : read one, write all available Réponse Accès Objet applicatif Copie Exécution Coordination Exécution Coordination Validation Validation 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èle de cohérence locale Gestionnaire de rôle, détecteur de conflit, résolveur de conflits, etc. Composants dépendant 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
Protocole de cohérence locale 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
Accès à un objet dupliqué Mémoire 1 Mémoire 2 Copie A1 Copie A2 Représentant objet de liaison Représentant objet de liaison Mémoire 3 Représentant objet de liaison Objet Applicatif B Copie A3
Utilisation d’un service de RS2.7 Mémoire 1 Mémoire 1 Binding lo = new BindingImpl(); LocalLogicalObject llo = lo.create(p); p Représentant objet de liaison Person p = new Person("Smith", "john", 27); p Binder Binder binder = new BinderImpl(nameFactory); LocalLogicalObject llo = lo.add(); Représentant objet de liaison p np lo Name np = binder.export(lo); 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
Zoom sur un protocole de cohérence locale Lock Unlock Copie A1 Accès Coordination Exécution Validation Réponse Read Write Method Begin End Abort Représentant de liaison Représentant de liaison Copie A2
Protocole paresseux maître/esclaves Copie A2 Objet Applicatif B Copie A1 ecrire(x,3) Exécution Replica accessor Accès Role manager Role manager Dispatcher Accès Exécution Replica accessor Coordination Updates log Synchro. messages factory Starting Com. manager Coordination Synchro. messages reader Représentant objet de liaison Maître Représentant objet de liaison Esclave
Protocole paresseux maître/esclaves Copie A2 Copie A1 Exécution Replica accessor Accès Role manager Role manager Dispatcher Accès Exécution Replica accessor Coordination Updates log Synchro. messages factory Starting Com. manager Coordination Synchro. messages reader Représentant objet de liaison Maître Représentant objet de liaison Esclave
Protocole paresseux maître/esclaves Objet Applicatif C Copie A2 Copie A1 ecrire(x,4) Exécution Replica accessor Accès Role manager Role manager Dispatcher Accès Exécution Replica accessor Coordination Updates log Synchro. messages factory Starting Com. manager Coordination Synchro. messages reader 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 supporté 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 Mise en oeuvre 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’un canevas de composition afin d’obtenir : l’adaptabilité dynamique et l’optimisation de la composition