lkml.org 
[lkml]   [1999]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: OSDI paper - IO-Lite: A Unified I/O Buffering and Caching System


> From: Ingo Molnar <mingo@chiara.csoma.elte.hu>
> Date: Wed, 3 Mar 1999 17:01:19 +0100 (CET)
> To: Jan Vroonhof <vroonhof@math.ethz.ch>
> Cc: Oliver Xymoron <oxymoron@waste.org>, Jim Gettys <jg@pa.dec.com>,
> linux-kernel <linux-kernel@vger.rutgers.edu>
> Subject: Re: OSDI paper - IO-Lite: A Unified I/O Buffering and Caching System
> -----
> On 3 Mar 1999, Jan Vroonhof wrote:
>
> > 1. Most of the gains come from less copying along pipes.
> > 2. [this is not clear from the paper to me] For the gains the occur
> > both sides of the pipe need use IOL.
> > 3. The gains come from copying by reference.
> > 3b. There is an additional gain from to having to recompute TCP
> > checksums.
>
> i think most gains come from the fact that IO-Lite only deals with
> 'immutable' (ie. read-only) IO buffers. Most (all) high-traffic sites have
> dynamic content ...
>

Yes, but the content is typically immutable once it has left the back
end server; the way CGI works is that a process is spawned to handle
the request (providing isolation of back end server processes that may
not be owned by the Web server, that may be from entirely different
users (think about virtual hosting).

The content is then written into a pipe, the web server reads this data,
fondles a few bytes of the beginning of the stream from that pipe (unless
the CGI is implemented to generate all the HTTP headers itself, in which
case the bytes are copied entirely unchanged, and then copies the rest
of the data unchanged to the connection to the user.

So we get:
1) copy from CGI process to kernel buffers into the pipe to the web server
2) copy from kernel buffers into the address space of the web server,
3) a few bytes at the beginning get looked at by the web server.
4) a few headers are written to the connection to the client,
5) the data from the pipe from the CGI process is written to
the kernel buffers, typically unchanged.

IO-Lite would avoid at least 2 copies of the dynamic content, plus not pollute
the data cache of the Web server with data that is not being looked at.
- Jim


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:50    [from the cache]
©2003-2011 Jasper Spaans