210 likes | 447 Views
Locality Aware Dynamic Load Management for Massively Multiplayer Games. - PPoPP 2005 -. Jin Chen, Cristiana Amza 1 Baohua Wu, Margaret Delap, Bjorn Knutsson, Honghui Lu 2 1: University of Toronto, 2: University of Pennsylvania. Channel 2. Channel N.
E N D
Locality Aware Dynamic Load Management for Massively Multiplayer Games - PPoPP 2005 - Jin Chen, Cristiana Amza 1 Baohua Wu, Margaret Delap, Bjorn Knutsson, Honghui Lu 2 1: University of Toronto, 2: University of Pennsylvania
Channel 2 Channel N Existing Approach to support MMOGs • Approach • Partitioning of game world into separate small worlds • Separate channels • Limitation • Limitation in cross interactions Server Channel 1 . . . Game World
Problem – Zone-based approach • Partitioning transparent to players, but static • Arrow inter-server interaction • But, cannot handle transient crowding Handling updates Handling Inter-server communication coordinator . . . .. Zone Game World
Solution • Dynamic Partitioning (load balancing) • With locality aware • Side-effect of load balancing • Remapping cost • Player migration • Increment of inter-server communication • Increment of hand-off cost 1 1 2 2 3 3 4 4 5 5 6 6 Overload 7 7 8 8 1 9 9 10 10 Game World
Technical Issues • Issue1 – Locality Aware Load Shedding • Distribute the number of players • With preserving locality • Issue2 – Locality Aware Aggregation • Reduce inter-server communication • With none of the nodes overloaded
Locality Aware Load Management • Load information management • For neighbors and some other servers
Locality Aware Load Management • Load Level SLA violation Overload_th: The # of clients when 90% violate update interval Target load After load shedding Safety_th: The # of clients when 0% violate update interval Light_load_th: 2*Safety_th – Overload_th Optimal Candidate For receiving
Locality Aware Load Management • Overload Detection • Periodic sampling of update interval to its clients • Overload detected • Decide the cause • if # of clients > overload_th -> load shedding • If # of clients < overload_th -> aggregation
Locality Aware Load Shedding • Goal • First Goal • Make involved nodes under safety load threshold • Optimal goals • Locality preserved: same # of strongly connected components • Minimum # of region migrations • Target node selection (as small number as possible) • Neighbors in the list • Remote nodes in the list • Remote nodes after sending SeekLightlyLoadedServer message
Load Shedding Algorithm • To neighbors • Select lightest load neighbor (which has less safety load) • Select one of the regions facing the neighbor • Explore connected regions starting with the region • While the neighbor’s load is under safety load • Until the server’s load is under safety load • To remote nodes • Select lightest load node (which has less lightly load) • Select one of the boundary regions • Explore connected regions starting with the region • While the neighbor’s load is under safety load • Until the server’s load is under safety load
Locality Aware Aggregation • For each boundary region • Consider the region can be shed to one of its neighbors • Aggregate regions while not exceeding the safety load threshold
Related Works • Dynamic Uniform Load Spread (Spread) • Approach • Uniformly spread the players (regions) across all servers by reshuffling • Adv. • Optimized overall load balance • Dis. • Inter-server communication, hand-off cost • Need global information • Dynamic Load Shedding to Lightest Loaded Node Known (Lightest) • Approach • Load shedding to the lightest node instead of several neighbors • =>Not considering locality • Adv. • Region remapping cost • Dis. • Inter-server communication, hand-off cost
Experiments • Single server experiments • Setting • 1GHz Pentium III • 100Mbps Ethernet • Update every 500ms (clients to server, server to clients) • 800bytes per each update to server • Point: bandwidth is the main bottleneck CPU utilization BW utilization
Simulations • Setting • 100 servers, 6000 players • 400 regions, 10000x10000 m2 • 2 meters/second mobility • Hotspot at 1000 seconds • Point • For WAN case, locality algorithm show good performance LAN WAN
Critique • Pros • Load Balancing Algorithm using Locality • Cons • Fixed cell size • only load balancing the cell-level • Not optimized