-
Notifications
You must be signed in to change notification settings - Fork 4
Reconsider the project with standardization of OCI Distribution Spec #21
Comments
Memo: we could also put tar payload digest to |
Unfortunately my current view is that we should entirely ditch |
+1, I'm also looking into whether we can use git objects as in https://github.com/bup/bup . |
I am also in favor of finding an alternative to tar. The only issue I have with git is the use of sha-1 requires having additional hashing on top of it, complicating any distribution mechanism. I still envision being able to use the distribution protocol for distributing metadata files and content archives, I would love to discuss with both of you what you envision. Continuity obviously represents some of the initial thoughts around representing the file metadata. |
I think if you're looking for a good example of what I'd like to have, take a look at how |
packfile is not and deduplicatable |
I'm not sure about that -- packfile does store deltas of similar files (which is what that page says) but that is very different to content-defined chunking (you aren't storing deltas -- you're chunking up files and then storing the chunks) -- at least that's from what I've read. However I personally think that having a CoW tree with some sort of ZFS-style birthtime would be the best way of implementing it (though |
@cyphar any update about your blog? ^^ |
We discussed this in-person, and I'm going to give a talk about it on Friday. My blog post is still a WIP -- I will try to finish it this week but it looks like I might have to rewrite it significantly given that I've had a few months to think about the problem some more. |
@cyphar @AkihiroSuda Any updates on the topic? |
cc @ktock |
Currently, I'm working on the lazy-pulling filesystem(FUSE) based on this approach internally. I want to make it open when it is done. |
FYI: There are similar kind of discussion recently, which is aiming to achieve lazy-pull with preserving compatibility. |
An updated description of the design and implementation was given last weekend at All Systems Go. |
CRFS now works with containerd! (still requires patches) containerd/containerd#3731 |
Originally I designed FILEgrain to be agnostic to distribution protocols, because the standardization of distribution was out of the scope of OCI's mission at that time.
But the situation has changed now.
If
vnd.oci.image.layer.v1.tar
(nottar+gzip
) blobs are pushed to a Docker/OCI registry (viaTransfer-Encoding: gzip
), and the registry supports HTTP Range Requests, it is not difficult to implement deduplication and lazy-pulling in arbitrary granularity, without introducing FILEgrain.Apparently, no change is needed on the distribution spec.
However, as an optimization, we might be able to define some extension spec for fetching tar headers at once.
e.g.
cc @stevvooe @dmcgowan @tonistiigi
The text was updated successfully, but these errors were encountered: