Building a scalable social game server

Examensarbete för masterexamen
Master Thesis
When building web applications with a broad target group, there is always a possibility that the user count will increase dramatically in a short period of time. Especially when building social application with a potential network effect. In such cases it is important to forestall scalability problems by implementing a scalable design from start. Often the scalability problems emerge at first when it is too late and the application has to be rewritten. Methods, architectures and techniques for building scalable applications are needed as well as methods for verifying scalability before the application is launched. This thesis explores the issue of scalability through the development and testing of an online word game. In the process of doing so, the thesis discusses the definition of scalability, how it is measured and how it is achieved is discussed through a literature study. Further on a scalable architecture is derived from the literature and a complete word game is implemented using the JavaScript based framework node.js. In addition to the server side application, a web browser client is developed to test the server functionality. For server persistence, the NoSQL key value store database Couchbase is used to allow horizontal storage scaling. Player simulations are implemented to mimic real game play to render server load. The simulations record measures such as response time when playing the game at different scaling parameters such as the number of web servers and database nodes in the database cluster at varying number of players. As a result of the implementation, a functional, playable game is completed. The results show some indication of scalability as decreased response time when increasing the number of web server instances. An unidentified problem with the database cluster prevented the simulations going beyond 8000 players as the database cluster becomes the bottleneck. The planned time was not sufficient to solve the unexpected database cluster problem and thus, the final measurements to determine the level of scalability could not be completed. But the conceptual architectural design can be regarded as horizontally scalable with support from the literature.
Interaktionsteknik, Interaction Technologies
Arkitekt (konstruktör)
Geografisk plats
Byggnad (typ)
Teknik / material