[MUD-Dev] Distributed State Systems
Brian Lindahl
lindahlb at hotmail.com
Tue Sep 14 19:19:46 CEST 2004
"Thomas Tomiczek" <t.tomiczek at thona-consulting.com> wrote:
> Alex Arnon wrote:
> Why this approach?
> Why not use a standard approach, as defined by databases, and
> write changes to a log constantly, and on a restart, consolidate
> them into the database.
> The issue of having comples heavy operations performed in 100%
> uptime with a guarantee of no changes being lost is not exactly a
> new concept. It has been solved for ages now in "serious
> computing".
I think that logging changes made to the game state is an effecient
method of database logging for MMO's, where data must change quickly
and often. A more effecient method, I believe, would be shadowing
small portions before making changes. The system would be designed
similiar to virtual memory, however, supporting a global transaction
that is committed to on a regular basis. There is no need for the
overhead of individual transactions since transactions are often
small and very fast (player commands). Intelligent clustering
algorithms would be used to reduce the defragmentation.
I'm actually working on such a project at the moment and it's
nearing completion. It's an object-oriented database system
(currently only single-node and embedded in code, but I have plans
providing extensions for client/server) that allows for very
effecient allocation/deallocation and clustering for objects less
than 4k (page size). And logs on a granularity of 512 blocks with
log lookup being constant time (30 simple instructions). The logging
thread would be best assigned to another disk so as to increase the
IO throughput. It pretty much works like a virtual memory system
using pointer types in C++ to provide very similiar syntax to
regular memory programming. Pages are loaded in and out of memory in
the background, completely detatched from the user programmer. I'd
provide more information on it, but I'm at work right now and don't
have a lot of spare time. If there is sufficient interest, I'd be
glad to post more specifications and attributes of the system at a
later date.
Brian Lindahl
Development Director
The Cathyle Project
_______________________________________________
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