[FEATURE] Fallback to `containerd` if we cannot lazy load image
turan18 opened this issue · 0 comments
Description
If we are unable to lazy load a single layer in an image we fallback to our internal unpacker that fetches and unpacks the layer to disk. Our local unpacker only operates on the current layer, unlike in containerd
where all neighboring layers are fetched concurrently. This is mostly fine, since we wouldn't want to accidentally pre-fetch neighboring layers that should be lazy loaded. However, if we know that we cannot lazy load any layers in an image, we could in theory concurrently pull all layers.
Describe the solution you'd like
If we cannot fetch SOCI artifacts for an image, we should throw some sort of error that indicates that the image (in it's entirety) cannot be lazy loaded. We can check for that error in Prepare
and if it is present we can fallback to containerd instead of attempting to locally unpack each layer.
Describe any alternative solutions/features you've considered
Have our local/internal unpacker support concurrent fetches. With this approach, we would need to maintain some state per image, that indicates whether or not an image can be lazy loaded.
Any additional context or information about the feature request
Related to: #988
No response