Jump to content
  • 0

Multi-server and load balancing


babillon

Question


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  13
  • Reputation:   2
  • Joined:  11/27/11
  • Last Seen:  

Hi everyone!

I'm hoping I can get some input on a little something I'm working on designing.

I'm in the (admittedly slow) process of designing and then building a scalable Athena deployment, and intend on making use of Amazon's AWS services. I've some experience with what they offer through other projects but haven't managed an Athena server of this scope.

I've attached a PNG output of a Visio diagram indicating how this would be designed.

It's designed to be secure, stable, and capable of growth based on user load (something that can be managed automatically by the cloud services provided once configured properly).

The key elements would be that each portion of the server would live in its own space, and all of it would be safe-guarded behind the cloud network's firewalls (with the web-faced being outside of course; web-site, forums, control panel), and that the map servers (from my understanding the part of the server that does the real work) would be contained behind a load balancer in sets.

The notation may be a bit confusing in the image but it's basically designed like this:

The game's world would be split over n number of map servers (I'm thinking 2-4ish) with each map server hosting a number of the game's zones. The load balancer would then monitor each of these individual zones, and in the even of being over-loaded automatically spawn a new instance of that particular server to assist in the original's load.

My question is... Will Athena make this unusably difficult to implement?

There's a major potential for cost savings if instances can be spun on and off based on need. Each of the [small] instanced servers are spec'd at roughly 2.3GHz/1.6GB.

Thoughts?

post-555-0-95825900-1332372426_thumb.png

  • Upvote 1
Link to comment
Share on other sites

3 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  2223
  • Reputation:   593
  • Joined:  10/26/11
  • Last Seen:  

I think the concept is good, but it may be hard to implement because of some limitations:

  • at the moment, Multi Map-Server has some bugs (bugreport:5410)
  • currently, there is no way to dynamically add/remove maps from a map-server while it is running
    --> you could spawn new EC2 instances (new map-servers), but to redistribute the load you would have to edit a map-server's map list, and restart the map-server.
    1. this would force any players on those maps to logout
    2. this would reset monster spawns on those maps

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  13
  • Reputation:   2
  • Joined:  11/27/11
  • Last Seen:  

I think the concept is good, but it may be hard to implement because of some limitations:

  • at the moment, Multi Map-Server has some bugs (bugreport:5410 [color=#000080 Hmm. That's really unfortunate and does put a damper on the idea. If you can get to say, Geffen, but then can't come back to Prontera that poses some major problems.[/color]
  • currently, there is no way to dynamically add/remove maps from a map-server while it is running
    --> you could spawn new EC2 instances (new map-servers), but to redistribute the load you would have to edit a map-server's map list, and restart the map-server My thought for the on-demand spawned instances isn't actually for new map chunks, but to actually hold the exact same maps as the server under excessive load.
    1. this would force any players on those maps to logout
    2. this would reset monster spawns on those maps

I suspect it may be more of a workable solution to instead sit with one larger instance holding all maps that would then be cloned as required for load balancing purposes.

I think I may have also been incorrect in one of my assumptions regarding load balancing with Athena. My model relies on the assumption that one can clone a map server and spread load over each of them for heavily populated chunks (say the Prontera areas are frequently heavily populated, having two servers server them to ease load). After a bit more looking I'm realizing this wouldn't work as you wouldn't see users any server but the one you yourself are on.

So I suspect that until some major improvements/changes are made to the map server then real, dynamic load balancing isn't something that's actually feasible.

Thank you for the input though. I appreciate the corrections!

Edited by babillon
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  43
  • Reputation:   4
  • Joined:  03/06/12
  • Last Seen:  

This is a great idea, but Mapserver works parallel to char server.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...