> > 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 > > Multiple backends I assume means a shared memory backend, a disk > backend, etc?
Yep. > > 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. > > What I want to do is build in content negotiation into that as well. In > other words, you provide hostname:port/URI *and* the request headers, > and based on both you get a response back. This will allow you to cache > both an English and French representation of the same URL, or a > compressed and non-compressed representation of an URL at the same time. Interesting. I need to think about that more, because it changes the hash structure I had thought about last night, but it should be VERY cool. > > Once the handler is written and the filter can get the correct location to > > save the cached data, this module is done. > > This effectively represents the caching filter part of the design I > proposed. What is needed now is a content-generator entity that > optionally returns cached data if it exists, or DECLINED if not. The filter is an actual filter, which is what I have at least started. The content generator is the handler. I have a design for it, but no time to actually write it. I think we could have a working cache in under a week of somebody takes what I posted yesterday, and just works on it for a day or two. Ryan _______________________________________________________________________________ Ryan Bloom [EMAIL PROTECTED] 406 29th St. San Francisco, CA 94131 -------------------------------------------------------------------------------
