You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Eric Prud'hommeaux <er...@w3.org> on 2002/08/16 23:33:50 UTC

disk caching patches now tested

This documents tests and provides a test harnes for patches given in
Messge-ID: <20...@w3.org>.

Using my good buddies patchPanel and xterm, I tested the disk caching
with regards to observing the Vary header. The attached tarball is
intended to be expanded in the directory containing httpd-2.0/.

ALL EXCITED TO PLAY:
If all goes oddly well, you should be able to
  make -f diskCache/Makefile
and go take a leak. When you come back, you should have three xterms
  proxy server
  manual server
  manual client
Anything you type into manual client will go to proxy server and be
relayed to a newly running apache proxy server running on port 9003.
The proxy server will relay its requests on to whatever is specified
in the GET and HOST lines. The sample request sends the requests on
to the manual server where you will have to provide the response.
You can GET stuff from a real server, but this gives you a bit more
control.

SPECIFIC TESTS:
You enter a forest of xterms, each with a different title. The one
labeld "connected 3 9004" should have
  connected 3 to 9004
in the top. Enter a '/' followed by the command
  cat diskCache/proxyTest-request.http 1
This will send a request to the proxy server which will relay it to
the manual server. Now you have to play the role of manual server
so you go to that window, enter a '/' and give the command
  cat diskCache/proxyTest-response.http 2
to give a response back to the proxy and client.

The proxy should create the file
  diskCache/ProxyServerRoot/proxy/4o/0q/Jx/@_IyiXLoI94OuiXg.header
which holds the headers for the request and response.

You can mark where you are in each patchPanel with
  /echo virgin cache

The proxy server should have seen

GET http://localhost:9005/doc1 HTTP/1.1
Host: localhost:9005
Header1: Value1
Header2: Value2

HTTP/1.1 200 OK
Date: Fri, 16 Aug 2002 21:12:14 GMT
Server: Apache/2.0.41-dev (Unix)
Content-Location: doc1.xhtml
Vary: Header1,Header2
Last-Modified: Mon, 05 Aug 2002 08:32:14 GMT
ETag: "4301b8-102-c6d39f80;fb6d5700"
Accept-Ranges: bytes
Cache-Control: max-age=600000
Expires: Fri, 16 Aug 2003 20:26:20 GMT
Content-Type: text/plain
Via: 1.1 127.0.0.1:9003
Content-Length: 14

line 1
line 2

