1999Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev] How to support 1000+ simultaneous connections, and some philosophy. -->
<!--X-From-R13: Ayvire Xbjrgg <vprphorNvuht.pb.am> -->
<!--X-Date: Tue, 9 Mar 1999 22:50:22 &#45;0800 -->
<!--X-Message-Id: Pine.LNX.3.96.990310191119.559A&#45;100000#agrajag,internal -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 36E5FD1A.5DA0DFB3#cyberhighway,net -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: [MUD-Dev] How to support 1000+ simultaneous connections, a</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:icecube#ihug,co.nz">
</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="msg00514.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00516.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00523.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00524.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00515">Author</A>
&nbsp;|&nbsp;<A HREF="#00515">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00515">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</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] How to support 1000+ simultaneous connections, and some philosophy.</LI>
<LI><em>From</em>: Oliver Jowett &lt;<A HREF="mailto:icecube#ihug,co.nz">icecube#ihug,co.nz</A>&gt;</LI>
<LI><em>Date</em>: Wed, 10 Mar 1999 19:48:56 +1300 (NZDT)</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>
On Tue, 9 Mar 1999, Ben Greear wrote:

&gt; It looks like you'd want one program sitting on your well known
&gt; port, accepting connections.  It could be attached to the 'real'
&gt; server via a single socket or pipe.  A trivial packet encapsulation
&gt; with a unique ID as far as the main server is concerned should
&gt; work just fine.
&gt; 
&gt; However, I wonder what to do when the accepting server on the
&gt; well known port is full?  One thing would be for it to quit
&gt; listening and spawn a new process on that well known port?
&gt; 
&gt; That works for a while, but then how do you re-use this detached
&gt; server when it's load goes down again?
&gt; 
&gt; Anyone know how Apache does it?

Apache appears to use a mutex to make sure that only one child is
attempting to select on the accepting socket at once (it's set up once, in
the parent).  This isn't really the same as the problem here since we
don't want to completely block the child servers.. 

Perhaps something like:

- Parent sets up accepting socket on well-known port

- Parent does the select() on the accepting socket. When a connection is
  ready to be accepted, it picks a free child and sends it a control
  message to that child saying "accept a connection now".

- When a child gets this message, it calls accept() on the accepting
  socket and starts handling that connection.

- If the parent finds there are no free children, it starts a new one
  (inheriting the common accepting socket)

- When a child gets full, it sends a message to the parent saying "no more
  connections for me please". When it gets space again, it sends the
  opposite message. The parent keeps track of which children are free
  to accept new connections based on these messages.

- If a child gets a "accept a connection" message and it's full, it sends
  an appropriate message to the server to farm it out again (this is
  possible if the "I'm full" message didn't arrive in time)

Might work. This would also let you balance the connection load between
several children (assuming the children do a bit more than just
en/decapsulate and pass on data) 

-O



_______________________________________________
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>
<ul compact><li><strong>Follow-Ups</strong>:
<ul>
<li><strong><A NAME="00524" HREF="msg00524.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>
<ul compact><li><em>From:</em> Ben Greear &lt;greear#cyberhighway,net&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00513" HREF="msg00513.html">[MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG>
<UL><LI><EM>From:</EM> Ben Greear &lt;greear#cyberhighway,net&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00514.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00516.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00523.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00524.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00515"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00515"><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><A NAME="00517" HREF="msg00517.html">[MUD-Dev] ADMIN: Kanga.Nu outage and other news -- please read</A></strong>, 
J C Lawrence <a href="mailto:claw#varesearch,com">claw#varesearch,com</a>, Wed 10 Mar 1999, 22:38 GMT
<LI><strong><A NAME="00513" HREF="msg00513.html">[MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>, 
Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Wed 10 Mar 1999, 05:33 GMT
<UL>
<LI><strong><A NAME="00514" HREF="msg00514.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>, 
Matthew D. Fuller <a href="mailto:fullermd#futuresouth,com">fullermd#futuresouth,com</a>, Wed 10 Mar 1999, 05:56 GMT
<UL>
<LI><strong><A NAME="00523" HREF="msg00523.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>, 
Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Thu 11 Mar 1999, 03:14 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00515" HREF="msg00515.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>, 
Oliver Jowett <a href="mailto:icecube#ihug,co.nz">icecube#ihug,co.nz</a>, Wed 10 Mar 1999, 06:50 GMT
<UL>
<LI><strong><A NAME="00524" HREF="msg00524.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>, 
Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Thu 11 Mar 1999, 03:19 GMT
<UL>
<LI><strong><A NAME="00527" HREF="msg00527.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>, 
Oliver Jowett <a href="mailto:icecube#ihug,co.nz">icecube#ihug,co.nz</a>, Thu 11 Mar 1999, 04:23 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
<LI><strong><A NAME="00519" HREF="msg00519.html">[MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>, 
Petri Virkkula <a href="mailto:pvirkkul#iki,fi">pvirkkul#iki,fi</a>, Thu 11 Mar 1999, 00:40 GMT
</LI>
</UL>
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00516" HREF="msg00516.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Wed 10 Mar 1999, 14:47 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>