<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Re: lockless system - foolproof? --> <!--X-From-R13: Quevf Uenl <ptNnzv-pt.UenlEntr.Sqzbagba.OP.QO> --> <!--X-Date: Sun, 30 Aug 1998 09:06:14 -0700 --> <!--X-Message-Id: 199808301603.KAA01123@ami-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> [ <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="msg00874.html">Previous</a> | <a href="msg00876.html">Next</a> ] Thread: [ <a href="msg00881.html">Previous</a> | <a href="msg00877.html">Next</a> ] Index: [ <A HREF="author.html#00875">Author</A> | <A HREF="#00875">Date</A> | <A HREF="thread.html#00875">Thread</A> ] <!--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 <<A HREF="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</A>></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:] >Assuming this solution (please let me know if there are any other solutions), >the possibility arises of having to collect a large number of such database >commits due to some operation on a complex compound object, where guaranteeing >the atomicity of access to subobjects is not sufficient. Then a thread which >tries to grab all the objects in question, operate upon them in such a way that >the overall constraints are satisfied, and save the changes, would be >vulnerable to frequent, possibly endless restarts as one or another of the many >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&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 <claw#kanga,nu></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 <jwilson#rochester,rr.com></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><Possible follow-up(s)><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> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>