270 likes | 379 Views
Locality Aware Dynamic Load Management for Massively Multiplayer Games. Jin Chen, Baohua Wu, Margaret Delap, Bjorn Knutson, Honghui Lu and Cristina Amza. presented by Sagnik Nandy. Basic Idea.
E N D
Locality Aware Dynamic Load Management for Massively Multiplayer Games Jin Chen, Baohua Wu, Margaret Delap, Bjorn Knutson, Honghui Lu and Cristina Amza presented by Sagnik Nandy
Basic Idea • How to schedule game regions across multiple servers in a massively parallel multiplayer game environment?
Overview • Problem Description • Existing Techniques • Suggested Solution • Experimental Results • Conclusion
Overview • Problem Description • Existing Techniques • Suggested Solution • Experimental Results • Conclusion
Problem Description • How do you map various regions of a multiplayer game across different servers?
Issue 2 – Load balancing 2 1 3 4 1 2 4 3
Problem Statement • Balance server load by replicating existing game world partitions across several servers • Decrease inter-server communication by maintaining locality of adjacent regions
Overview • Problem Description • Existing Techniques • Suggested Solution • Experimental Results • Conclusion
Existing Solutions • Built-in load balancing in the game concept (e.g. countries, airports etc.) • Static Partitioning – row based, column based, cyclic, etc. • Dynamic Uniform Load Spread (Spread) • Tries to minimize the difference between most and least loaded nodes • Doesn’t consider locality
Existing Solutions (contd.) • Dynamic Load Shedding to Lightest Loaded Node (Lightest) • Choose loaded server and shed load to system-wide lightest loaded node • Locality is not an objective (but can get maintained)
Suggested Solution (Locality Aware Dynamic Load Management) • SLA violation • 90% users exceed update interval • Overload threshold • load (# users) for which violation happens • Safe load threshold • max load for which all users meet SLA • Light load • 2*safe_load – over_load
Objectives • Meet SLA (= load balancing) • Happy users • Maintain locality of game regions • Reduce transition time • Minimize # of region migrations • Reduce inter-server communication
Overview • Problem Description • Existing Techniques • Suggested Solution • Experimental Results • Conclusion
Suggested Approach • Load shedding algorithm • How to distributed load and meet SLA requirements • Load aggregation algorithm • Help restore locality • Help in future load shedding
Load Shedding Algorithm • If load > over_load • While load > over_load • Find lightest (neighbor < safety_load) and shed load • If no neighbor exists then do this globally across system
Shed Load • How to choose a component to shed? • Given a neighbor Sj • Choose a boundary node for Sj • With node as root • Find strongly connected cluster using BFS as long cluster weight within bounds
Load Aggregation • Reasons • Load can be shed to remote server • Load can be shed across multiple neighbors • Tries to reduce number of boundaries • For each neighbor of Si • Find partition such that new_load < safe_load • Transfer cluster if boundaries reduce
Overview • Problem Description • Existing Techniques • Suggested Solution • Experimental Results • Conclusion
Experiments • First did single server and a smaller cluster based experiment • Used results to simulate more comprehensive system • Simulated for CPU and network usage • Simulated for a LAN and WAN setting
Conclusions • The paper introduces the issue of locality into scheduling • Dynamic scheduling is better than static scheduling • Locality is more important as the network spreads out (curious to know effect on Internet scale games) • Aggregation didn’t help much