-
Notifications
You must be signed in to change notification settings - Fork 18.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Resumable uploads to the registry #4872
Comments
I would propose we raise the image chunk up around say 1-3 Megabytes? Let's give the Kernel a chance to slide the window far enough that it can actually push data as fast as possible. Also if we're going this way we should likely thread the chunk pushing (3 seems small; Some browsers do 4 up to 8, we don't want to ddos ourselves or slow our selves down either) |
1-3MB would be fine, but keep in mind that with tcp/http keepalive you will keep growing tcp window size across multiple chunks. Concurrency should determined solely based on capacity, I guess server should be allowed to override it and tell clients to back down. |
Right but capacity is hard; that's where flow control gets in. |
Which app do you use for fetching images in docker? Here, we don't have problem on downloading large files using known download manager such as wget, aria2c, xdman, etc. + |
Image pulling is being fixed as part of #2461. |
@unclejack
? |
Yep, I'm still seeing this in 0.9.1. If you keep trying, it will download fine, but you chew through a bit of bandwidth trying repeatedly until it works.
|
I like the proposed solution to this problem. Seems a lot like how Bit Torrent downloads files in chunks. |
Please implement this if possible. I've got a ~660MB image that is failing around 50-100MB through the upload every time. Resumable uploads would be a huge help. |
Proposed solution seems good to me. I'd love to see this make it into Docker soon. |
+1 |
@aaronlehmann can we close this now that we have resumable upload/download? |
@runcom: We only have resumable download at present, not resumable upload. |
Right :) |
I'm having lots of problems with this - it takes me several days to complete a docker push. It would be a great fix if it was possible to just split the upload files. I have a timeout every 19 minutes. If I could split the bigger files, they could complete before the timeout. |
Has anyone made any progress on this? |
Ever since we moved to Docker as the official engine for deploying Discourse I have noticed a few support issues where the registry hangs us large transfers.
The gist of the issue is that some crazy VPNs and weird connections will terminate large image downloads mid way. This leaves them needing to transfer the entire payload a second time.
Proposed solution
Chunked upload and download.
I feel such a solution will ease adoption of Docker in areas where internet connectivity is not spectacular, and heavily reduce load on registries.
The chunked solution also allows you to easily round robin on the registry side to increase reliability. Also makes it easier to handle mirroring using CDNs using origin pull.
Thoughts?
The text was updated successfully, but these errors were encountered: