Re: squid and tcp splicing ?

From: J.Smith <lbalbalba@dont-contact.us>
Date: Wed, 10 Sep 2003 20:32:56 +0200

----- Original Message -----
From: "Henrik Nordstrom" <hno@squid-cache.org>

>
> Squid does application level splicing with multiple receivers (one or
> more clients + cache) per server connection. It does not use any
> kernel level splicing primitives.
>
Thanks for the information, I was unaware of that. Although im not so sure
that 'mapping' multiple client->proxy connections to a single
proxy->webserver connection is exactly what is meant here. If that is what
you are describing here.

>
> Lower level splicing would not make much sense in Squid as
> Squid needs access to the data itself for caching
>
Since the implementation in AIX 5.x is supposed to be a socket-level tcp
splice, couldn't the proxy just copy the data from the socket for caching
purposes ? Apart from that, aren't there people running Squid without
caching on disk in a configuration without cache or cache-in-memory-only
(not sure what Squid does when you tell it not to cache on disk) as well,
for whom it would still be beneficial ? Not everyone needs the cache, but
primairly use it for the authentication and usage statistics.

>
> and for a large portion of the traffic (headers) it needs to modify
> the content before it is forwarded.
>
Ok, point taken. But even so, once the proxy has determined :
1.) The content as being non-cacheable
2.) being an SSL connection
making the splice at that point would still gain performance.

>
> And when moving to HTTP/1.1 even less so due to the nature
> of the protocol (transfer-encoding etc).
>
The paper does indeed target HTTP/1.0 primarily, but does talk about future
work extending it to work (better) with HTTP/1.1 as well.

>
> If Squid was just a plain dumb proxy then splicing as described in
> these papers would make a better fit. Today only the CONNECT method
> is a good fit, but only of the splice primitive includes accounting
> allowing the session to be logged correctly
>
Apart from CONNECT, the paper mentions the GET method as well. Not sure what
you exactly mean by "allowing the session to be logged correctly".

>
> and works with non-blocking sockets.
>
The splice() implementation in AIX 5.x is supposed to be a kernel-based
socket-level tcp splice. Not sure about the "non-blocking" part, though.

(Note: all references here are made to the paper ""An Evaluation of TCP
Splice Benefits in Web Proxy Servers" unless otherwise stated)

Anyways, just my 2$

Sincerely,

John Smith.
Received on Wed Sep 10 2003 - 14:24:52 MDT

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:20:41 MST