This repository was archived by the owner on Feb 24, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 882
[RFC][WIP] Move to a reference(distribution) based image access and related CAS store. #3071
Open
sgotti
wants to merge
10
commits into
rkt:master
Choose a base branch
from
sgotti:cas_ref_based_store
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This patch implements a new treestore to handle different needs: * Use a key/value db (boltdb) to save store data. The primary key is the store id. An additional non unique index on the image digest is created to easy getting all the treestore generated with the same starting image (needed for ACI, not needed for OCI) * Move the default treestore dir to datadir/treestore/ * Handle backward compatibility (to handle prepared/exited/garbage pods with previous version a work with the new implementation) with the previous treestore implementation and paths. * The store will in future be extended to also support other image types than ACI (like OCI images).
A distribution represents the method to fetch an image starting from an input string. Before this concept was introduced, rkt used the ImageType concept, the ImageType was mapped to the input image string format and internally covered multiple concepts like distribution, transport and image type (hidden since all are now appc ACIs). The distribution concept will be used as the primary information in the different layers of rkt (fetching but also for references in a CAS/ref store). This patch introduces the distribution concept and three kind of distributions. It just make the smallest required changes to the fetcher logic to make them work and pass the functional tests. This is the base for a future fetchers (a future patch will refactor the fetcher logic to better fit the distribution concept) and store refactors. See Documentation/devel/distribution.md for a detailed description.
Add some utility functions to interact with the casref store.
9444977
to
23313af
Compare
This was referenced Aug 20, 2016
What is the status on this? |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is i
2F89
nvalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Please see
Documentation/proposals/reference_based_image_access_and_cas_store.md
where I tried to describe the rationale behind this and the implementation details.Probably the best thing to understand it better is to build it and try how it works and the UX.
It's based on the distribution concept introduced in #2953.
I'd like to hear you thoughts on this since IMHO is a fundamental step to fix different discrepancies and add support for multiple image types. In this state, more than on the current implementation, I'm just interested on your opinion on the overall idea and effects on the UX.
Notes
Since the store remote table has gone, the code using it has been commented out waiting for the fetcher refactor in #2964 and the introduction of the transport caching. So the http transport caching is disabled.
TODOs
/cc @coreos/rkt-maintainers