"Paul Querna" <[EMAIL PROTECTED]> wrote on  2008-9-21 4:21

Graham Leggett wrote:
I know there are likely huge problems with this, but I would like to see how far we can push the Event MPM, figure out what to do better, if there is anything, and then really dive into the 3.0 development before ApacheCon.

How difficult would this be to support in the other MPMs?

Windows, Worker MPM and the similar threaded MPMs could do it easily.

But, IMO, I want to eliminate all of the MPMs for 2.4/3.0.

I believe the MPMs as they are designed right now, are both a layer of portability, and a module that defines behavior or the model.

  ...

Basically, one MPM to rule them all, with a configuration directive that can make it act like prefork or the event MPMs.


Currently the role that MPMs play is to map a connection (with many requests, by HTTP/1.1) to a worker (a thread or process). But an optimal network i/o model needs a layer that maps a *request* to a thread, so that a worker thread (or process) will not have to be tied up entirely with a single connection during the whole life time of the connection. Instead, a worker can be scheduled to handle different connections, which helps both reducing the number of workers and the performance of request handling (especially on slow connections).

Such a layer should unify the upper interface of Event driven i/o, Windows i/o completion port, and many other async i/o mechanisms. With luck and careful design, the current filtered i/o chain and the module API can remain the same.

I hope that this would be one of the best features that 2.4+ will bring to us, as finally it will support any optimal i/o model on various platforms, and answer the doubts on Apache performance once and forever.

Bing
----
School of EE & CS,
Peking University,
Beijing 100871



Reply via email to