rs2.7 : un canevas adaptable de duplication

37
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

Upload: harrison-glass

Post on 31-Dec-2015

19 views

Category:

Documents


0 download

DESCRIPTION

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 : - PowerPoint PPT Presentation

TRANSCRIPT

RS2.7 : un Canevas Adaptable de Duplication

Stéphane Drapeau1,2, Claudia L. Roncancio2, Pascal Déchamboux1

1 France Télécom R&D, Meylan2 Laboratoire LSR IMAG, Saint Martin d’Hères

2

Contexte

De nouvelles contraintes dans la mise en place des infrastructures :

Non connaissance de l’architecture Systèmes évolutifsRessources offertes très différentes

Solution : séparation des considérationsAspects fonctionnels : code applicatif

Aspects non fonctionnels : transactions, requêtes persistance, duplicationEJB, CORBA, .Net, AOP, Systèmes réflexifs

3

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

Duplication

PersistanceTransactions

Requêtes Médiateurs

Communication, Env. d’exécution

4

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

5

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

6

Mémoire 1

Mémoire 3

Mémoire 2

Problématique (2)

ObjetApplicatif

C

CopieA1

CopieA3

ObjetApplicatif

A

ObjetApplicatif

B

ObjetApplicatif

C

CopieB2

CopieB3

CopieB1

Cohérence locale

Cohérence locale

Cohérenceglobale

7

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

8

Contexte transactionnel

Application

Contexte mobile

Application

Un canevas adaptable de duplication

Canevas

Maître/esclave impatient

Maître/esclave paresseux

Canevas pour construire des services de duplication appropriés :

A l’application

Au contexte

Aux besoins

9

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

10

Politique de duplication

Quand ?Combien ?

Où ?Comment ?

Canevas de Duplication

Service de Duplication

Politique de duplication

Protocole de cohérence locale

Gestion du cycle de vie

Comment ?

Quand ?

Où ?Combien?

+

=

Tolérance aux fautesPartage de charge,

…Application

Couche de transparence

11

Modèle de cohérence locale (coherency model)

Nombreux protocoles de duplicationAugmentation des performances

Tolérance aux fautes

Différents niveaux de cohérence

Modèle de cohérence localeContrat spécifiant la cohérence entre les copies

Comment les utilisateurs perçoivent les copies d’un même objet

12

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

13

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 aspectsCopies équivalentes : forte contrainte sur le contrôle

de concurrence Copies divergentes : peu de contraintes

14

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

15

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 duplicationInteractions entre cohérence globale et locale

16

Modèle de cohérence globale/locale

Pro

toco

le d

eco

hére

nce

glob

ale

App

licat

ion

Modèle decohérence

globale

Protocole decohérence locale

Protocole decohérence locale

Modèle decohérence locale

Contrôle deconcurrenceContrôle deconcurrence

Cou

che

deco

mm

unic

atio

n

Tolérance auxfautes

Tolérance auxfautes

17

Duplication et contrôle de la concurrence

Deux niveaux de contrôle de la concurrence

Au niveau des objets applicatifs

Au niveau des copies

BD1

BD2

A1

A2

B1B2

T1ecrire(A)ecrire(B)

T1ecrire(A)ecrire(B)

T2ecrire(A)T2ecrire(A)

acquerirVerrou(A)

acquerirVerrou(B)

acquerirVerrou(A1)acquerirVerrou(B1)

acquerirVerrou(A2)acquerirVerrou(B2)

Contexte transactionnelGlobale : sérialisabilité

Locale : copie unique

18

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

19

Protocole de cohérence locale abstrait

Niveau d’abstraction

Décomposition structurelle des protocoles de cohérence locale

AccèsSoumission d’une requête à un objet dupliqué

CoordinationTraitements préliminaires à l’exécution de la requête

ExécutionExécution de la requête

ValidationVérification du résultat obtenu par les copies

RéponseRenvoi du résultat de la requête exécutée

20

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

21

Exemple : protocole ROWA

Copie

Objet applicatifAccès

Réponse

Coordination

Coordination

Coordination

Exécution

Exécution

Exécution

ExécutionValidation

Validation

Validation

ROWA : read one, write all

Copie

Copie

