v-l-m / vlm

Virtual loup de mer (aka Vlm) is an opensource sailing simulation
http://v-l-m.org
GNU Affero General Public License v3.0
26 stars 10 forks source link

Passer à Innodb #784

Open pzia opened 9 years ago

pzia commented 9 years ago

Mieux pour l'intégrité transactionnelle, un peu plus gourmand en ram et en disque. C'est plus "tunable" mais aussi plus difficile à tuner...

Ticket pour garder la trace des réflexions sur le sujet.

Phille commented 9 years ago

Dans mon garage on disait: If it ain't broke, don't fix it :)

pzia commented 9 years ago

vivi... mais je profite d'avoir Neptune1 sous la main pour faire quelques tests :) Et puis... si jamais on veut profiter de la puissance du nouveau serveur, il faut multi-threader le moteur ( @ylafon ... :p), et donc il faut pouvoir écrire à plusieurs en même temps et donc il faut innodb... bref ;)

Neptune1 : copier 1M de traces dans une nouvelles tables innodb : 30s Neptune 2 : 10s

(j'ai rien optimisé ni d'un côté ni de l'autre)

Le plus "sur" a l'air de créer une nouvelle table, de copier les données dedans puis de renommer / supprimer. De toute manière, il faut toujours le double d'espace dispo.

Ca se fait effectivement facilement, table par table... Si on n'y vient, le mieux sera sans doute de faire un clone de la base de testing dans une base vlm2, puis de tout basculer en InnoDb et après de débugguer !

pzia commented 9 years ago

Pour mémoire, il y aurait au moins une chose à traiter pour passer en InnoDb : certains enchainement du moteur (et dans users, aussi, je crois) qui copient de positions vers histpos, puis effacent la donnée. => Ca se traite en une seule transaction en InnoDb pour se garder des deadlocks.

ylafon commented 9 years ago

À noter, c'est le defaut pour les version raisonnablement modernes de mysql. Et les deplacements se font avec des locks pour le moment (positions -> histpos)

pzia commented 9 years ago

Oui, il y a des locks sauf le code dans users quand tu abandonnes es une course