Gestion des copies multiples réplication

Transcription

Gestion des copies multiples réplication
Augmenter la disponibilité des données
augmenter la localité des données et donc
les performances
réduire la charge réseau (éviter de faire tout
converger vers un serveur unique)
supporter la déconnexion des clients
mais
prend plus de place
nécessite des protocoles sophistiqués pour
supporter les mises à jour
Grand nombre de clients
hiérarchisation des copies
diminuer le trafic réseau
Copie 3
Site central
synchronisation
Copie 1
Copie 2
accès
Client 1
Client 2
Client 3
Haute disponibilité
et localité des clients
Client 1
Copie 3
Sites
départementaux
accès
Client 4
Client 5
Copie 1
Client 2
Client 3
Copie 2
Client 4
Client 5
"
Client mobile
Copie 1
#
$
Site central
Check in (1)
Unité de réplication : relation complète ou
résultat d'
une requête SQL de type SELECT
données fréquemment accédées en lecture
et avec des clients répartis sur de nombreux
sites
données peu fréquemment mises à jour
(sinon le coût est trop élevé)
Copie 2
Check out (3)
Gestion conflits (4)
Maj locales (2)
Check in : recopie du site central vers le client mobile
client dispose d ’une copie locale (peut travailler en mode
déconnecté)
check out : client renvoie sa copie locale modifiée vers le
site central
site central est modifié mais si plusieurs clients mobiles
il peut y avoir risque de conflits
(nécessité de gérer le conflit)
!
&
&
lecture
écriture lecture
Copie 1
lecture
Copie 2
)
*
À priori une mise à jour doit être propagée
"immédiatement" sur l'
ensemble des copies
mais cela coûte cher donc on peut utiliser
des modes de réplication plus faibles :
écriture
Copie 3
écriture lecture
(
asymétrie entre les copies (une copie primaire et
des copies secondaires)
propagation non immédiate
propagation sur un sous-ensemble des copies
écriture
Copie 4
le choix dépend de l'
application mais on ne
peut avoir tout à la fois!
Comment et quand propager une écriture faite
sur une copie sur l'
ensemble des copies ?
%
'
,
-
&
#
Copie primaire
Périodique : défini par un intervalle de temps ou une
"quantité" de mises à jour
peut se faire par recopie de la copie primaire ou
bien en maintenant et envoyant des deltas par
rapport à la dernière version
Copies secondaires
écriture
Copie 1
rafraichissement
lecture
lecture
/0
Copie 2
lecture
optimise le trafic réseau
augmente le temps de construction de la nouvelle copie
nécessite un travail spécifique sur le SGBD qui n'
est pas
toujours possible selon la requête SELECT définissant la
copie (juste pour les SELECT mono-relation sans agrégat)
Copie 3
lecture
Copie 4
+
( 34
2
Permet de faire de la réplication avec des coûts de
mise à jour réduits
pas de conflit en mise à jour
toutes les copies ne sont pas symétriques
suppose des taux de mise à jour assez faibles
pas possible pour toutes les applications (gestion
boursière par exemple)
est quand même le mode le plus utilisé
variante : la notion de copie primaire est vue comme un
privilège qui circule entre les copies (symétrise
l'
architecture)
,
-
#
lecture
lecture
écriture
Copie 1
propagation
12
.
écriture
Copie 2
lecture
écriture
Copie 3
lecture
écriture
Copie 4
&
(
*
Propagation synchrone : 2 transactions accédant en
même temps à 2 copies voient la même information
opération de mise à jour + propagation = même transaction
(transaction répartie avec V2P)
a les défauts de la V2P (notamment passage à l'
échelle)
peut s'
automatiser via des triggers
propagation asynchrone
opération de mise à jour et propagation dans des
transactions différentes : garantie d'
exécution de la
transaction de propagation (utilisation d'
un MOM)
risque de conflits (2 transactions mettant à jour "en même
temps" deux copies de la même information)
passe mieux à l'
échelle