Season : A Dynamic Load Balancer for Virtual Environments

Currently deployed client-server architectures for Massively Multiplayer Online Games (MMOG) serve millions of concurrent clients. Scaling MMOGs to this magnitude is challenging. Several techniques have been proposed in order to distribute client’s load on multiple servers, e.g. spatial decomposition of the virtual world, or ’sharding’, to name some. Most of the proposed solutions rely on static assignments of users to servers in the virtual world, thus, they can not cope with the volatile behavior of clients. As a consequence, some servers are overloaded, while others are underloaded. For MMOGs, computation power is a scarce resource which utilization has to be optimized in order to offer better quality of experience to the end users as well as improve the reliability of the system. In this work, we argue that it is possible to dynamically assign users to servers in order to equalize the load of the servers allocated in a MMOG. We propose a distributed load-balancing algorithm that dynamically assign clients to servers based on the current activity in the system. Our distributed algorithm also allows an MMOG to re-assign the area of responsibility between servers in a distributed, scalable, and robust way. To evaluate the performance of our algorithm we build a prototype, called Season, that can serve as a building block for a MMOG. Our results, with real and synthetic data, show that the load among servers in an MMOG is well balanced when Season is used.