Return-Path: owner-new-httpd Received: by taz.hyperreal.com (8.6.10/8.6.5) id OAA09864; Sun, 23 Apr 1995 14:23:48 -0700 Received: from life.ai.mit.edu by taz.hyperreal.com (8.6.10/8.6.5) with SMTP id OAA09857; Sun, 23 Apr 1995 14:23:45 -0700 Received: from volterra (volterra.ai.mit.edu) by life.ai.mit.edu (4.1/AI-4.10) for new-httpd@hyperreal.com id AA06669; Sun, 23 Apr 95 17:23:45 EDT From: rst@ai.mit.edu (Robert S. Thau) Received: by volterra (4.1/AI-4.10) id AA05324; Sun, 23 Apr 95 17:23:43 EDT Date: Sun, 23 Apr 95 17:23:43 EDT Message-Id: <9504232123.AA05324@volterra> To: new-httpd@hyperreal.com Subject: Re: fork free Sender: owner-new-httpd@apache.org Precedence: bulk Reply-To: new-httpd@apache.org I agree with this analysis for the moment. The only thing that gives me pause about it is that it may not be adequate for HTTP/1.1 (specifically, for persistent connections). The most straightforward way to implement these HTTP/1.1 keep-alives would be to allocate one member of the server pool to each client for the duration of its connection --- but this does mean that each client will be locking up a whole server process for a nontrivial amount of time (perhaps more than a minute for retrievals of pages with a *lot* of inlines --- latex2html output with gif-ized math, and Ellen Spertus' non-profit orgs page with 60-odd logos, both come to mind from around here). On the other hand, allocating a separate process for each such long-lived connection might not be easy on swap space. What would be best, if we can manage it, would be to somehow distribute the individual requests coming in from a kept-alive connection around the server pool... but that won't be easy (at least, not without creating an NCSA-1.4-style bottleneck distributor process). rst