Rapport d'architecture logiciel
Bases de données : haute disponibilité
et load balancing, quels mécanismes ?
09/11/2012
Amha Bekele
Esraa Maher
Ghazi Ochi
Vincent Verdier
Table des matières
Introduction......................................................................................................................................1
1 La haute disponibilité.....................................................................................................................2
1.1 Réplication.............................................................................................................................2
1.1.1 Réplication synchrone....................................................................................................2
1.1.1.1 Réplication synchrone asymétrique........................................................................3
1.1.1.2 Réplication Synchrone symétrique..........................................................................4
1.1.2 Réplication asynchrone (Lazy replication)......................................................................4
1.1.2.1 La réplication asynchrone asymétrique...................................................................4
1.1.2.2 La réplication asynchrone symétrique.....................................................................4
1.1.3 La diffusion des modifications........................................................................................5
1.2 Failover..................................................................................................................................5
1.3 Cluster...................................................................................................................................6
2 Équilibrage des charges................................................................................................................7
2.1 Pourquoi le Load Balancing?.................................................................................................7
2.2 Les différentes solutions du load balancing............................................................................7
2.2.1 Base de données réparties.............................................................................................8
2.2.2 Base de données fédérées.............................................................................................9
2.2.3 La fragmentation............................................................................................................9
2.2.4 Les algorithmes............................................................................................................11
2.2.4.1 Round-robin..........................................................................................................11
2.2.4.2 Least connection...................................................................................................12
2.2.4.3 First response.......................................................................................................12
2.2.4.4 Random................................................................................................................12
3 Nouvelles techniques..................................................................................................................13
3.1 NoSql...................................................................................................................................13
3.2 Cache..................................................................................................................................15
3.3 L'importance du facteur matériel..........................................................................................15
3.4 Consistent Hashing..............................................................................................................16
3.4.1 Problématique..............................................................................................................16
3.4.2 Solution........................................................................................................................16
Conclusion.....................................................................................................................................18
Sources..........................................................................................................................................19
Architecture logiciel 09/11/2012
Introduction
Chaque jour, les besoins des entreprises en termes de stockage de données augmentent, de
même les utilisateurs et le marché sont de plus en plus exigeant en termes de disponibilité. La
haute disponibilité consiste à assurer un taux de disponibilité qui se rapproche des 100%.
L’indisponibilité d’un système peut coûter très cher à une entreprise, comme on peut le voir ci-
dessous.
Pour assurer un taux de disponibilité convenable, les entreprises sont donc contraintes d’assurer
le bon fonctionnement de toutes les couches qui composent leurs systèmes informatiques. Et les
bases de données représentent un élément clé dans la composition de tous système. Par
exemple, le géant Google, qui doit satisfaire plus d’un milliard de requêtes par jour, est obligé
d’assurer une haute disponibilité de son système d’accès aux données. En effet, il doit être
capable de trouver une information rapidement dans une volumétrie considérable.
Étant donné l’importance de l'accès aux données dans tout système informatique, on peut se
demander quelles sont les solutions pour assurer une disponibilité convenable au sein d’un
système de gestion de bases de données.
Nous verrons dans une première partie quels sont les mécanismes pour la haute disponibilité en
termes de base de données. Dans une seconde partie, nous expliquerons en détail un mécanisme
incontournable : l’équilibrage des charges. Et enfin on verra dans une dernière partie quelles
solutions se développent pour faire face aux mécanismes dites classiques.
Page 1
Architecture logiciel 09/11/2012
1 La haute disponibilité
Dans cette partie, nous détaillerons les principales techniques à mettre en oeuvre pour garantir la
disponibilité des bases de données. Nous verrons que ces solutions combinent souvent des
aspects matériels et logiciels.
1.1 Réplication
On peut définir la réplication comme la copie d’un ensemble de données. On distingue
généralement un site primaire appelé maître (ou référence), d’un site secondaire appelé esclave
(ou cible). Le système de gestion de base de données (SGBD) ou le réplicateur s’occupe de la
mise à jour des données.
Site primaire Site secondaire
Types d’accès des
applications
Lecture/écriture Lecture
Ordres Select, Insert, Update,
Delete
Select
La réplication permet de se prémunir de plusieurs problèmes qui peuvent nuire à la haute
disponibilité. En effet, un SGBD, sans réplication, entraîne une surcharge et une dégradation du
temps de réponse car toutes les applications accèdent au même système. De plus l’unicité de la
base de données fait qu’il y a une très faible tolérance à la panne.
La principale motivation de la réplication serait donc une amélioration des performances et de la
disponibilité. Une amélioration des performances, dans la mesure on évite un goulot
d’étranglement en faisant appel à une copie plus ou moins proche. Une amélioration de la
disponibilité, car dans le cas il y aurait une panne on peut se replier sur une copie. Supposons
que l’on possède deux copies avec risque de panne de 3%, alors la disponibilité est de 99,91% car
:
Disponibilité =1- risque de panne ^ nombre de copies
La mise en place d’une réplication suppose le maintien à jours des copies, même si les copies
peuvent être différentes à un instant donné.
On définit en général 4 grandes techniques de réplication, chacune de ses méthodes a ses
avantages que ce soit en terme de coût ou d’efficacité. Selon le budget et le type d’application, le
choix peut-être différent.
1.1.1 Réplication synchrone
La réplication synchrone consiste à ce qu’une transaction met à jour toutes les copies des
données modifiées, cette technique à l’avantage de s’effectuer en temps réel. Cependant elle
engendre un coût relativement élevé et souvent les entreprises dont l’exigence en temps réel est
réduite choisissent la solution asynchrone.
Page 2
Architecture logiciel 09/11/2012
1.1.1.1 Réplication synchrone asymétrique
La réplication synchrone asymétrique est composée d’un maitre qui accepte les écritures et d’
esclaves qui sont accédés en lecture. On utilise un mécanisme de « two phase commit ». Si ce
mécanisme n’est pas mis en place, la présence de plusieurs bases fait que si une base tombe en
panne, et qu’une transaction est enclenchée, le principe d’intégrité ne sera plus respecté. Le « two
phase commit » consiste comme son nom l’indique en deux phases, une première dite de
scrutation (ou de vote) et une deuxième de décision.
Phase de scrutation
Le coordinateur envoie les ordres à tous les sites et demande s’ils peuvent valider la transaction.
Dans le cas un site répond de manière négative, il quitte la branche de la transaction. Le cas
échéant, il se met en attente de la phase de décision.
Phase de décision
Si tous les sites participants sont en mesure d’effectuer la transaction, le coordinateur leur indique
qu’ils peuvent faire un COMMIT. Si un des serveurs, n’est pas en mesure d’effectuer la transaction,
le coordinateur force tous les sites à faire un ROLLBACK.
Page 3
1 / 21 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !