[squid-users] squid stores multiple copies of identical ETags

Alex Rousskov rousskov at measurement-factory.com
Sun Jun 28 21:07:21 UTC 2020


On 6/28/20 2:41 PM, Tabacchiera, Stefano wrote:

>>    Squid does not know that the response headers and body have not changed.
>>    Squid could, in theory, trust the URL+Vary+ETag+etc. combination as a
>>    precise response identity, but it is a bit risky to do that by default
>>    because ETags/etc. might lie. There is currently no code implementing
>>    that optimization either.

> now I know that only URL/Vary are taken into account when storing an object.

For the record: I did not say or imply that only URL/Vary are taken into
account. Other request aspects such as request method also influence the
cache key.


> I mean: squid would store a new copy of the object while leaving the
> old copy deletion to cleanup task?

Some parts of the cleanup process may be delegated. The details depend
on the cache_dir type. I do not know or remember aufs specifics, but I
suspect that all ufs-based cache_dirs, including aufs, use lazy garbage
collection (under normal circumstances). The cache_swap_low and
cache_swap_high directives should determine what is "normal".


> I'm hesitant to to turn the store_log on, 'cause the performance impact.
> Btw, is there a specific debug_option?

FWIW, I would not try to debug this on a live/production cache,
especially if you are not used to navigating debugging cache.logs from
busy proxies. The same bug (if any) should be reproducible in lab settings.

These debugging sections may be relevant (but this is not meant as a
comprehensive list, and I do not know what exactly you need to look at):

> doc/debug-sections.txt:section 20    Memory Cache
> doc/debug-sections.txt:section 20    Storage Manager MD5 Cache Keys
> doc/debug-sections.txt:section 20    Store Controller
> doc/debug-sections.txt:section 32    Asynchronous Disk I/O
> doc/debug-sections.txt:section 43    AIOPS
> doc/debug-sections.txt:section 47    Store Directory Routines
> doc/debug-sections.txt:section 81    Store HEAP Removal Policies

Most of the AUFS/AIO code is in src/DiskIO/DiskThreads


HTH,

Alex.


More information about the squid-users mailing list