Have finally been making some significant progress on handing of large response headers in Squid-3. After some consideration the approach taken is to simply seek over the response headers in the data stream clone the response from the store instead of parsing it again. This is similar to what Adrian did in Squid-2 for other reasons.
Some work still remains to fix up the various code paths accessing / creating objects, only tested for cache misses so far. - IMS processing - Vary - Cache hits - Error responses The change is a good step forward towards separating headers from data, but the headers is still seen in the raw data flow and not yet using any sane StoreClient API to access the headers but direct access to the StoreEntry. Pros: - In line with the long-term goal of separating headers from content. - Avoids double-parse of the headers - A lot of cruft in client_side_reply simply goes away. Cons: - Not entirely sure how ICAP and ESI fits into the reply processing. But I hope there is no problem.. The bzr branch can be found at http://www.henriknordstrom.net/bzr/squid3/hno/largeresp/ (bzr only, no online viewer installed, sorry) Regards Henrik
