Vous êtes sur la page 1sur 36

Modles de Cohrence

Stphane Drapeau France Tlcom R&D


1

Mars 2000

Modles de cohrence
n

Modle de cohrence

Hypothse : une donne est duplique Chaque partie de l application accde la copie locale de la donne Contrat entre lapplication et la mmoire spcifiant les accs la mmoire partage et leur perception par le programmeur

Protocole de cohrence

Met en uvre un modle de cohrence particulier Impose une synchronisation entre les diffrentes copies qui peuvent diverger Principe : diffusions des critures ou invalidation des copies aprs criture - quand ?
Cohrence sans synchronisation Cohrence avec synchronisation
2

Divers modles de cohrence


Modles de cohrence sans synchronisation

Cohrence atomique
Un modle de cohrence est atomique si une opration de lecture sur une donne retourne la valeur affecte par la dernire opration dcriture sur cette donne.

Garantit un comportement similaire de la mmoire centralise Exemple de protocole : invalidation de pages dans Ivy
4

Construction dun ordre total global

Exemple de cohrence atomique


P1

L=3

E(6)

P2 L=2

E(3)


L=3 E(5)

P3 L=5
5

Cohrence squentielle et objet


Un modle de cohrence est squentiel si le rsultat de toutes les excutions est le mme que celui o les oprations de tous les processus seraient excutes dans un ordre squentiel donn, et dans cette squence, les oprations de chaque processus individuel apparaissent dans l ordre spcifi par leur programme.
n

Garantit que tous les processus percevront les oprations dans le mme ordre Ne garantit pas quune lecture obtiendra la dernire valeur affecte par une criture Protocole doit essentiellement garantir lordre total (qui n est pas ncessairement global) Cohrence objet : restriction de la cohrence squentielle 6 un objet

Exemple de cohrence squentielle


L=2 P1 E(4)

P2 L=2 E(3) L=3 E(5)

P3

L=4
7

Cohrence causale
Un modle de cohrence est causal s il garantit les deux conditions suivantes :
- Les oprations d criture potentiellement causalement lies doivent tre perues par tous les processus dans le mme ordre ; - Les oprations d criture non causalement lies peuvent tre perues dans des ordres diffrents, sur des processus diffrents.

n n

Relchement de la cohrence squentielle en fonction de la causalit entre les oprations Tous les processus peroivent les oprations d criture causalement lies dans le mme ordre. Par contre, aucunes contraintes sur les oprations d critures concurrentes Moins de synchronisation que dans le modle de cohrence squentielle
8

Exemple de cohrence causale


P1

L=3

E(6)


L=2 E(3) L=3 E(5)

P2

P3

L=6
9

Cohrence PRAM
Un modle de cohrence est PRAM s il garantit que les oprations d criture effectues par un mme processus sont perues par tous les processus dans l ordre o ces oprations ont t effectues. Les oprations d criture effectues par diffrents processus peuvent tre perues par chaque processus dans un ordre diffrent. n

Relchement du modle de cohrence causale : certaines transitivits dues la relations de causalit ne sont pas considres Protocole implantable sous forme de files d oprations d criture
10

Exemple de cohrence PRAM


P1 L=2 E(4)

P2 L=2 E(3) L=3 E(5)

P3

L=3

11

Cohrence la longue
Un modle de cohrence est la longue s il garantit que les oprations d criture seront propages

C est le modle de cohrence le plus faible Aucun ordre sur les oprations n est impos
12

Exemple de cohrence la longue


L=2 P1 E(4)

P2 L=2 E(3) L=3 E(5)

P3 L=2
13

Modles de cohrence avec synchronisation (i.e avec prise de verrou)

14

Cohrence faible
Un modle de cohrence est faible s il garantit les trois proprits suivantes :
- Les oprations sur les variables de synchronisation se font selon un modle de cohrence squentielle ; - L accs aux variables de synchronisation ne peut se terminer que si toutes les oprations d criture et de lecture sont termines sur tous les sites ; - Les oprations de lecture et d criture ne peuvent se faire que si toutes les oprations sur les variables de synchronisation sont termines sur tous les sites.

Garantie pour un processus :

que toutes les modifications effectues sont reues par tous les processus qu il a reu toutes les modifications faites par tous les processus

Regroupement des propagations


15

Exemple de cohrence faible


P1 Sync L=3 E(6) Sync

P2 L=2 E(3) Sync Sync L=6 E(8) Sync

P3 Sync L=8
16

Cohrence au relchement
Un modle de cohrence est au relchement s il garantit les trois proprits suivantes :
- Les oprations de synchronisation (acquire et release) se font selon un modle de cohrence processeur ; - Les oprations de lecture et d criture ne peuvent se faire que si toutes les oprations d acquisition prcdentes sont termines sur tous les sites ; - L opration de relchement ne peut se terminer que si toutes les oprations d criture et de lecture sont termines sur tous les sites.

Quand un processus effectue une opration de relchement, les modifications quil a effectues seront observes par tous les processus faisant une acquisition ultrieure Protocole de cohrence au relchement

impatiente paresseuse

17

Exemple de cohrence au relchement impatiente


P1 Acq L = 3 E(6) Rel

