1998Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev]  DBs and Events -->
<!--X-From-R13: pbqreNvoz.arg -->
<!--X-Date: Mon, 16 Feb 1998 05:56:24 +0000 -->
<!--X-Message-Id: 199802151942.TAA15000#out5,ibm.net -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: Pine.LNX.3.91.980210181226.65I&#45;100000@uni&#45;corn.demon.co.uk -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: [MUD-Dev]  DBs and Events</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:coder#ibm,net">
</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="msg00478.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00480.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00437.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00391.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00479">Author</A>
&nbsp;|&nbsp;<A HREF="#00479">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00479">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev]  DBs and Events</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]  DBs and Events</LI>
<LI><em>From</em>: <A HREF="mailto:coder#ibm,net">coder#ibm,net</A></LI>
<LI><em>Date</em>: Sun, 15 Feb 98 10:28:24 -0800</LI>
<LI><em>Reply-to</em>: <A HREF="mailto:coder#ibm,net">coder#ibm,net</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>

On 10/02/98 at 10:52 AM, Greg Munt &lt;greg#uni-corn,demon.co.uk&gt; said:

&gt;Am looking for some (web) references to disk-based databases. Can anyone 
&gt;help? Advantages and disadvantages of using (only) GDBM to provide a mud
&gt;DB?

dbm and most of its extrapolations (including ndbm, gdbm, tdbm and
company) have some fairly severe performance and storage considerations. 
There is some (not much) discussion of this at the FreeDB page and in
their relevant documentation.  The docs for YOODA and LINCKS I recall also
working over that area lightly.  The little work I've done with ndbm has
shown it to be extremely sensitive to its choice of hashing algorithm for
the large-ish databases I was using (2 - 3 million records, frequent
accesses, very infrequent updates, very small records).

The MUD end is of course rarely mentioned.  Stephen White goes into it
lightly with his original docs for CoolMUD (still the most elegant and
downright sweet server deisgn I've seen yet), but mostly with the comment
that Marcus Ranum's DB code is par excellant.  Marcus Ranum was the
original champion of disk DB's as more performant than in-memory (due to
page fault penalties), and thus wrote UberMUD as a successful proofcase. 
You may be able to dig up some docs from him on the area (please repost
here -- I'm extremely interested).

Nathan validly questions the use of a DB at all for a MUD.  While I don't
agree with the extent of his argument, I have come to the view that a
classical DB is a questionable choice, and have thus been moving much
loser to a persistant store type model.  I'm not aware of much stody in
this area.

&gt;Also, any references to caches?

Most OS and compiler design books (I don't have the dragon book to hand to
check it in particular) have texts on one, two, and three level caches. 
There are also a goodly number of web references.  One thing I would
remember is that the benefits of cache are incredibly dependant on load
characteristics.  Very small changes in the type and pattern of accesses
can vastly increase performance with one cache design while getting little
or even a negative effect with another (cache overhead).

&gt;Any references to Event Management? 

Yup.  Get "Design Patterns" by the gang of four.  Read it.  Study it. 
Sleep with it.  Marry it.  Mind meld with it.  Incredible book.  Worth
thrice its weight in Uranium 238.

&gt;Is there any alternative to using a 
&gt;pointer to a function, to store the Event-&gt;function()? 

Yup, several.  I use message passing with the result that the
function/method bindings are very soft.  Again, see "Design Patterns".

&gt;(This has the 
&gt;disadvantage of every Event-&gt;function() needing to have the same number 
&gt;and type of parameters being passed to it.)

No, it doesn't.  There are many routes around this, encluding casting down
and back up to devalue the argument characteristics, wrapping all
arguments in a structure or class to result in a single argument and than
passing that, not using a function binding at all and using very light
weight message passing, and a very large host of other possibilities.

-- 
J C Lawrence                               Internet: claw#null,net
----------(*)                              Internet: coder#ibm,net
...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-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00396" HREF="msg00396.html">DBs and Events</A></STRONG>
<UL><LI><EM>From:</EM> Greg Munt &lt;greg#uni-corn,demon.co.uk&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00478.html">Re: [MUD-Dev] Administrative Responsibilities</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00480.html">Re: [MUD-Dev]  The MLI Project</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00437.html">Re: [MUD-Dev]  DBs and Events</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00391.html">OT: This is a test</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00479"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00479"><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] Version Control (was: DBs and Events)</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00616" HREF="msg00616.html">Re: [MUD-Dev] Version Control (was: DBs and Events)</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Fri 27 Feb 1998, 06:02 GMT
</LI>
<LI><strong><A NAME="00642" HREF="msg00642.html">Re: [MUD-Dev] Version Control (was: DBs and Events)</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 28 Feb 1998, 04:57 GMT
<LI><strong><A NAME="00668" HREF="msg00668.html">Re: [MUD-Dev] Version Control (was: DBs and Events)</A></strong>, 
Jon A. Lambert <a href="mailto:Jon.A.Lambert#ix,netcom.com">Jon.A.Lambert#ix,netcom.com</a>, Mon 02 Mar 1998, 15:07 GMT
</LI>
</LI>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
</ul>
<LI><strong><A NAME="00437" HREF="msg00437.html">Re: [MUD-Dev]  DBs and Events</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Thu 12 Feb 1998, 18:12 GMT
</LI>
<LI><strong><A NAME="00479" HREF="msg00479.html">Re: [MUD-Dev]  DBs and Events</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 16 Feb 1998, 05:56 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00391" HREF="msg00391.html">OT: This is a test</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 07 Feb 1998, 23:33 GMT
<UL>
<LI><strong><A NAME="00392" HREF="msg00392.html">Re: [MUD-Dev]  OT: This is a test</A></strong>, 
Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Sun 08 Feb 1998, 09:43 GMT
<UL>
<LI><strong><A NAME="00393" HREF="msg00393.html">Clients and things [Was:  OT: This is a test]</A></strong>, 
Matt Chatterley <a href="mailto:matt#mpc,dyn.ml.org">matt#mpc,dyn.ml.org</a>, Sun 08 Feb 1998, 12:32 GMT
<UL>
<LI><strong><A NAME="00470" HREF="msg00470.html">Re: [MUD-Dev]  Clients and things [Was:  OT: This is a test]</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 16 Feb 1998, 01:45 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</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>