Summary: | Massively Multiplayer Online Games (MMOGs) can be treated as a database application. Players request actions concurrently to alter the state of objects in the game. Since the world state is the most valuable asset of MMOGs, it is extremely important to ensure its consistency. On the other hand, the defining feature of such games is their capacity to support thousands of clients playing simultaneously, thus requiring scalability. This thesis proposes a solution which leverages typical game semantics and architectures to design scalable transaction models for action handling while maintaining the required levels of consistency. These models vary in their levels of isolation and atomicity and offer different consistency guarantees that are suitable for actions of varying importance and complexity. Action handling protocols are then designed according to those models and optimized for scalability and efficiency. We also present a persistence architecture which is integrated with the transaction models mentioned above. We show how the different consistency guarantees of each transaction model can be maintained by the persistence structure. Concrete actions are then implemented and designed using various transaction models with persistence support. We then evaluate and compare the performance of the various implementations and discuss the trade-off between performance and consistency. === Les jeux en ligne massivement multijoueur (MMOGs) peuvent être considérés comme des applications base de données. Les joueurs initient des actions de façon concurrentielle pour modifier l'état du jeu. Puisque l'état du monde est le plus grand atout des MMOGs, il est extrêmement important d'assurer sa consistance. D'un autre côté, la caractéristique essentielle de ces jeux est leur capacité de supporter plusieurs milliers de clients simultanément, et donc l'habileté de gérer une charge grandissante. Cette thèse propose une solution qui est fondée sur des sémantiques et architectures typiques aux jeux pour concevoir des modèles de transaction extensibles à la charge pour la gestion des actions tout en maintenant les niveaux requis de consistance. Ces modèles varient dans leurs niveaux d'isolation et d'atomicité et offrent donc des garanties de consistance variées qui sont adaptées à des actions d'importance et de complexité différente. Des protocoles de gestion des actions optimisés sont alors conçus selon ces modèles. Nous présentons aussi une architecture pour la gestion de persistance des données qui est intégrée aux modèles de transaction mentionnés ci-dessus. Nous montrons comment les garanties de consistance de chaque modèle sont maintenues par la structure persistante. Des actions concrètes sont alors mises en oeuvre et conçues selon les divers modèles de transaction avec persistance. Nous évaluons et comparons la performance de chacune des implémentations et discutons du compromis entre la performance et la consistance.
|