<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy. --> <!--X-From-R13: Pra Uerrne <terrneNploreuvtujnl.arg> --> <!--X-Date: Wed, 10 Mar 1999 19:19:02 -0800 --> <!--X-Message-Id: 36E72EFE.8C7C010C#cyberhighway,net --> <!--X-Content-Type: text/plain --> <!--X-Reference: Pine.LNX.3.96.990310191119.559A-100000#agrajag,internal --> <!--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:greear#cyberhighway,net"> </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="msg00523.html">Previous</a> | <a href="msg00525.html">Next</a> ] Thread: [ <a href="msg00515.html">Previous</a> | <a href="msg00527.html">Next</a> ] Index: [ <A HREF="author.html#00524">Author</A> | <A HREF="#00524">Date</A> | <A HREF="thread.html#00524">Thread</A> ] <!--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>: Ben Greear <<A HREF="mailto:greear#cyberhighway,net">greear#cyberhighway,net</A>></LI> <LI><em>Date</em>: Wed, 10 Mar 1999 19:48:30 -0700</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:greear#burrito,cyberhighway.net">greear#burrito,cyberhighway.net</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> Oliver Jowett wrote: > > On Tue, 9 Mar 1999, Ben Greear wrote: > > > It looks like you'd want one program sitting on your well known > > port, accepting connections. It could be attached to the 'real' > > server via a single socket or pipe. A trivial packet encapsulation > > with a unique ID as far as the main server is concerned should > > work just fine. > > > > However, I wonder what to do when the accepting server on the > > well known port is full? One thing would be for it to quit > > listening and spawn a new process on that well known port? > > > > That works for a while, but then how do you re-use this detached > > server when it's load goes down again? > > > > 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. Sounds great, but I know of no way to implement this. Don't think you can pass descriptors around from process to process. > > - 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) I want one main program doing all the work, and potentially many small, stupid servers accepting and MUX/DEMUXing data to the main server. Thus the main server has few descriptors (just pipes/sockets) to the stupid acceptor servers. Of course, other option is to run on multiple ports and write a custom client that knows how to negotiate a handoff. > > -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> -- Ben Greear (greear#cyberhighway,net) <A HREF="http://www.primenet.com/~greear">http://www.primenet.com/~greear</A> Author of ScryMUD: mud.primenet.com 4444 (Released under GPL) <A HREF="http://www.primenet.com/~greear/ScryMUD/scry.html">http://www.primenet.com/~greear/ScryMUD/scry.html</A> _______________________________________________ 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="00527" HREF="msg00527.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></strong> <ul compact><li><em>From:</em> Oliver Jowett <icecube#ihug,co.nz></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00515" HREF="msg00515.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG> <UL><LI><EM>From:</EM> Oliver Jowett <icecube#ihug,co.nz></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00523.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00525.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00515.html">Re: [MUD-Dev] How to support 1000+ simultaneous connections, and some philosophy.</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00527.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#00524"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00524"><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="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><Possible follow-up(s)><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 <UL> <LI><strong><A NAME="00525" HREF="msg00525.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:24 GMT </LI> </UL> </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>