1997Q2/
<!-- 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&#45;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>
[&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="msg00324.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00326.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00345.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00319.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00325">Author</A>
&nbsp;|&nbsp;<A HREF="#00325">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00325">Thread</A>
&nbsp;]

<!--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>
[&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>