httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dean gaudet <>
Subject Re: Moving things around
Date Tue, 09 May 2000 07:02:20 GMT
On Sat, 6 May 2000, Greg Stein wrote:

> If I choose the prefork MPM, then APR should *not* have its threads
> disabled. I might have a module that spins up a thread to do some work.
> Note that some of our I/O filtering designs will spin up a thread.

no.  this is wrong.

it is in nobody's best interest to support every possible permutation of
threads and processes and fibers and whathaveyous in the same
executable/dll/so/shared-memory-space.  this violates code modularity so
grossly i'm not even sure where to begin to explain.

we do *not* want to encourage people to build complex server software
which is multiprocess but might use a thread here and there.  do you
realise how hard this would be to debug?  let alone link?

a 500 process prefork server with an extra thread per process "because APR
lets me do it" consumes 1000 kernel-schedulable-objects.

if you choose prefork MPM then you are choosing an APR that does not
support threads, and none of your modules can use threads.

if that's a problem, then maybe you need to split up your service into
multithreaded portions and multiprocess portions, and use proxy technology
to tie them together.

the few percentage points in performance you lose from making a
multi-service solution such as this will be more than worth it when it
comes time to debug and scale the system.


View raw message