Bonjour,
actuellement nous gérons la répartition de charge sur les serveurs
MySQL en PHP, avec un preg_match sur la requête pour l'envoyer soit
sur le master, soit sur un slave pondéré.
Ca fonctionne bien, et le random sur la pondération répartit la
charge équitablement.
Mais quand je dois intervenir sur un serveur, je dois travailler
avec les développeurs pour supprimer temporairement un slave, puis
l'ajouter petit à petit lorsque j'ai terminé, le temps qu'il charge
ses index en mémoire...
J'aimerais gérer cette répartition de A à Z, et que ce soit fait
plus élégamment qu'un preg_match + random dans un tableau PHP ...
C'est là qu'intervient MySQL Proxy : avec son script
rw-splitting.lua il est sensé gérer tout ça.
Mais ce script est loin d'être complet, en plus je constate que la
majorité des requêtes de lecture (SELECT) vont sur le master... Sur
son site http://forge.mysql.com/wiki/MySQL_Proxy_RW_Splitting Jan
précise bien que Yes, we know that RW-Splitting is not for
production use yet, it is a Proof of Concept.
Malgré tout j'aime l'idée, donc je me demandais si je pouvais avoir
des retours d'expériences sur MySQL Proxy et particulièrement sur ce
script lua !
Et si non, si vous connaissiez un système qui analyse les requêtes
et load-balance sur les slaves et le master de manière automatique.
Il faudrait que les développeurs n'aient qu'une IP par database et
ce système se charge du reste.
--
Greg