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

Reply via email to