P2

Acq L = 2 E(3)

Rel

P3 Acq L=6 Rel


18

Exemple de cohrence au relchement paresseuse


P1 Acq L = 3 E(6) Rel

P2

Acq L = 2 E(3)

Rel

P3 Acq L=6 Rel


19

Types de rplication
n

Symtrique

Toutes les copies peuvent recevoir les mises jour Copie primaire : reoit les mises jour Copie secondaire : en consultation seulement Vue En consultation seulement Rvalues priodiquement
20

Asymtrique

Photographie (snapshot)

Rplication symtrique
Primaire2 u2(i)

u2(i) u1(i) u1(i) Primaire1

u3(i) u1(i) u3(i)

u2(i)

Primaire3

u3(i)

21

Rplication asymtrique (1)

u(i) u(i) Primaire u(i)

Secondaire1

Secondaire2

22

Rplication asymtrique (2)


u(i) u(i) Secondaire2

Primaire1

u(i) Secondaire3

Primaire2 u(i) Secondaire1 u(i) Secondaire3

u(i)

temps

23

Cohrence base de donnes


n

Cohrence forte
Toute interrogation dune copie quelconque reflte le rsultat de toutes les modifications antrieures

Cohrence faible
Il est tolr quune interrogation ne reflte pas toutes les modifications antrieures, avec la garantie que celles-ci soient toutes rpercutes au bout dun temps fini

24

Propagation des mises jour (1)


n

Synchrone

Mise jour de toutes les copies dans une mme transaction


n

Ralentit la transaction et le dbit

Asynchrone

Mise jour des copies dans des transactions diffres


25

Propagation des mises jour (2)


Symtrique
u1(i) u2(i) u1(i) u2(i) u(i)

Asymtrique

Synchrone Primaire1

Primaire2

Primaire

u(i)

Secondaire

u1(i)

u2(i) u1(i) u2(i)

u(i)

Asynchro ne

Primaire1

Primaire2

Primaire

u(i)

Secondaire

26

Stratgies de propagation des mises jour


n n

Synchronisation totale Synchronisation des copies disponibles Quorum Primaire / secondaire (lazy master) Primaire / sauvegarde Indpendant
27

n n n n

Synchronisation totale
n

Toutes les copies sont mises jour de manire synchrone Invariant : toutes les copies sont jour Latomicit est garantie par le protocole de validation deux phases
28

Synchronisation des copies disponibles


n

Toutes les copies disponibles sont mises jour de manire synchrone Copies indisponibles mises jour de manire asynchrone Invariant : toutes les copies disponibles sont jour Latomicit est garantie par le protocole de validation deux phases Possibilit de copies non jour
29

Quorum
n

Les mises jour ont lieu de manire synchrone seulement sur un sous ensemble des copies, qui forment un quorum Les copies ne faisant pas partie du quorum sont mises jour de manire asynchrone
R+W>N 2W > N (exclusion des lecteurs/crivains) (exclusion de 2 crivains)

Invariant : Un quorum de rpliques en criture est jour

30

Primaire/secondaire
n

Les mises jour sont faites sur la copie primaire. Les copies secondaires sont mises jour de manire asynchrone Invariant : la copie primaire est toujours jour

31

Primaire/sauvegarde
n

Les mises jour sont faites sur la copie primaire. Une des copies secondaire est dsigne comme tant la sauvegarde. Celle-ci est responsable de la reprise sur dfaillance de la copie primaire. Toutes les autres copies secondaires sont mises jour de manire asynchrone Invariant : Lorsquelle est disponible la copie primaire est toujours jour. La sauvegarde est la premire copie mise jour ensuite
32

Indpendant
n

Les mises jour sont faites sur des copies quelconques Possibilit de copies incompatibles : algorithmes de rconciliation Invariant : aucune copie est garantie tre jour
33

Rafrachissement des copies


n

Mises jour

Total, diffrentiel (propagation des dernires mises jour) Rplication procdurale ( la procdure
excute sur la source est propage vers le site cible pour y tre excute)

Initiative du rafrachissement

Push : source vers cible Pull : cible vers source


34

Cohrence globale
n

Excution concurrente des diffrentes transactions Critre de cohrence usuel : srialisabilit

Une excution entrelace donne dun ensemble de transactions est considre correcte si elle produit le mme rsultat quune certaine excution en srie des mmes transactions

Protocoles :

Contrle de concurrence pessimiste : verrouillage deux phases 35 Contrle de concurrence optimiste : estampillage

Relchement de la srialisabilit
n n

Relchement de lisolation 4 niveaux disolation

Degr 0 : une transaction ayant un niveau disolation 0 ne peut crire sur une donne sale dune autre transaction si celle-ci est dun degr suprieur ou gal 1 Degr 1 : Une transaction ayant un niveau disolation 1 ne peut pas perdre de mises jour Degr 2 : Une transaction ayant un niveau disolation 2 ne peut pas perdre de mises jour et ne peut pas faire de lectures sales Degr 3 : Une transaction ayant un niveau disolation 3 ne peut pas perdre de mises jour et peut rpter ses lectures (=> pas de lectures sales)
36

Vous aimerez peut-être aussi