Entering the same request in (quickly, before you lose your the proxy
server's attention) should result in the same reply, without touching
the manual server. Changing one of the vary fields:
  GET http://localhost:9005/doc1 HTTP/1.1
  Host: localhost:9005
  Header1: Value1
  Header2: Value2b

should result in the request going back to the manual server. Thus I
declare the vary support a success.

BORED NOW:
After you get tired of screwing around with this stuff
  make -f diskCache/Makefile kill
will kill off the proxy server and you can
  /quit
in each of the patchPanel windows.

TODO:
-There are a few code paths with conditional caching that I haven't
 looked at.

-It would be cool to retrieve the Vary headers for foo (by the current
 mechanism), compute a new hash from the request values of those
 headers, and look for a cached variant matching that request. This
 could be done only when the first cache fails the varies tests. Then
 it would only create work when would have had to fail anyways.

-Add HTTP Extensions support to the cache validity calculation. I have
 patches for this, but I'll wait 'till I've got fewer outstanding
 patches (2 currently, typedefFuncs-20020816.patch and
 diskCache-20020816.patch).

Despite these todos, I believe it is a good idea to integrate this
patches as disk caching doesn't really work now so they at least
improve the situation.
-- 
-eric

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

Re: disk caching patches now tested

Posted by Eric Prud'hommeaux <er...@w3.org>.
I have to screw at least one thing up per post.
Here are the promised attachments...
-- 
-eric

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

RE: disk caching patches now tested

Posted by Bill Stoddard <bi...@wstoddard.com>.
Eric,
If no beats me to it, I'll review and commit your patches later this
weekend.

Thanks.
Bill

> This documents tests and provides a test harnes for patches given in
> Messge-ID: <20...@w3.org>.
>
> Using my good buddies patchPanel and xterm, I tested the disk caching
> with regards to observing the Vary header. The attached tarball is
> intended to be expanded in the directory containing httpd-2.0/.
>
> ALL EXCITED TO PLAY:
> If all goes oddly well, you should be able to
>   make -f diskCache/Makefile
> and go take a leak. When you come back, you should have three xterms
>   proxy server
>   manual server
>   manual client
> Anything you type into manual client will go to proxy server and be
> relayed to a newly running apache proxy server running on port 9003.
> The proxy server will relay its requests on to whatever is specified
> in the GET and HOST lines. The sample request sends the requests on
> to the manual server where you will have to provide the response.
> You can GET stuff from a real server, but this gives you a bit more
> control.
>
> SPECIFIC TESTS:
> You enter a forest of xterms, each with a different title. The one
> labeld "connected 3 9004" should have
>   connected 3 to 9004
> in the top. Enter a '/' followed by the command
>   cat diskCache/proxyTest-request.http 1
> This will send a request to the proxy server which will relay it to
> the manual server. Now you have to play the role of manual server
> so you go to that window, enter a '/' and give the command
>   cat diskCache/proxyTest-response.http 2
> to give a response back to the proxy and client.
>
> The proxy should create the file
>   diskCache/ProxyServerRoot/proxy/4o/0q/Jx/@_IyiXLoI94OuiXg.header
> which holds the headers for the request and response.
>
> You can mark where you are in each patchPanel with
>   /echo virgin cache
>
> The proxy server should have seen
>
> GET http://localhost:9005/doc1 HTTP/1.1
> Host: localhost:9005
> Header1: Value1
> Header2: Value2
>
> HTTP/1.1 200 OK
> Date: Fri, 16 Aug 2002 21:12:14 GMT
> Server: Apache/2.0.41-dev (Unix)
> Content-Location: doc1.xhtml
> Vary: Header1,Header2
> Last-Modified: Mon, 05 Aug 2002 08:32:14 GMT
> ETag: "4301b8-102-c6d39f80;fb6d5700"
> Accept-Ranges: bytes
> Cache-Control: max-age=600000
> Expires: Fri, 16 Aug 2003 20:26:20 GMT
> Content-Type: text/plain
> Via: 1.1 127.0.0.1:9003
> Content-Length: 14
>
> line 1
> line 2
>
> Entering the same request in (quickly, before you lose your the proxy
> server's attention) should result in the same reply, without touching
> the manual server. Changing one of the vary fields:
>   GET http://localhost:9005/doc1 HTTP/1.1
>   Host: localhost:9005
>   Header1: Value1
>   Header2: Value2b
>
> should result in the request going back to the manual server. Thus I
> declare the vary support a success.
>
> BORED NOW:
> After you get tired of screwing around with this stuff
>   make -f diskCache/Makefile kill
> will kill off the proxy server and you can
>   /quit
> in each of the patchPanel windows.
>
> TODO:
> -There are a few code paths with conditional caching that I haven't
>  looked at.
>
> -It would be cool to retrieve the Vary headers for foo (by the current
>  mechanism), compute a new hash from the request values of those
>  headers, and look for a cached variant matching that request. This
>  could be done only when the first cache fails the varies tests. Then
>  it would only create work when would have had to fail anyways.
>
> -Add HTTP Extensions support to the cache validity calculation. I have
>  patches for this, but I'll wait 'till I've got fewer outstanding
>  patches (2 currently, typedefFuncs-20020816.patch and
>  diskCache-20020816.patch).
>
> Despite these todos, I believe it is a good idea to integrate this
> patches as disk caching doesn't really work now so they at least
> improve the situation.
> --
> -eric
>
> (eric@w3.org)
> Feel free to forward this message to any list for any purpose other than
> email address distribution.
>