Return-Path: Delivered-To: new-httpd-archive@hyperreal.org Received: (qmail 21564 invoked by uid 6000); 9 Feb 1998 04:57:59 -0000 Received: (qmail 21556 invoked from network); 9 Feb 1998 04:57:55 -0000 Received: from valis.worldgate.com (marcs@198.161.84.2) by taz.hyperreal.org with SMTP; 9 Feb 1998 04:57:55 -0000 Received: from localhost (marcs@localhost) by valis.worldgate.com (8.8.7/8.8.7) with SMTP id VAA05562 for ; Sun, 8 Feb 1998 21:57:53 -0700 (MST) Date: Sun, 8 Feb 1998 21:57:52 -0700 (MST) From: Marc Slemko To: new-httpd@apache.org Subject: Re: HTTP-NG In-Reply-To: <199802090436.XAA26283@rufus.w3.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org On Sun, 8 Feb 1998, Daniel Veillard wrote: > > >Any comments on what all will be included that could require consideration > > >for 2.0? > > > > A protocol-independent core and multithreaded abstraction and stream I/O. > > In other words, what we knew would be needed all along. > > The goal is to be able to run HTTP apps on top of HTTP-NG so we shouldn't > need absolute change in the API to have NG into Apache. Just keep a good > layered API for all the protocol stuff, avoid mixing the calls to the > network API and raw write to streams, and it should be Ok. One of the features is to allow multiplexed streams, right? Nothing useful on the w3 site on it, but it appears that is still the plan. To do this with good performance requires a lot more out of a web server than serialized requests do, even though the overall workload may be lower due to a lower number of TCP connections. Essentially, you have to fully move away from a process or thread based model and go to something like Dean's process model; at the very least, you need the ability to have a pool of threads where each request will be serviced by a thread then the association will be severed until work is needed again, at which time a different thread may pick it up. Things like async writes (ie. aio_*, completion ports) fit into this. There will be major changes in 2.0 anyway, and knowing what sorts of things HTTP-NG will be needing for best implementation is useful.