httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Graham Leggett <minf...@sharp.fm>
Subject Re: mod_cache: store_body() bites off more than it can chew
Date Mon, 13 Sep 2010 14:34:39 GMT
On 13 Sep 2010, at 4:18 PM, Plüm, Rüdiger, VF-Group wrote:

> It is not a problem for mod_disk_cache as you say, but
> I guess he meant for 3rd party providers that could only deliver
> the cached responses via heap buckets.

The cache provider itself puts the bucket in the brigade, and has the  
power to put any bucket into the brigade it likes, including it's own  
custom developed buckets. The fact that brigades become heap buckets  
when read is a property of our bucket brigades, they aren't a  
restriction applied by the cache.

For example, in the large disk cache patch, a special bucket was  
invented that represented a file that was not be completely present,  
and that blocked waiting for more data if the in-flight cache file was  
not yet all there. There was no need to change the API to support this  
scenario, the cache just dropped the special bucket into the brigade  
and it was done.

> And unlike an handler in the same situation the cache providers
> recall_body cannot run multiple passes through the outputfilter chain
> with multiple smaller brigades.

In theory we could teach the cache to keep calling the recall_body()  
function until recall_body() returned an EOS bucket, but by supporting  
this we're going against the traditional way that bucket brigades work.

Regards,
Graham
--


Mime
View raw message