www-modproxy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@covalent.net
Subject Re: mod_cache and the proxy.
Date Thu, 16 Nov 2000 16:59:04 GMT

> > 1)  The cache that is in the proxy.  This is messing up the code and
> > should be removed.  The cache is done for Apache 1.3, and that is just
> > wrong for 2.0.  I plan to spend some time tomorrow afternoon to rip the
> > cache out of the code.
> 
> Effectively mod_proxy should be 100% straight through - with the request
> from Apache being forwarded as-is to the backend, and any reply being
> returned again as is into the filter chain (so that uncompressed backend
> webservers can pass through compression filters, etc etc).

Well almost, but not quite.  In order to do this, the proxy would need to
be its own protocol server, and that just isn't going to happen.  I'll
outline my design in another note.

> > 3)  mod_cache.c.  This needs to be done.  Since there are arguments
> > against putting it into CVS before it is ready, I am considering setting
> > up a CVS repository on my home machine to allow people to collaborate on
> > this cleanly.  I would ask people to give me a day to get this all
> > setup.  If somebody already has a CVS server setup for public use, and
> > they want to host this module until it gets stable, please speak up.
> 
> I've been meaning to put some more detailed effort into the design docs
> that I posted a few weeks ago, but I've been snowed under with a burning
> project and it's been taking up too much of my time. How close to the
> design is the mod_cache you have created?

It isn't close at all.  My prototype module is basically just a filter
that directs the data to the disk, and even doing that it is broken,
because it always uses the same file.  :-)  I had wrtten this to allow it
to be thrown into the existing cache code, but that cache code is very
difficult to track, so I gave up.  :-)

What still needs to be done to mod_cache.c:

The abstraction needs to be put in so that multiple cache back-ends can be
used.  This requires abstracting out:

	get_cache_location
	cache_read
	cache_write
	cache_open

Cache entries should be stored in a hash table that uses the key values:

	hostname:port/URI

The handler just checks the hash and sends the file if it is there.

Once the handler is written and the filter can get the correct location to
save the cached data, this module is done.

Ryan
_______________________________________________________________________________
Ryan Bloom                        	rbb@apache.org
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------



Mime
View raw message