On 13 Sep 2010, at 1:14 PM, Paul Fee wrote:

Retrieving bodies from the cache has a similar scalability issue.  The
CACHE_OUT filter makes a single call to the provider's recall_body(). The
entire body must be placed in a single brigade which is sent along the
filter chain with a single ap_pass_brigade() call.

This isn't a problem for the cache, as the cached content is passed as a single FILE bucket.

When an upstream filter reads from the file bucket, the bucket "morphs" into a RAM resident HEAP bucket, followed by a file bucket representing the rest of the file. As long as a filter deletes each (heap) bucket as it reads it, we don't have memory issues.

This is no different to the default handler serving a static file.

For special needs, an implementation can define it's own bucket types which behave specially when read.

Regards,
Graham
--

Reply via email to