Locality Aware Dynamic Load Management for Massively Multiplayer Games Jin Chen, Baohua Wu, Margaret Delap, Bjorn Knutsson, Margaret Delap, Bjorn Knutsson, Honghui Lu, Cristiana Amza University of Toronto & University of Pennsylvania
Massively Multiplayer Online Games (MMOGs) A large number of players (e.g., 100K) SLA: Update interval to players (e.g., 1 sec) Game hosted on distributed servers
State-of-art game world partitioning Ad hoc partitions Countries, rooms
The scalability problem Flocking Players move to one area or hotspot Overload the server hosting the hotspot Static partitioning is impractical! Static partitioning is impractical!
Current solution Admission control Gateways E.g., airports, doors
Our solution: Contiguous world Seamless partition Players can “see” across server boundaries Players can smoothly transfer Inter server communication Boundary information Player handoff
Dynamic load management Regions Granularity for load management Region remapping Migrate regions from one server to another
Locality aware load management Keep adjacent regions on same server Less locality, higher inter-server communication Global reshuffle Block partition
Roadmap The algorithm ImplementationResults
Goals of a locality aware load management algorithm Balancing the server load in terms of the numbers of players Minimizing inter-server communication Goals conflict ! Desirable: Low number of region remappings Avoid thrashing
Our algorithm Load shedding algorithm Goal: Balance load & maintain locality Triggered by upper limit of load Locality aware aggregation algorithm Goal: Correct locality disruption Triggered by high inter-server communication in normal load
Load shedding algorithm Triggered by load >= upper limit Target: safe load First priority: Load shedding to neighbor servers Balance load & preserve locality If neighbors are also overloaded, load shedding to lightly loaded servers
Load shedding Quest!
Load shedding under quest
Load shedding to neighbors
Load shedding to lightly loaded servers Added more inter-server communication!
Locality aware aggregation Triggered by SLA violations & load is normal Aggregation Merge boundary regions into neighbor partitions
Locality aware aggregation (1)
Locality aware aggregation (2)
Graph model Local load graph for each server The partition of game map on a server A vertex a region Vertex weight load An edge adjacent relationship of two regions
A game map hosted by a server
A local load graph
Heuristic graph partitioning Goal Preserve locality & meet weight constraints
Locality metric: Number of connected components
Experiment methodology Single server experiments with Simmud A MMOG game server from UPenn Bottleneck is bandwidth Determine algorithm parameters Collect traces Simulate a large scale game
Simulation setting 100 servers and 400 regions 6000 independent players Traces collected from SimMud A LAN cluster server system 100 Mbps inter-server bandwidth 100 Mbps server-players bandwidth A WAN distributed server system 100 Mbps shared network bandwidth towards both its players and neighbor servers SLA: 2 seconds
Algorithms used for comparison Static partitioning Block partitioning Spread Global reshuffle Lightest Shed load to a lightly loaded server Locality
A LAN cluster server system Quest lasts during sec
A WAN distributed server system Quest lasts during sec
A WAN distributed server system MetricLocalityLightestSpread # of Region Remap # of Connected Components
Conclusion Presented a load management algorithm Supports seamless game world partitioning Uses a locality aware algorithm Achieves better performance (SLA) Up to a factor of 8 compared to Static Up to a factor of 6 compared to global reshuffle
Thanks!