I've added the Simple MPM to trunk:
https://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/simple/
It isn't a fork on the previous MPMs, it is a about as clean room as it
can get, and tries to keep every part of the MPM compartmentalized. At
the same time it uses APR and APR-Util as much as possible.
One of the major departures is that it doesn't use any of the functions
from os/unixd/, which I believe is a good long term decision, since I
would like to get the MPM working on Windows.
I believe this MPM should be the default in 2.4 on Unix platforms.
It obviously isn't ready yet, but I believe it lays a good foundation on
a hybrid threading/event model that will let Apache 2.4 do more with
less resources.
What works:
- You can run httpd -X, and it creates the main event loop, registers
listener sockets, and can serve some basic http pages.
- Normal command line things like -t, -V, etc all should work as expected.
What doesn't work:
- The name. Someone suggest something better than "Simple".
- Spawning children processes.
- Keepalive has some issues.
- Timeouts. Need _lots_ of thought on how to manage a timeout system
with pools for the connection, right now its too easy to register a
timer with a baton allocated out of a pool that gets destroyed.
- Lots of things, patches welcome :-)
What is on purpose:
- SimpleProcCount and SimpleThreadCount. I hate MaxClients,
MinSpareThreads, MaxSpareThreads, ThreadsPerChild, ThreadLimit,
StartServers, StartThreads, and ServerLimit. They are all going to die
in 2.4.
Thoughts?
Thanks,
Paul
|