1998Q3/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: lockless system &#45; foolproof? -->
<!--X-From-R13: Quevf Uenl <ptNnzv&#45;pt.UenlEntr.Sqzbagba.OP.QO> -->
<!--X-Date: Sun, 30 Aug 1998 09:06:14 &#45;0700 -->
<!--X-Message-Id: 199808301603.KAA01123@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--X-Content-Type: text/plain -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: lockless system - foolproof?</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">
</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="msg00874.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00876.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00881.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00877.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00875">Author</A>
&nbsp;|&nbsp;<A HREF="#00875">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00875">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: lockless system - foolproof?</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: lockless system - foolproof?</LI>
<LI><em>From</em>: Chris Gray &lt;<A HREF="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</A>&gt;</LI>
<LI><em>Date</em>: Sun, 30 Aug 1998 10:03:18 -0600</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>
[James Wilson:]

 &gt;Assuming this solution (please let me know if there are any other solutions),
 &gt;the possibility arises of having to collect a large number of such database
 &gt;commits due to some operation on a complex compound object, where guaranteeing
 &gt;the atomicity of access to subobjects is not sufficient. Then a thread which
 &gt;tries to grab all the objects in question, operate upon them in such a way that
 &gt;the overall constraints are satisfied, and save the changes, would be
 &gt;vulnerable to frequent, possibly endless restarts as one or another of the many
 &gt;objects it is trying to keep coherent is changed.

I certainly don't want to speak for JC, but here's my understanding...

The goal is to have the programmer not have to worry about issues like
that - they are too tricky for most people who would want to try
scripting on a MUD. So, JC's system, last I heard, doesn't present any
specific locking or commit primitives to the programmer. The goal is
to have the underlying system take care of it all for you. A lofty
goal, but very nice if achieved effectively.

As an event runs, the system keeps original, untouched copies of all
database objects that the event references or changes. As the event
changes things, copies of the originals are made, and the changes are
put into those copies. When the event completes, the C&amp;C (compare and
commit) happens (all automatically). If any of the objects that the
event referenced have been changed in the meantime, then the event
must be retried. Otherwise, the event's changes are atomically committed
to the database. I think there were some optimizations possible. There
could be lots of retries needed on busy objects. I believe some of the
suggested solutions involved the scheduling of events, with the final
attempt that of running the contentious (hah!) event all by itself,
with nothing else running.

That said, now JC can berate me for not understanding things properly!

-- 
Chris Gray     cg#ami-cg,GraySage.Edmonton.AB.CA


</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="00879" HREF="msg00879.html">[MUD-Dev] Re: lockless system - foolproof?</A></strong>
<ul compact><li><em>From:</em> J C Lawrence &lt;claw#kanga,nu&gt;</li></ul>
<li><strong><A NAME="00877" HREF="msg00877.html">[MUD-Dev] Re: lockless system - foolproof?</A></strong>
<ul compact><li><em>From:</em> James Wilson &lt;jwilson#rochester,rr.com&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00874.html">[MUD-Dev] Re: Modular MUD</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00876.html">[MUD-Dev] Re: Modular MUD [Was:Finer points of Telnet programming ...]</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00881.html">[MUD-Dev] Admin: OS wars and avocacy are off-topic</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00877.html">[MUD-Dev] Re: lockless system - foolproof?</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00875"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00875"><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: Intermud Communication...is it worth it?</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00931" HREF="msg00931.html">[MUD-Dev] Re: Intermud Communication...is it worth it?</A></strong>, 
T. Alexander Popiel <a href="mailto:popiel#snugharbor,com">popiel#snugharbor,com</a>, Thu 03 Sep 1998, 17:12 GMT
<UL>
<LI><strong><A NAME="00932" HREF="msg00932.html">[MUD-Dev] Re: Intermud Communication...is it worth it?</A></strong>, 
Ling <a href="mailto:K.L.Lo-94#student,lboro.ac.uk">K.L.Lo-94#student,lboro.ac.uk</a>, Thu 03 Sep 1998, 17:47 GMT
</LI>
</UL>
</LI>
</ul>
</LI>
<LI><strong><A NAME="00914" HREF="msg00914.html">[MUD-Dev] VT-100 and other terminal data</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 02 Sep 1998, 19:14 GMT
<LI><strong><A NAME="00881" HREF="msg00881.html">[MUD-Dev] Admin: OS wars and avocacy are off-topic</A></strong>, 
J C Lawrence <a href="mailto:claw#kanga,nu">claw#kanga,nu</a>, Sun 30 Aug 1998, 21:26 GMT
<LI><strong><A NAME="00875" HREF="msg00875.html">[MUD-Dev] Re: lockless system - foolproof?</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sun 30 Aug 1998, 16:06 GMT
<UL>
<LI><strong><A NAME="00877" HREF="msg00877.html">[MUD-Dev] Re: lockless system - foolproof?</A></strong>, 
James Wilson <a href="mailto:jwilson#rochester,rr.com">jwilson#rochester,rr.com</a>, Sun 30 Aug 1998, 19:44 GMT
</LI>
<LI><strong><A NAME="00879" HREF="msg00879.html">[MUD-Dev] Re: lockless system - foolproof?</A></strong>, 
J C Lawrence <a href="mailto:claw#kanga,nu">claw#kanga,nu</a>, Sun 30 Aug 1998, 20:23 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00874" HREF="msg00874.html">[MUD-Dev] Re: Modular MUD</A></strong>, 
D. B. Brown <a href="mailto:dbrown1#stny,lrun.com">dbrown1#stny,lrun.com</a>, Sun 30 Aug 1998, 16:04 GMT
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00880" HREF="msg00880.html">[MUD-Dev] Re: Modular MUD</A></strong>, 
quzah <a href="mailto:quzah#geocities,com">quzah#geocities,com</a>, Sun 30 Aug 1998, 21:10 GMT
</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>