Summary: | 碩士 === 國立暨南國際大學 === 資訊管理學系 === 101 === With the rapid growth of network technology and internet applications, massively multiplayer online games (MMOGs) have become very popular and are transformed from 2D games (such as Maple Valley [16]) into 3D games (such as world of Warcraft [1]). Execution of the games consume lots of the server resources. Therefore, using multiple distributed servers instead of a single server to provide game services has become a trend. Server cluster is a distributed architecture that can increase service capacities and provide a reliable, scalable, and cost-effective solution for game services.
Stendhal [2,3] is a single server architecture for MMOGs. In this game, only players on the same map can know the game status with each other. In the work [28], the Game Connection Handoff mechanism [28] is developed and implemented on the LVS-CAD cluster system [33,34] to turn Stendhal from a single game server architecture into a multiple game servers architecture.
Using this mechanism, in this paper, we have proposed Game-Server Locality-Aware Request Dispatching (GSLARD) policy which dispatches adjacent maps to the same server as much as possible for reducing the transfer of players’ game connections. When assigning a map to a server, the server loading and geographical nature of the game map are considered a player’s ongoing game connection can be transparently migrated among game servers, which allows the game loading to be effectively allocated to each server. We distinguish three types of dispatching policies. The first one is the dynamic distribution of maps, which dynamically assigns maps to the servers depending on the server’s loading or map information after a player logins to the game. The second one is the static distribution of maps. Before the game begins, the maps have been assigned to servers in advance and the assignment will not be changed. The third one is the hybrid distribution of maps, which uses static distribution of maps. Whereas, after the game begins, it depends on the game state to dynamically redistribute maps. We have designed two schemes to pre-allocate maps according to the maps’ adjacency, and the maps’ adjacency and weight value. Before the game starts, all maps are pre-assigned to each server, and after the game begins, GSLARD load distribution mechanism will release maps that have no player from the responsible server. Next time when a player enters this map, this map will be reassigned to a game server in the way that adjacent maps will be assigned to the same server in order to provide games services.
The experiments show that GSLARD policy can by reduce about 8% average CPU utilization since it considers maps’ adjacency when distributing maps to servers. When added in the pre-allocation of maps, the GSLARD with hybrid distribution of maps can further reduce about 6% average CPU utilization. Therefore, the policies with hybrid distribution of maps can not only reduce the overall average CPU utilization of server cluster, but also keep the map integrity and avoid handling maps which are not adjacent in the same server.
|