<!-- MHonArc v2.4.4 --> <!--X-Subject: Comments on the DB layer --> <!--X-From-R13: pynjerapNphc.uc.pbz --> <!--X-Date: from tacitus.globecomm.net [207.51.48.7] by mx5.ibm.net id 862965805.24596-1 Wed May 7 00:43:25 1997 --> <!--X-Message-Id: 199705070050.RAA18330#xsvr3,cup.hp.com --> <!--X-Content-Type: text/plain --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Comments on the DB layer</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:clawrenc#cup,hp.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="msg00324.html">Previous</a> | <a href="msg00326.html">Next</a> ] Thread: [ <a href="msg00345.html">Previous</a> | <a href="msg00319.html">Next</a> ] Index: [ <A HREF="author.html#00325">Author</A> | <A HREF="#00325">Date</A> | <A HREF="thread.html#00325">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Comments on the DB layer</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>: Comments on the DB layer</LI> <LI><em>From</em>: <A HREF="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</A></LI> <LI><em>Date</em>: Mon, 05 May 97 17:37:59 -0700</LI> <LI><em>Reply-to</em>: <A HREF="mailto:claw#null,net">claw#null,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> In wrapping up the base design and most of the coding for moving my DB to a fully transactional DB, an interesting little fillip poked its head up. Currently my ObjectID is a single 64bit value comprised of a 32bit Record# and a 32bit time_t. This is great for uniquely identifying a given object while allowing database record # recycling. The interest arises in adding transactions and then allowing objects to be "rolled back" thru time to a previous state. How should such an object state (ie the object as of a particular instant in time) be identified? Should this identification be different from the normal ObjectId? My current approach is to change my definition of an ObjectID to a 128bit value as follows: From: 32bit record# 32bit time_t // Time that object was initiallty created To: 32bit record# 32bit time_t // Time that object was initiallty created 32bit time_t // Time of last transaction on object 32bit ms // Millisecond subdivision for last transaction time A normal ObjectID would continue to be the same 64 bit value. The last 64bits specifiying the last transaction time would auto-default to the very latest transaction on that object (ie the current object). This allows compleatly transparent handling of objects without having to address the transactions or rollback support. When needed however, say for audits or other game or server analysis, a full 128bit Object ID could be used. This would specify the version of the object which existed at that time. Note that if there was no transaction for the object as of that specified time, object state for the transaction _immediately_ preceding that time would be returned. (ie transparent) This should allow for easy analysis of the database as of any instant in time. Now to go argue with myself and see if I really want some form of query support for the DB. The appeal of having an admin able to do something like: Show me all the users who killed mobile XXX in the last week, cross referenced with a list of all the weapons and spells they used in their successful attacks. is undeniable. -- J C Lawrence Internet: claw#null,net (Contractor) Internet: coder#ibm,net ---------------(*) Internet: clawrenc#cup,hp.com ...Honorary Member 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="msg00324.html">Re: [MUD-Dev] (fwd) Re: Issues from the digests and Wout's list</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00326.html">Prepositions and parsing</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00345.html">Re: [MUD-Dev] Re: Prepositions and parsing</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00319.html">Last sendmail test (we're up to 8.*)!</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00325"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00325"><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] Re: Prepositions and parsing</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="00489" HREF="msg00489.html">Re: [MUD-Dev] Re: Prepositions and parsing</A></strong>, Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Fri 16 May 1997, 05:41 GMT <UL> <LI><strong><A NAME="00509" HREF="msg00509.html">Re: [MUD-Dev] Re: Prepositions and parsing</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Sat 17 May 1997, 00:59 GMT </LI> </UL> </LI> </ul> </ul> <LI><strong><A NAME="00328" HREF="msg00328.html">Re: Prepositions and parsing</A></strong>, S001GMU <a href="mailto:S001GMU#nova,wright.edu">S001GMU#nova,wright.edu</a>, Wed 07 May 1997, 20:36 GMT <UL> <LI><strong><A NAME="00345" HREF="msg00345.html">Re: [MUD-Dev] Re: Prepositions and parsing</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Sat 10 May 1997, 00:14 GMT </LI> </UL> </LI> </ul> </LI> <LI><strong><A NAME="00325" HREF="msg00325.html">Comments on the DB layer</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Wed 07 May 1997, 07:43 GMT <LI><strong><A NAME="00319" HREF="msg00319.html">Last sendmail test (we're up to 8.*)!</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sun 04 May 1997, 08:37 GMT <LI><strong><A NAME="00317" HREF="msg00317.html">Re: [MUD-Dev] Re: Multi-threaded mudding (was a flamefest)</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 03 May 1997, 12:57 GMT <LI><strong><A NAME="00314" HREF="msg00314.html">More sendmail tests...</A></strong>, coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sat 03 May 1997, 12:19 GMT <LI><strong><A NAME="00304" HREF="msg00304.html">Re: [MUD-Dev] Re: Multi-threaded mudding (was a flamefest)</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Fri 02 May 1997, 10:30 GMT </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>