Skip to content

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)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information