Hi all, This is nothing new (introduced way back when in 1.6), but I have only become aware of it during my recent scalability testing. I think I can fix that but that won't happen until the end of next week or so.
Scenario: Large files have been cached and now a number of clients request these files. The critical bit here is N clients requesting say a 1GB file each. ra_serf may request 2 of these. It may be the same or different files. What happens: N x 1GB is fetched from cache, each held in some buffer and streamed out from there. Problem: How many of those GB-sized buffers can your server hold before going OOM? Solution: Fetch only chunks of a configurable size (default 16MB) from caches that support it and limit other caches (memcached) to 1 chunk max. per file. Fall back to standard reconstruction from deltas when data gets evicted from cache while some chunks have not been delivered, yet. This can be hidden behind our existing stream interface. -- Stefan^2.