5. Processus de réplication
a. Définition
La réplication consiste à copier les
informations d'une base de données sur une autre.
b. Motivation
La motivation principale de la réplication est la
disponibilité et la performance pour les bases de données.
c. Gestion de la réplication
Dans le contexte de notre mémoire, la gestion de la
réplication sera représentée suivant quatre concepts
à savoir la distribution ou placement des données, la
configuration (rôle) des répliques, la stratégie de la
propagation des mises à jour et enfin la stratégie de maintien de
la cohérence.
· Placementdes données : Les données
peuvent être répliquées partiellement ou totalement. La
réplication totale stocke entièrement la base de données
sur chaque site. La réplication partielle nécessite une partition
des données en fragments. Chaque fragment est stocké par la suite
sur plusieurs noeuds.
· Configuration des répliques : Les mises
à jour peuvent être effectuées sur une seule
réplique (appelée maître) avant d'être
propagées vers les autres (esclaves). Une telle configuration est
appelée mono-maître (primary copy) car les autres répliques
ne sont utilisées que pour les requêtes de lecture seule, ce qui
améliore les performances des opérations de lecture seule. Une
approche multi-maîtres (update anywhere), dans laquelle les mises
à jour peuvent être exécutées sur n'importe quelle
réplique, permet d'améliorer aussi bien les performances des
transactions de lecture seule que d'écriture.
· Stratégies de rafraîchissement
(propagation) : Elles définissent comment la propagation va
être effectuée en précisant le contenu à propager,
le modèle de communication utilisé, l'initiateur et le moment du
déclenchement. Le rafraîchissement est fait grâce à
une transaction appelée transaction de rafraîchissement dont le
contenu peut être les données modifiées (writesets en
anglais) ou le code de la transaction initiale. La caractéristique
principale d'une transaction de rafraîchissement est qu'elle est
déjà exécutée sur au moins une réplique.
· Maintien de la cohérence. : La
cohérence peut être gérée de manière stricte
(réplication synchrone) ou relâchée (réplication
asynchrone). Avec la réplication synchrone, toutes les répliques
sont mises à jour à l'intérieur de la transaction. Cette
approche a l'avantage de garder toutes les copies cohérentes à
chaque instant, mais nécessite que toutes les répliques soient
disponibles et synchronisées au moment de l'exécution de la
transaction (ROWA pour Read-One/ Write-All). Une amélioration de cette
approche est de synchroniser uniquement les répliques disponibles au
moment de l'exécution d'une transaction (ROWAA pour Read-One/
Write-All-Available). La réplication asynchrone est plus souple car une
transaction est d'abord validée sur une seule réplique avant
d'être propagée sur les autres répliques dans une autre
transaction. L'inconvénient de cette approche est que les copies peuvent
diverger. Cette divergence a pour impact de retourner aux utilisateurs des
résultats faux. En effet, il est possible d'effectuer des transactions
de lectures sur des copies pas nécessairement fraîches pour
accélérer l'exécution des transactions de lecture.
Néanmoins, l'obsolescence des copies doit être
contrôlée en fonction des exigences des applications. Par
ailleurs, on peut classer la réplication asynchrone en deux familles :
réplication optimiste et réplication pessimiste. Avec la
réplication pessimiste, les transactions sont ordonnées à
priori avant d'être envoyées sur les répliques en
respectant leurs contraintes conflictuelles. La réplication asynchrone
optimiste autorise l'exécution de plusieurs transactions
simultanément sur plusieurs sites.
|