[MUD-Dev] Distributed State Systems

Michael Tindal mtindal at paradoxpoint.com
Mon Aug 30 22:35:03 CEST 2004


Hello all,

I've been working on developing a distributed system meant to ensure
that connections are not lost despite programmatic errors in system
design (e.g. segmentation faults or the like).  The goal is that
there is a central driver that distributes connections among various
nodes, with every node having at most half of its maximum connection
capacity, so in the event one node fails it can simply transfer its
connections temporarily to a running node until a new node is
created to handle the connections.  That part is relatively complete
and I understand the implications and how to actually do it.  What
I'm stuck on is how to ensure a consistent world-state among the
various worlds.  As the MUD I am designing is a mixed PK/RP system,
any system latency is a bad thing.  I think I could have the system
tolerate a latency up to 1sec, but any more than that would create
server-splits and cause an inconsistency in how the world is relayed
to players or how players communicate with each other.

Currently what I'm looking at is a central data repository with a
way for nodes to store/retrieve data, and some form of a data cache
for each node to minimize round trips.  As the connections scale and
more nodes are querying for data and storing data in the repository
the time needed for the data repository to keep up with each node
increases, thereby increasing latency.

Are there any ways to ensure that the world stays as consistent as
possible despite the number of nodes and/or connections? (The idea
is to keep the system indefinitely scalable, one of my major goals
in its design).  I'm not sure how the central data repository would
scale, since every data I/O request is an inter-thread (or
inter-process) call, the repository has to queue requests until it
is capable of fulfilling them.  Any suggestions on how to avoid this
while still maintaining consistency?

Mike Tindal
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list