Dumb Question: Would all this mean a total(?) rewrite of APR as well?

-- dims

On 2/14/07, Aaron Bannert <[EMAIL PROTECTED]> wrote:
On Wed, Feb 14, 2007 at 02:10:19PM -0800, Roy T. Fielding wrote:

> But do we really want to start by calling it 3.0?  How about if we
> work off of a few code names first?  Say, for example, "amsterdam".
> The reason is because there will be some overlap between ideas of
> how to do certain things, with a variety of overlapping breakage
> that can get pretty annoying if you "just want to get one part working
> first".
>
> I want people to be able to break things in one tree without blocking
> others.  And then, say once a month, we all agree on what parts are
> "finished" enough to merge into all sandbox trees.

I prefer this rather than going straight to 3.0. Would each sandbox
correspond to a single new feature prototype?


> The reason I was about to start the sandbox thing is because I've
> been thinking about moving away from the MPM design.  To be precise,
> I mean that we should get closer to the kernels on the more modern
> platforms and find a way to stay in kernel-land until a valid
> request is received (with load restrictions tested and ipfw applied
> automatically), transform the request into a waka message, and then
> dispatch that request to a process running under a userid that matches
> a prefix on the URI. That's pretty far out, though, and I wouldn't
> want it to stand in the way of any shorter term goals.

This may be too early to jump into design details, but the first thing
that I like about this abstration is a direct mapping between URI-space
and handlers. The second thing that's nice is multi-user support for
any vhost or any portion of a URL path. I don't know how we would pass
a request message containing a large body though. Also, how would this
model gracefully fall back on older syscalls for legacy systems? Would
we simply use a different kernel adapter (kind of like what we have now
with the WinNT and BeOS MPMs)? Really we need to decouple low-level I/O
(disk and network and pipes) from concurrency models (multi-process,
multi-threaded, event-driven async) and also from our protocol handlers.

-aaron



--
Davanum Srinivas :: http://wso2.org/ :: Oxygen for Web Services Developers

Reply via email to