Bonjour à tous.
En vu de realiser un gros projet qui va necessiter de traiter des milliers de requettes par secondes, j'envisage un systeme sur lequel il nous suffira d'ajouter de nouveaux serveurs au fur et à mesure que le besoin s'en ressent.
MySQL cluster me semble à priorie correspondre mais je me pose quelque questions.
Nos besoins vont porter sur beaucoup de SELECT biensur, mais aussi beaucoup d'UPDATE et INSERT avec parfois des verouillages.
Je ne sais pas comment le cluster repartit la charge sur les differants serveurs. Je me dit que si il se contentait de faire une copie sur chaque serveur alors le select devrait etre dirigé vers un serveur ou un autre en fonction de la charge. Mais dans ce cas si je fais beaucoup d'update/insert, alors tous les serveurs doivent le traiter et finalement tous les serveurs vont ramer. Je me dit alors que cela ne doit surement pas etre comme ça que c'est geré.
Voila comment j'envisage de traiter une operation necessitant un verou (simplement en php) :
-> Verouillage de la table LOCK TABLE
-> lecture d'une infos
-> verification et traitement de l'info
-> update d'un enregistrement
-> UNLOCK
Le but etant biensur de s'assurer qu'aucun autre process de change la donnée avant la fain du traitement du process.
Du coup, à quoi s'attendre si on envisage de poser des verous dans une session sur une table, est-ce que tous les serveurs cluster se trouvent bloqués ?
Est-ce que de se trouver avec 10, 20 voir 100 serveurs reste une solution ? Et est-ce possible ? Autre strategie ?
Si quelq'un pouvait m'eclairer..
Merci beaucoup.
Partager