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