Bonjour a tous,
J'ai mis en place un maître et un esclave sur une grosse base de données contenant environ 1Milion de lignes.
Le fonctionnement est simple, un serveur JBoss qui échange beaucoup avec la BDD (INSERT,DELETE,UPDATE) afin de la mettre à jour et une application web qui interroge celle-ci (SELECT) ainsi que des administrateurs.
J'ai tout configuré pour que la relation entre JBoss et la BDD soit faite avec le maître et les relations de lecture (application Web et admin) soit faite avec l'esclave pour permettre aux administrateurs d'effectuer des tests sur la BDD sans attendre pendant 1min.
Le problème est que j'ai lancé un script Perl de test sur le maître qui fait un UPDATE sur l'ensemble des entités de la table et en parallèle j'ai fait un SELECT sur la table esclave. Je remarque que la configuration en sert a rien puisque le maître copie instantanément les données sur l'esclave qui effectuer les mêmes requêtes pour mettre à jour sa BDD. Par conséquent ma requête SELECT sur le serveur ESCLAVE est coincé par la surcharge du serveur.
Quelle est la solution ?
Faut-il retarder la copie des données entre le maître et l'esclave afin de pouvoir interrogé l'esclave pendant la mis à jour du maître ?
Je ne vois pas comment il est possible de repartir la charge avec cette méthode que j'ai bien implémentée ?
Merci de votre aide et bonne journée
Partager