[ccache] why is limit_multiple ignored?

Anders Björklund anders at ecsit.se
Tue Jan 30 17:29:05 UTC 2018


Den 2018-01-29 kl. 18:59, skrev Joel Rosdahl via ccache:
> On 29 January 2018 at 07:14, Scott Bennett <bennett at sdf.org> wrote:
> 
>> Countless data base software implementations handle these situations
>> acceptably well.
> 
> Sigh.
> 
> I see. You're talking about a completely different model than what
> ccache currently uses, which was not clear to me when I read your
> initial description. What you seem to don't understand, or choose to
> ignore, is that ccache can't stop supporting the simple server-less
> file-based model since that would drop support for two important use
> cases:
> 
> 1. Using ccache on a personal account without having access to a system
>    service and without having to start a personal server.
> 2. Using a shared cache on NFS.
> 
> (For case 1, it would be feasible with a model where the client starts a
> server on demand, unless the cache is shared.)
> 
> Why are they important? Simply because people have used ccache like that
> for many years.

We have found that use case 2 needs extending, to add a local cache
in front. Then the NFS store is only used as a "secondary cache"...

But this can be done without changing very much in ccache, and I know
I said that we would post some code for that. Will try again. :-)


> It would certainly be possible to add optional client-server backends,
> and for them I fully agree that using a centralized index is obvious,
> but that's just an entirely separate discussion as I see it.
> 
> If we would drop support for simple file-based caches, then it would no
> longer be ccache but something else. Which would be fine, but that's
> another project. (It could of course be ccache version 4, but then I
> expect that ccache version 3 would continue living its own life, so it
> would be a separate project in practice.)

We already have such an implementation, which works fine - in parallell.
We only have to complete the work of merging the dev/memcached branch ?

By starting a memcached daemon, we get the required client/server setup.
And by using "moxi", we can have that daemon talk to a "real" database.


>> Very possibly you have the requisite knowledge/experience yourself.
> 
> Actually yes, so you could have saved both your and my time by just
> asking something like "Have you considered using a client-server model,
> perhaps using a standard database, instead of a file-based cache?"
> instead of trying to educate me.
> 
>> To modify ccache to use data base software is admittedly a major
>> rewriting job, so I expect such an idea to put you off, but it's a
>> project that should ultimately yield a far superior product, IMO.
> 
> I don't disagree, but as I said, that would be another project, and I
> neither have time nor interest in that personally.

As mentioned above, it is very possible to use Couchbase for this.
It is an open source NoSQL database, from https://couchbase.com

Since ccache is talking the standard memcached protocol directly,
it doesn't even have to know that it is using a standard database!

https://www.couchbase.com/memcached

https://github.com/ccache/ccache/tree/dev/memcached

/Anders


More information about the ccache mailing list