JeuWeb - Crée ton jeu par navigateur
HHVM et cache MySQL - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : HHVM et cache MySQL (/showthread.php?tid=6534)



HHVM et cache MySQL - Mighty - 23-12-2012

Bonjour,

Hier après-midi j'ai sorti la nouvelle version de mon jeu en ligne Ellàs War. J'ai développé celle-ci dans une optique client-serveur afin de favoriser les contributions de développeurs extérieurs au projet. Côté client nous avons un classique site internet en html/css/php (https://github.com/V-Paranoiaque/Ellas-War). Celui-ci communique grâce au protocole http et à Json avec le serveur.
Côté client nous avons du php connecté à MySQL. Pour optimiser le côté serveur j'ai utilisé HHVM, une machine virtuelle équipée d'un compilateur JIT développé par facebook. Ses performances sont intéressantes et on voit vraiment la différence.
Malheureusement j'ai l'impression que mes requêtes MySQL ne se font pas toujours. Ma théorie est que plutôt que de refaire les requêtes lors d'un appel, il puise dans le cache et utilise donc d'anciennes données. Ce comportement comme vous le comprenez et assez dérangeant dans le cas d'un jeu par navigateur.

Avez-vous déjà rencontré ce problème ou avez-vous une idée qui me permettrait de le résoudre ?
Merci d'avance

Mighty


RE: HHVM et cache MySQL - srm - 23-12-2012

Je t'invite à fuir une machinerie lourde du type de hiphop autant que possible.
Tu devrais pouvoir très largement t'en sortir sans hiphop et tu controleras mieux les choses.


RE: HHVM et cache MySQL - MicroNotSoft - 23-12-2012

Bonjour,

j'ai déjà rencontré un problème similaire il n'y a pas longtemps. Je n'ai pas encore trouvé comment le régler correctement. Cependant j'ai contourné le problème en rajoutant des
Code :
WHERE 1 != microtime(true)

Cela fait une requête différente à chaque fois, cependant pour les requêtes d'insertions et autres si tu insères potentiellement les même données tu rencontreras le même soucis, ce qui nécessite l'ajout d'un champ "tmp" en double qui contiendra à chaque fois microtime(true).

J'utilise ce contournement en attendant de trouver mieux..


RE: HHVM et cache MySQL - Mighty - 24-12-2012

Je suis d'accord avec toi oxman que c'est une machinerie lourde. Cependant niveau performances c'est très intéressant.
Merci pour ta solution MicroNotSoft bien qu'elle soit très contraignante.
Je vais aussi chercher du côté des réglages de mysql dans hiphop.