1999Q4/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: RE: [MUD&#45;Dev] Languages for MUD drivers -->
<!--X-From-R13: Qlaor eh Fnera <plaorNzhd.bet> -->
<!--X-Date: Thu, 18 Nov 1999 09:01:01 &#45;0800 -->
<!--X-Message-Id: 199911180758.BAA18704#laurel,actlab.utexas.edu -->
<!--X-Content-Type: text/plain -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, RE: [MUD-Dev] Languages for MUD drivers</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:cynbe#muq,org">
</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="msg00363.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00356.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00354.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00256.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00361">Author</A>
&nbsp;|&nbsp;<A HREF="#00361">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00361">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>RE: [MUD-Dev] Languages for MUD drivers</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>: RE: [MUD-Dev] Languages for MUD drivers</LI>
<LI><em>From</em>: Cynbe ru Taren &lt;<A HREF="mailto:cynbe#muq,org">cynbe#muq,org</A>&gt;</LI>
<LI><em>Date</em>: Thu, 18 Nov 1999 01:58:31 -0600</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Sender</em>: <A HREF="mailto:mud-dev-admin#kanga,nu">mud-dev-admin#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>

"Ian Macintosh" &lt;iman#issystems,co.nz&gt; comments:

|  The reason why I believe this is better than using RPC or whatever to
|  load balance based on events, is that I can't get away from the
|  requirement that one system has to be the master, or own, a particular
|  piece of the MUD.
|  
|  i.e., Server B handles Midgaard, and as such, if *anyone* or *any
|  server* wants to know the exact state of Market Square, it must find
|  out here.  If there are two servers possibly handling the same piece
|  of real estate, who's version is the right one?  Likewise, Server E
|  controls the Grand Mistress of Magic sitting on her throne in the High
|  Tower of Sorcery.  If you want to know her status, you find that out
|  by querying Server E.

I've spent a fair amount of time thinking about (and coding!) such
stuff, and I fairly strongly agree that one definitive server owner
per given bit of state is the practical solution: The distributed db
people can offer alternatives, but imho they will prove too
heavyweight and too vulnerable to malicious denial of service attacks
to be effective in our sort of setting.

There are however lots of tricks which can be applied to reduce
hotspot problems, including:

* Marking state as read-only where-ever appropriate.  Read-only
  state can be widely cached and circulated between remote
  servers, reducing hotspot server load.  This may require
  something like public-key signatures on such state to guarantee
  authenticity, hashcode names to identify parts of it, and a
  server-server protocol for enquiring if a given bit of state
  happens to be in cache, please.

* Even where state is not actually read-only, it may be possible
  to mark it as cache-able for a period of minutes, hours or
  days:  This is basically the critical trick that makes DNS
  a practical engineer proposition instead of a cute theoretical
  idea.  Background descriptions (explicit or procedural) which
  get updated infrequently are reasonable candidates for this,
  and may easily constitute most of the state of many systems.
    Beyond the addition of the timeout, the implementation
  hacks are the same as for read-only state.

* Broadcast protocols can be used to make the load on a server
  independent of the number of clients.  Formal network broadcast
  facilities like MBONE can be cool in this context if available,
  but similar effects can be achieved by assembling clients into
  fanout trees:  Making the hotspot clients part of the load
  solution, not just part of the problem.  If this is done well,
  it effectively means that server hardware sources automatically
  scale to meet the load, since each client contributes resources
  to the server.

None of which constitute a magic bullet making all the problems
go away -- but since when does any kind of engineering work that
way anyhow? :)

 Cynbe



_______________________________________________
MUD-Dev maillist  -  MUD-Dev#kanga,nu
<A  HREF="http://www.kanga.nu/lists/listinfo/mud-dev">http://www.kanga.nu/lists/listinfo/mud-dev</A>

</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="msg00363.html">Re: [MUD-Dev] Mud hosting services</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00356.html">Re: [MUD-Dev] code base inquiry</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00354.html">Re: [MUD-Dev] Languages for MUD drivers</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00256.html">[MUD-Dev] code base inquiry</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00361"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00361"><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] Languages for MUD drivers</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00317" HREF="msg00317.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, 
Laurent Bossavit <a href="mailto:laurent#netdive,com">laurent#netdive,com</a>, Wed 17 Nov 1999, 23:19 GMT
</LI>
<LI><strong><A NAME="00351" HREF="msg00351.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, 
Cynbe ru Taren <a href="mailto:cynbe#muq,org">cynbe#muq,org</a>, Thu 18 Nov 1999, 07:34 GMT
</LI>
<LI><strong><A NAME="00344" HREF="msg00344.html">RE: [MUD-Dev] Languages for MUD drivers</A></strong>, 
Cynbe ru Taren <a href="mailto:cynbe#muq,org">cynbe#muq,org</a>, Thu 18 Nov 1999, 07:34 GMT
</LI>
<LI><strong><A NAME="00354" HREF="msg00354.html">Re: [MUD-Dev] Languages for MUD drivers</A></strong>, 
Cynbe ru Taren <a href="mailto:cynbe#muq,org">cynbe#muq,org</a>, Thu 18 Nov 1999, 07:44 GMT
</LI>
<LI><strong><A NAME="00361" HREF="msg00361.html">RE: [MUD-Dev] Languages for MUD drivers</A></strong>, 
Cynbe ru Taren <a href="mailto:cynbe#muq,org">cynbe#muq,org</a>, Thu 18 Nov 1999, 17:01 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00256" HREF="msg00256.html">[MUD-Dev] code base inquiry</A></strong>, 
Ilya, Game Commandos <a href="mailto:Ilya#gamecommandos,com">Ilya#gamecommandos,com</a>, Tue 16 Nov 1999, 01:19 GMT
<UL>
<LI><strong><A NAME="00278" HREF="msg00278.html">Re: [MUD-Dev] code base inquiry</A></strong>, 
Lars Duening <a href="mailto:lars#bearnip,com">lars#bearnip,com</a>, Wed 17 Nov 1999, 02:18 GMT
<UL>
<LI><strong><A NAME="00285" HREF="msg00285.html">Re: [MUD-Dev] code base inquiry</A></strong>, 
Travis S. Casey <a href="mailto:efindel#io,com">efindel#io,com</a>, Wed 17 Nov 1999, 16:31 GMT
<UL>
<LI><strong><A NAME="00301" HREF="msg00301.html">Re: [MUD-Dev] code base inquiry</A></strong>, 
Andru Luvisi <a href="mailto:luvisi#andru,sonoma.edu">luvisi#andru,sonoma.edu</a>, Wed 17 Nov 1999, 21:24 GMT
</LI>
</UL>
</LI>
</UL>
</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>