[DGD] Persistance

Kevin N. Carpenter kevinc at seaplace.org
Wed Dec 26 17:47:26 CET 2001


Hi all.  I have a few days off work and have been toying with restarting
my efforts to rebuild FishRoom (telnet fishroom.seaplace.org 1025).
FishRoom was last updated to 1.0.50 when it came out, and is based on
code originally written in January of 1995.  Although it has been
running since '95, it seems like its time to freshen it up.
 
With that in mind, I'm fascinated with the concept of a persistent mud.
Today, I do the classic load/save of a user file, along with dynamic
loading of rooms as they are referenced.  I'd like to convert to a
persistent model, or at least to what I'm beginning to understand as
such.
 
So. can someone help me with the basics?
 
I presume that the mud should always be shutdown and a dump file
created.  That dumpfile should be passed to the driver as an argument
when restarting the mud.
This should restore the mud, less any previously open connections, to
its previous state.  I believe I caught Felix mentioning that swap files
could be used instead?
If so, how?  Do I simply pass the name of the swap file instead of the
dump file?  And if so, why would I use a dump file instead of just doing
a swapout() prior to shutting down?  
 
The swapfile restart sounds great, since I presume it would be more
current than any periodic dumpfile created, and would avoid the
performance hit of creating a dumpfile every hour or so.  On the
flipside, I presume the dumpfile is a more consistent image of the mud,
and would be more appropriate as a backup device.
 
Once I'm past this, the next issue would be object management.
Presumably every object in a persistent mud must be upgradeable to avoid
every having to restart (Hmm, "Let there be light!" comes to mind) the
mud.  This would imply a heavy duty object manager that kept track of
all objects and inheritables, automatically recompiling any affected
object when an underlying source file was changed and the object manager
was notified.  The extreme case of this would be changing the auto
object.  This could be rather challenging.  Has it been written already?
I noticed the hooks in the kernel library, which I intend to use now
that it exists, but was wondering if someone had one publicly available.
 
Thanks in advance!
 
Kevin N. Carpenter
kevinc at seaplace.org
http://www.seaplace.org/~kevinc
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.dworkin.nl/pipermail/dgd/attachments/20011226/ebf347a6/attachment.html>


More information about the DGD mailing list