You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 12, 2018. It is now read-only.
Instead of having a single storage backend (see #616 and #643), I think it would be better to have two storage backends, one for content-addressable storage (where a given key always refers to the same content, e.g. the tarsummed layer tarballs) and one for mutable storage (e.g. the ‘latest’ tag for a given repository or registry-internal information like dependenttag tracking). For convenience, I've called the content-addressable storage “streaming storage” and the mutable storage “atomic storage”. Earlier thoughts on this issue:
Git, which has .git/objects for content-addressable data, and .git/logs and .git/refs for mutable data.
dat, which uses usesfs-blob-store for content-addressable data and LevelDB for mutable data. You can swap in an alternative content-addressable store, because fs-blob-store implements the abstract-blob-store API and passes its tests. This is the sort of “API and tests an an external module” approach that I've proposed before.
IPFS, which has a mutable IPNS layer pointing into a content-addressable IPFS layer.
I've opened this issue so we can focus discussion here without without diluting other issues. There's a lot of stuff up in the air right now, so I'm fine if this issue just sits as a placeholder until we have time to kick it around some more.
Instead of having a single storage backend (see #616 and #643), I think it would be better to have two storage backends, one for content-addressable storage (where a given key always refers to the same content, e.g. the tarsummed layer tarballs) and one for mutable storage (e.g. the ‘latest’ tag for a given repository or registry-internal information like dependent tag tracking). For convenience, I've called the content-addressable storage “streaming storage” and the mutable storage “atomic storage”. Earlier thoughts on this issue:
For similar APIs in other systems, see:
.git/objectsfor content-addressable data, and.git/logsand.git/refsfor mutable data.I've opened this issue so we can focus discussion here without without diluting other issues. There's a lot of stuff up in the air right now, so I'm fine if this issue just sits as a placeholder until we have time to kick it around some more.