Distribution schemes (was Re: [MUD-Dev] Languages for MUD drivers)

Bruce Bruce
Wed Nov 17 16:03:21 New Zealand Daylight Time 1999

Ian Macintosh wrote:
>    > I've always thought this was an extraordinarily poor
>    > way to handle it...
>    > Unless you have a truly enormous number of players,
>    > don't you end up
>    > shifting areas from server to server as players and
>    > groups move, in
>    > order to achieve load balancing? Wouldn't event-based
>    > distribution work
>    > much more cleanly?
>I'd agree with that Greg.  But that is really dependant on how you
>design your software.  In the first place, I am, as you say, trying to
>load balance, but not to the nth degree.  Rather, I want to find
>logical breakpoints where I can split the 'world', and thereby achieve
>a fairly equitable load sharing.  Of course, what this means in the
>normal Aber/Diku derivatives that we all seem to run, is that you
>would put different zones/areas on different servers.

This would fall victim to the phenomenon of 'flash crowds' or 'stampeding
herds' or whatever it should be called.  With this type of static
distribution scheme, you can run into some trouble if a large number of
users (or objects, or whatever) decide to go visit some area on a single

>What you really should do though, to my mind, is segment the
>functionality.  Now perhaps that is what you are alluding to when you
>talk about event-based distribution, although I read that as saying
>that the exact same command could be processed on any particular

>server, depending on that servers load at the time.

I tend to think about it roughly this way and with the use of events, but I
need to put a lot more thought into my current set of thoughts.

>You could of course split those tasks any way you like, but the
>concept should be clear from the example.  What you really want to do
>is ensure that any particular part of the project can be handled by
>one or more servers in your server farm.  If you do that right, you
>don't need to concern yourself too much about where the right place to
>split would be.  If you find you allocated too few servers for the mob
>AI for example, you just add another server and split them into 3
>groups instead of 2.

Why does AI get treated any different from any other client connected to the
game?  (Making a lot of assumptions: clients aren't accessing world via flat
text that they just display, like telnet; that there are clients; etc).

 - Bruce

MUD-Dev maillist  -  MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list