1998Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev] World Persistence, flat files v/s DB v/s ?? -->
<!--X-From-R13: X Q Znjerapr <pynjNhaqre.rate.ftv.pbz> -->
<!--X-Date: Wed, 01 Apr 1998 20:48:13 +0000 -->
<!--X-Message-Id: 199804012048.MAA38226#under,engr.sgi.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199803250720.AAA25248#user2,inficad.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:claw#under,engr.sgi.com">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00002.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00004.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00002.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00005.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00003">Author</A>
&nbsp;|&nbsp;<A HREF="#00003">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00003">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI>
<LI><em>Subject</em>: Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ?? </LI>
<LI><em>From</em>: J C Lawrence &lt;<A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A>&gt;</LI>
<LI><em>Date</em>: Wed, 01 Apr 1998 12:48:07 -0800</LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
On Tue, 24 Mar 1998 23:33:44 PST8PDT 
Adam Wiggins&lt;nightfall#user2,inficad.com&gt; wrote:

&gt; I never got around to trying that idea that came up here (I can't
&gt; remember who thought of it - maybe it was me) a while back, about
&gt; having a parallel process running which did nothing but take a
&gt; snapshot of the DB every n units of time and then dump them to disk
&gt; in a leisurely manner.  This process would not crash when your
&gt; regular server would; instead it would just sit there holding its
&gt; latest snapshot.  When the server resurrected itself it would
&gt; request the DB snapshot back from the secondary process, and then
&gt; continue as normal.  Your disk writes could be as infrequent as you
&gt; like; I'd probably pass them to yet another process running at the
&gt; lowest possible priority, maybe even sending the data in chunked out
&gt; spurts of like 500k.  But really, it shouldn't matter - short of the
&gt; janitor tripping over the power cord, the secondary process (which
&gt; should, of course, never crash - a piece of code that small should
&gt; be easy to make bullet-proof) will just retain an in-memory copy.
&gt; In theory you could update it as often as every ten seconds.

This seems related to an idea I discussed on this list back about this 
time last year (I think), except that I didn't do the forking side.

Instead the server would periodically elect to do a backup of the DB.
It would then start a low priority thread which would iterate across
all objects in the DB, copying them to a new DB file.  During this
time the normal server would continue running as per normal with no
noticable impact on the game (per se).  In the case of an object being
modified by the game which had already been written to the backup DB,
the DB functions would automatically update the version in the back as 
well as the one in primary store.  

&gt; Naturally the only downside to this is that you essentially need
&gt; double the RAM, but I see this as a pretty small concession,
&gt; considering the price of memory these days.

&lt;kof&gt;

RAM is cheap when counted in Meg's.  It remains expensive when counted
in Gig's.  That said, I eagerly await the (improbable) day when my
machine has more RAM that it has disk (improbable due to swap/core
requirements)..

-- 
J C Lawrence                               Internet: claw#null,net
(Contractor)                               Internet: coder#ibm,net
---------(*)                     Internet: claw#under,engr.sgi.com
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith...

</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00002.html">Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00004.html">Re: [MUD-Dev] (fwd) Re: Roleplaying</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00002.html">Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00005.html">Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00003"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00003"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>Re: [MUD-Dev] Persistant storage.... My current idea.</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<LI><strong><A NAME="00022" HREF="msg00022.html">Re: [MUD-Dev] Persistant storage.... My current idea.</A></strong>, 
Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Sun 05 Apr 1998, 02:02 GMT
</LI>
</ul>
<LI><strong><A NAME="00271" HREF="msg00271.html">[MUD-Dev] Persistant storage.... My current idea.</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 22 Apr 1998, 23:26 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00004" HREF="msg00004.html">Re: [MUD-Dev] (fwd) Re: Roleplaying</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Apr 1998, 22:26 GMT
<LI><strong><A NAME="00002" HREF="msg00002.html">Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Apr 1998, 19:41 GMT
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00003" HREF="msg00003.html">Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Apr 1998, 20:48 GMT
</LI>
<LI><strong><A NAME="00005" HREF="msg00005.html">Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Apr 1998, 22:28 GMT
</LI>
<LI><strong><A NAME="00006" HREF="msg00006.html">Re: [MUD-Dev] World Persistence, flat files v/s DB v/s ??</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 01 Apr 1998, 22:30 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00001" HREF="msg00001.html">Re: [MUD-Dev] META: Broken mail headers</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Wed 01 Apr 1998, 15:49 GMT
<LI><strong><A NAME="00000" HREF="msg00000.html">Re: [MUD-Dev]  Clients</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Thu 12 Feb 1998, 02:19 GMT
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>