Skip to content
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

[Performance] Honor "Connection: keep-alive" #29

Open
probonopd opened this issue Dec 19, 2018 · 5 comments
Open

[Performance] Honor "Connection: keep-alive" #29

probonopd opened this issue Dec 19, 2018 · 5 comments

Comments

@probonopd
Copy link
Member

Are we 100% sure that we honor "Connection: keep-alive"?

https://en.wikipedia.org/wiki/HTTP_persistent_connection

@probonopd
Copy link
Member Author

Also see https://www.oreilly.com/library/view/http-the-definitive/1565925092/ch04s05.html, especially the section about "Persistent Versus Parallel Connections". Which strategy are we using?

@TheAssassin
Copy link
Member

keep-alive doesn't have anything to do with parallel downloading. Yes, curl internally handles connection re-use, we do use that (I measured that ~ 1 year ago, and we checked the source code of our dependency on that, too).

@probonopd
Copy link
Member Author

keep-alive and parallel are, I think, mutually exclusive. If you download everything in parallel, then you can't reuse any connections. I think we need to not download in parallel, but reuse connections.

@TheAssassin
Copy link
Member

No, they're not mutually exclusive. It all depends on what you need to do. AppImageUpdate might have to download chunks from different regions. In that case, I can split up those chunks into smaller one, download those in parallel, but limit the amount of parallel connections and re-use them on further small chunks.

@probonopd
Copy link
Member Author

In any case, we should do some speed testing, using the original zsync_curl and zsync2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants