[ccache] BSDiff for cache objects

Andrew Stubbs ams at codesourcery.com
Mon Nov 12 06:39:46 MST 2012


On 12/11/12 11:49, Bogdan Harjoc wrote:
> Alternatively, a "compact" operation could be run periodically, that
> compresses the cache using the same approach.

Is cache size/capacity a very big issue for you?

Have you tried the CCACHE_COMPRESS feature? That simply gzips the 
binaries in the cache. You can control the compression level with 
CCACHE_COMPRESSLEVEL.

Or how about a larger cache limit? If you don't have much disk space 
then combining that with CCACHE_HARDLINK might provide a useful saving? 
(Although compression must be disabled and your cache must be on the 
same file-system as your build.)

> My question is whether ccache's real-world use would benefit from a feature
> like this. I can put together a test that looks through people's .ccache
> and reports how many "good bsdiff candidates" there are, and what the
> savings would be.
>
> Any opinions ?

My opinion is that ccache is a space-speed tradeoff that moves the 
savings balance toward speed-savings and away from space-savings. For 
the most part, users are fine with that, indeed want that, and 
modifications that move that balance back toward space-saving aren't 
interesting.

This idea is nice, but seems like it will reduce performance on both 
cache-hit and cache-miss, like regular compression, but even more so, 
especially on cache-miss.

That said, if we can have out cake and eat it then bring it on. (It's a 
shame the hard-link feature isn't completely safe, or it would do just 
that.)

Andrew


More information about the ccache mailing list