Armageddon sur Hordes.fr
Hordes a rencontré samedi soir un bug majeur qui a provoqué la mort prématurée de la totalité des joueurs.
Rapidement, c'est le branle-bas de combat... La question du backup est avancée, afin de permettre un retour à la situation d'avant l'armageddon. C'est méthode, généralement appelée "rollback" consiste à récupérer une copie de la base de données à une date antérieure au problème.
Seulement voila : cela implique la perte de toutes les actions faites par les utilisateurs entre la date de ce rollback et la date d'aujourd'hui.
En clair, cela signifie qu'on oublie totalement ce qui a été fait entre ces deux dates :
- les actions en jeu,
- les messages,
- les achats,
- les inscriptions,
- ...
Un retour dans le temps complet, en somme. De nombreux MMORPG ont dû recourir à cette solution par le passé : World of Warcraft, Anarchy Online, Dofus...
Le rollback est une solution très complexe à mettre en place. Il faut en effet assurer une notion fondamentale, sinon tout s'effondre et plus rien ne marche : la "consistance des données".
En effet, entre le jour du dernier backup stable et la date de l'Armageddon, divers changements majeurs sont intervenus, par exemple :
- nouveaux inscrits : il faut relancer manuellement des procédures d'inscription pour chacun de ces comptes.
- achats : c'est encore plus compliqué, car les achats sont gérés par une plate-forme sécurisée maison qui refusera les transactions "doublons". On ne peut donc pas simplement répéter les achats, ils seraient refusés. Il faudrait donc modifier cette plate-forme...
- les désinscriptions et changements de comptes (mot de passe) : il faut les détecter puis les ré-appliquer, sinon des comptes ressurgiraient du néant ou deviendraient inaccessibles...
- certains changements de règle de jeu ne sont plus en adéquation avec cette base de donnée de "backup"
Bref, le rollback est une tâche qui nécessiterait à elle seule plusieurs jours de développement, bloquant totalement le jeu pour cette période, sans garantie de fonctionnement au final : un simple oubli suffirait à totalement planter le site.
Au vue des risques majeurs liés à cette méthode, nous avons donc choisi de ne pas opter pour le rollback, mais plutôt pour des compensations en jeu.
)





Service instable





