Split up artifact cache and cas cache
The ArtifactCache
is specifically for artifacts, and currently has a CasCache
implementation.
This is incorrect and confusing, as the CasCache
is intended to be used for additional purposes than just the caching of artifacts.
Instead, let's split these up so that the CasCache
is a delegate object of the ArtifactCache
, and have any callers which work with a CasCache
exclusively, access it directly if it is not for the purpose of caching artifacts.
Further, we should ensure that our cache quota and LRU expiry algorithm continues to work as expected when we start caching additional things in the same cache.
See related discussion: !797 (comment 101771156)