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
Add an async version of `Repository::ensure_object()` and wire it
through `SplitStreamWriter::write_external()`. Call that when we're
splitting OCI layer tarballs to offload the writing of external objects
(and the `fdatasync()` that goes with it) to a separate thread. This is
something like some prep work for something we've been trying to
accomplish for a while in #62 but it doesn't come close to the complete
picture (since it still writes the objects sequentially).
Modify the (already) async code in oci::ImageOp to download layers in
parallel. This is a big deal for images with many layers (as is often
the case for bootc images, due to the splitting heuristics). This takes
a pull of the Fedora Silverblue 42 container image (when pulled from a
local `oci-dir`) from ~90s to ~8.5s time to complete on my laptop.
Unfortunately, container images made from large single layers are not
substantially improved.
In order to make this change we need to depend on a new version of
containers-image-proxy-rs which makes ImageProxy: Send + Sync, so bump
our required version to the one released today.
Signed-off-by: Allison Karlitskaya <[email protected]>
0 commit comments