git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Add support for parallel HTTP transfers

From
Daniel Barkalow <barkalow@iabervon.org>
Date
Oct 6, 2005, 20:07 UTC
Message-ID
<Pine.LNX.4.63.0510061550510.23242@iabervon.org>
In-Reply-To
<20051005214447.GF15593@reactrix.com>
On Wed, 5 Oct 2005, Nick Hengeveld wrote:
Show 5 quoted lines
> Add support for parallel HTTP transfers.  Prefetch populates a queue of
> objects to transfer and starts feeding requests to an active request
> queue for processing; fetch_object keeps the active queue moving
> while the specified object is being transferred.  The size of the active
> queue can be restricted using -r and defaults to 5 concurrent transfers.

Somewhat weirdly, the version of curl on my desktop doesn't actually have an implementation of curl_multi_info_read, although it's in the header file and documentation. So you'll want a version check somewhere, I think, which should probably just disable parallel transfers.

Show 7 quoted lines
> ---
> 
> I could use extra eyes on this patch - it seems to be stable although I have
> seen periodic cases during testing where it detects an empty server response
> (from kernel.org?)  Are there implications to downloading a (potentially large)
> pack while objects contained in that pack have been prefetched and are in the
> transfer and/or active queue?

It should be fine to download objects and a pack that contains them at the same time, although there's currently a check in fetch.c which should be removed, so that it will call fetch() for an object if the object appears between the prefetch() and the fetch().

I should be able to review this over the weekend. What sort of performance are you getting at this point (in terms of bandwidth utilization)?

	-Daniel
*This .sig left intentionally blank*
Previous: Nick HengeveldNext: Nick Hengeveld
Message 2 of 14 in “Add support for parallel HTTP transfers”
  1. Add support for parallel HTTP transfersNick Hengeveld, Oct 5, 2005
  2. Daniel BarkalowOct 6, 2005
  3. Nick HengeveldOct 7, 2005
  4. Junio C HamanoOct 7, 2005
  5. Nick HengeveldOct 7, 2005
  6. Junio C HamanoOct 7, 2005
  7. Daniel BarkalowOct 7, 2005
  8. Junio C HamanoOct 7, 2005
  9. Nick HengeveldOct 7, 2005
  10. Junio C HamanoOct 7, 2005
  11. Daniel BarkalowOct 7, 2005
  12. Jon LoeligerOct 10, 2005
  13. Daniel BarkalowOct 7, 2005
  14. Junio C HamanoOct 7, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.