[MUD-Dev] Languages for MUD drivers

J C Lawrence claw at cp.net
Wed Nov 24 11:36:00 New Zealand Daylight Time 1999

On Sun, 21 Nov 1999 11:33:58 +0000 
Jo Dillon <emily at thelonious.new.ox.ac.uk> wrote:

> J C Lawrence (claw at cp.net) spake thusly:

>> Area distribution assumes a reasonably even spread of activity.
>> Event distribution assumes that events can be distributed such
>> that minimal synch is required between nodes.
>> Both fail miserably with flash crowds.

>   Perhaps you could have some sort of model whereby servers held
> copies of the borders between them - so server A has some idea of
> server B's outlying territory (assuming a model where each server
> controls a geographic area). You limit the number of people
> allowed inside a single location in the world (so the flash crowd
> can never get /really/ big - which is realistic; you can't fit 500
> people in a broom cupboard). If a flash crowd develops, the server
> they're on contracts the area it deals with to those few rooms
> containing the (manageable) crowd. The neighbouring servers
> temporarily take over the neighbouring territory to keep the load
> on the crowd server down.  Of course you'd have to keep the
> servers in synch all the time in order to be ready for a flash
> crowd to develop.

Exactly, but I expect it needs to be taken a step futher and to
learn from the process model used on some CC:NUMA machines (ie
process and memory migration etc).  

Take the old neighborhood concept (it just WON'T die!) and wrap that 
around a server pool that handles your game world:

  Each server (hardware) is responsible for an arbitrary and
run-time derived number of neighborhoods which are selected with a
view to an even distribution of working sets across the server pools 
and minimising inter-server traffic to synch neighborhoods.

The result is that boundaries are solf.  All boundaries are soft.
Neighborhoods and objects migrate dynamically about the net of
machines as loads vary.  If a flash crowd develops at the royal
wedding most likely a single server will end up handling all the
neighborhoods derived from that event (which neighborhoods all share
high mutual synch event rates), and the rest of the world gets
distributed over the other boxen.  When the wedding party splits up
into two camps each of which retreat back towards their respective
castles (say the wedding went very sour very quickly), one set of
neighborhoods get handed off to another server (which gets dedicated
to that), and then the pair of servers then track those
neighborhoods in their different directions across the game world
until they dissolve.

Its load sharing at the object level.

J C Lawrence                              Internet: claw at kanga.nu
----------(*)                            Internet: coder at kanga.nu
...Honorary Member of Clan McFud -- Teamer's Avenging Monolith...

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

More information about the MUD-Dev mailing list