httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Hartill <r...@imdb.com>
Subject Re: pass off sending to select loop?
Date Mon, 05 Jan 1998 21:13:09 GMT
On Mon, 5 Jan 1998, Brian Behlendorf wrote:

> At 10:23 PM 1/4/98 -0700, Marc Slemko wrote:
> >Has anyone looked at passing off connections to a seperate process via
> >descriptor passing, then that processes multiplexes sending for however
> >many descriptors you want?
> 
> Isn't this what they tried to do in NCSA 1.4?  I seem to remember someone
> from there saying they gave up on that idea due to excessive overhead.

I don't know if Marc is suggesting the same thing but the NCSA 1.4
descriptor passing model was a bottleneck on requests. If each request
involves two separate processes then there's additional overhead there.
If one of the processes has to handle all incoming requests and farm them
out then all it is doing is reproducing the mutex/accept sequence that
currently only involves one child process per request and the kernel
to pick the next process to run.

This is how I see incoming requests on NCSA 1.4 and Apache 1.x


Apache

r1 ------- [child 1]
r2 ------- [child 2]
r3 ------- [child 3]
r4 ------- [child 4]

NCSA

r1 ---\                /--- [child 1]
r2 ----\__ [parent] __/---- [child 2]
r3 ----/              \---- [child 3]
r4 ---/                \--- [child 4]

I just don't see any reason to stick a process in there. It has to
slow things down and it also leaves you with all your eggs in one
basket - the parent process which is now doing a lot more work and
this increases the likelyhood of catastrophic failure caused by a parent
process hiccup.

Netscape developers say they tried the NCSA model (before NCSA did it)
and found it to be an unecessary bottleneck.

--
Rob Hartill                              Internet Movie Database (Ltd)
http://www.moviedatabase.com/   .. a site for sore eyes.


Mime
View raw message