[BuildStream] Artifactcache refactor



Hi everyone,

I've recently been working on a large refactor of the artifact cache, raised in issues 802 [1] in order to help implement a CAS based remote source cache [2], with the MR now out of WIP [3]. As this will affect future work and especially anyone who's got current MR's in this area, it's worth highlighting the changes
in here.

Firstly the modules have been shuffled around a bit, with the artifact cache
class in it's own top level module `_artifactcache`, and folder now renamed
`_cas`. This reflects the fact that the cas related modules will no longer be
artifact cache only when the source cache is implemented.

Secondly, the interface for `CASCache` and `CASRemote` has changed
significantly, with `CASRemote` incorporating the remote logic seperated out
from `CASCache` and moved into it's own module to reflect this.
Previously `CASRemote` wasn't much more than data structure for grpc stubs and
similar, with `CASCache` methods that require remote interaction having the
remote passed as an argument. To decouple these classes they both have a new API
which are used in the `ArtifactCache` class for pull and push methods.

These changes are described in more detail on the MR page [3]. Have a look if
this is relevant to current or future work.

Cheers,
Raoul

[1] https://gitlab.com/BuildStream/buildstream/issues/802
[2] https://gitlab.com/BuildStream/buildstream/issues/440
[3] https://gitlab.com/BuildStream/buildstream/merge_requests/1013



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]