<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Re: DBMS in MU*'s --> <!--X-From-R13: X Q Znjerapr <pynjNhaqre.rate.ftv.pbz> --> <!--X-Date: Tue, 11 Aug 1998 15:26:55 -0700 --> <!--X-Message-Id: 199808112226.PAA06146#under,engr.sgi.com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 77182868FA7.AAA22A6#smtp04,wxs.nl --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] Re: DBMS in MU*'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> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00665.html">Previous</a> | <a href="msg00667.html">Next</a> ] Thread: [ <a href="msg00267.html">Previous</a> | <a href="msg00675.html">Next</a> ] Index: [ <A HREF="author.html#00666">Author</A> | <A HREF="#00666">Date</A> | <A HREF="thread.html#00666">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] Re: DBMS in MU*'s</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: [MUD-Dev] Re: DBMS in MU*'s </LI> <LI><em>From</em>: J C Lawrence <<A HREF="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</A>></LI> <LI><em>Date</em>: Tue, 11 Aug 1998 15:26:45 -0700</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</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 Sun, 19 Jul 1998 14:29:26 +0200 Asmodai <Jeroen> wrote: > Well met all, I have been wondering, most MU*'s use ASCII-files as > storage for the object database their MU* carries. Depending on your definition of "most", this is semi-true. Cold and others store binary byte-coded versions of their objects in their DB. There are several other variations. > As far as my basic knowledge about databases goes this could be > enhanced and maybe even sped up by using a relational/referential or > Object Orientated DBMS alongside or in the MU*. This is really dependant on the character of your DB accesses, and in particular how much if at all your object heirarchy will morph during the server runtime. In my case the entire object heriarchy may be re-written during the game runtime (there is no pre-defined structure). Others use a single pre-fixed heirarchy which can only be linearly extended during runtime if at all, as well as several grades inbetween. Attempting to translate my model into, say, an SQL DB (as I briefly attempted), poses problems. The inter-object relationships which (presumably) require indexes are dynamic and defined by the user-written contents and definitions of the objects. As such I can't pre-define the record structure in a manner that maps directly to the object heirarchy. I can instead chose a simple structural model, say with one table for the object ID's, another table for the objectID->method/attribute names/definitions, another table for the verb bindings, another for the inheritance parentage etc. However this imposes a severe performance penalty as any object access now requires traversing multiple indexes to retrieve any single portion of an object. Even worse are the number of traversals needed to retrieve an entire object. Index traversals quickly became the limiting factor, especially for internally complex objects. But, even if I do this it gains me nothing. The mere fact of the DQL DB doesn't particularly allow me to do intelligent queries of the DB as there is no intelligence about the object heirarchy built into the DB representationm, so instead I have to write a custom filter which sits atop the DB and attempts to impart intelligence to the presenation of the DB contents and its heirarchy. Why bother? I can use a simple ISAM DB, lose all the index traverses, drop my complexity an order of magnitude, and still use the same filter to impart the same sense of intelligence. If your server does not support runtime morphing then, as discussed here earlier (see archives), you can efficiently get away with a standard RDBMS. That said most current designs access their objects only thru object ID and comparitively rarely thru relational filters (this is a design-time consideration -- you can design and implement a server to do relational accesses, its just that nobody has). In such simple cases (essentially a degraded RDBMS model with only one index) a standard ISAM approach works well and is in essence identical to the RDBMS with one index. OO DB's? Yes, potentially these give the greatest promise. The problem is that there are no (known) OODB's which support runtime morphism with the result that attempting to wedge-fit them to the job is an excercise in frustration. I presume that they could be used for runtime-static games fairly well, but have not checked. > Are there people on this list that have actually tried this? Either > the relational/referntial or the OO DBMS. Semi. Lambert has also done some work in the area, as well as having a professional familiarity with current DB products. > I apologize if this has allready been covered in earlier posts, I am > in the prospect in reading all the backposts, so if this was already > discussed in previous posts, please direct me to the year the posts > were made in so I can scavange for them =) Have a look at the thread rooted at: <A HREF="http://www.kanga.nu/~petidomo/lists/mud-dev/1998Q3/msg00013.html">http://www.kanga.nu/~petidomo/lists/mud-dev/1998Q3/msg00013.html</A> It doesn't provide a whole lot, but if you keyword search off there you should find the rest. -- 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> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="00675" HREF="msg00675.html">[MUD-Dev] Re: DBMS in MU*'s</A></strong> <ul compact><li><em>From:</em> "Jon A. Lambert" <jlsysinc#ix,netcom.com></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00251" HREF="msg00251.html">[MUD-Dev] DBMS in MU*'s</A></STRONG> <UL><LI><EM>From:</EM> Jeroen Ruigrok/Asmodai <asmodai#wxs,nl></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00665.html">[MUD-Dev] Re: clients anyone?...</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00667.html">[MUD-Dev] Re: Login and Accounts</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00267.html">[MUD-Dev] Re: DBMS in MU*'s</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00675.html">[MUD-Dev] Re: DBMS in MU*'s</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00666"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00666"><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>[MUD-Dev] Re: DBMS in MU*'s</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="00259" HREF="msg00259.html">[MUD-Dev] Re: DBMS in MU*'s</A></strong>, Jeroen Ruigrok/Asmodai <a href="mailto:asmodai#wxs,nl">asmodai#wxs,nl</a>, Sun 19 Jul 1998, 18:45 GMT <UL> <LI><strong><A NAME="00668" HREF="msg00668.html">[MUD-Dev] Re: DBMS in MU*'s</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 11 Aug 1998, 23:14 GMT <UL> <LI><strong><A NAME="00678" HREF="msg00678.html">[MUD-Dev] Re: DBMS in MU*'s</A></strong>, quzah <a href="mailto:quzah#geocities,com">quzah#geocities,com</a>, Wed 12 Aug 1998, 10:55 GMT </LI> </UL> </LI> </UL> </LI> </ul> </ul> </ul> <LI><strong><A NAME="00267" HREF="msg00267.html">[MUD-Dev] Re: DBMS in MU*'s</A></strong>, Ross Nicoll <a href="mailto:rnicoll#lostics,demon.co.uk">rnicoll#lostics,demon.co.uk</a>, Mon 20 Jul 1998, 07:34 GMT </LI> <LI><strong><A NAME="00666" HREF="msg00666.html">[MUD-Dev] Re: DBMS in MU*'s</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 11 Aug 1998, 22:26 GMT <UL> <LI><strong><A NAME="00675" HREF="msg00675.html">[MUD-Dev] Re: DBMS in MU*'s</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Wed 12 Aug 1998, 04:26 GMT </LI> </UL> </LI> </ul> </LI> <LI><strong><A NAME="00250" HREF="msg00250.html">[MUD-Dev] Design Patterns for Concurrent, Parallel, and Distributed Systems</A></strong>, Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Sun 19 Jul 1998, 08:32 GMT <LI><strong><A NAME="00246" HREF="msg00246.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 18 Jul 1998, 01:51 GMT <UL> <LI><strong><A NAME="00661" HREF="msg00661.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 11 Aug 1998, 17:32 GMT </LI> </UL> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>