Copie

22

Exemple : protocole ROWAA

Objet applicatifAccès

Réponse

Exécution

Exécution

Exécution

ExécutionCoordination

Coordination

Coordination

ROWAA : read one, write all available

Copie

Copie

Copie

Copie

ValidationValidation

Exécution

Exécution

Exécution

ValidationValidation

Coordination

Coordination

23

Architecture fonctionnelle des protocoles

Fonctionnalités présentes dans de nombreux protocoles

Extraction des fonctionnalités communesRéutilisationFlexibilitéIsolation d’interactions avec d’autres aspects

Chaque phase du protocole abstrait

=

Ensemble de fonctionnalités

24

Quatre catégories de composant (1)

Composants primitifsNiveau 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, …

25

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.

26

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

27

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

28

Accès à un objet dupliqué

CopieA1

ObjetApplicatif

B

Représentantobjet de liaison

Mémoire 1

Mémoire 3

Mémoire 2Copie

A2

CopieA3

Représentantobjet de liaison

Représentantobjet de liaison

29

Utilisation d’un service de RS2.7

Mémoire 1

Mémoire 2

Binder

Binder binder = new BinderImpl(nameFactory);

np lo

Name np = binder.export(lo);

llo.write(((Field)new FieldImplem("Nom")), ((Value)new ValueString("Simpson")));

Binding lo = binder.resolve(np);

Mémoire 1

Mémoire 2

Person p = new Person("Smith", "john", 27);

pBinding lo = new BindingImpl();LocalLogicalObject llo = lo.create(p); p

Représentantobjet de liaison

LocalLogicalObject llo = lo.add();

Représentantobjet de liaison

p

30

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

31

Copie A1

Copie A2

Accès Coordination Exécution Validation Réponse

Accès Coordination Exécution Validation Réponse

ReadWriteMethod

BeginEndAbort

ReadWriteMethod

BeginEndAbort

Zoom sur un protocole de cohérence locale

LockUnlock

LockUnlock

Représentant de liaison

Représentant de liaison

32

Protocole paresseux maître/esclaves

Représentant objet de liaison Maître

Exécution

Replicaaccessor

Accès

Role manager

CoordinationUpdates

logSynchro.

messagesfactory

StartingSynchro.

Com. manager

Exécution

Replicaaccessor

Role manager

Dispatcher

Accès

ecrire(x,3)

Représentant objet de liaison Esclave

Copie A2Copie A1

ObjetApplicatif

B

CoordinationSynchro.

messagesreader

33

Protocole paresseux maître/esclaves

Représentant objet de liaison Maître

Exécution

Replicaaccessor

Accès

Role manager

CoordinationUpdates

logSynchro.

messagesfactory

StartingSynchro.

Com. manager

Exécution

Replicaaccessor

Role manager

Dispatcher

Accès

Représentant objet de liaison Esclave

Copie A2Copie A1

CoordinationSynchro.

messagesreader

34

Protocole paresseux maître/esclaves

Représentant objet de liaison Maître

Exécution

Replicaaccessor

Accès

Role manager

CoordinationUpdates

logSynchro.

messagesfactory

StartingSynchro.

Com. manager

Exécution

Replicaaccessor

Role manager

Dispatcher

Accès

Représentant objet de liaison Esclave

Copie A2Copie A1

Objet Applicatif

C

CoordinationSynchro.

messagesreader

ecrire(x,4)

35

Travaux similaires

Orientés tolérance aux fautesGarf, OGS, Ethernal, etc.

Nombre limité de protocole supporté

Travaux supportant plus de protocolesCore, Globe

Séparation duplication autres aspects pas claire

Contexte bases de donnéesProtocoles ad-hoc

Orientés adaptation et non adaptabilité

36

Conclusions

ContributionsIsolation de la duplication

L’adaptabilité au contexte non fonctionnel

Décomposition structurelle et fonctionnelle

Mise en oeuvrePrototype en Java + Jonathan (Corba & RMI)

Plate-forme pour mondes virtuels (PING)

Expérimentations sur l’adaptabilité

37

Perspectives

Utilisation d’un canevas de composition afin d’obtenir :

l’adaptabilité dynamique et

l’optimisation de la composition