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

Re: [PATCH v2] fetch-pack: grow stateless RPC windows exponentially

From
Jeff King <peff@peff.net>
Date
Jul 20, 2016, 13:40 UTC
Message-ID
<20160720134027.GA19194@sigill.intra.peff.net>
In-Reply-To
<20160719195347.GF29326@google.com>
On Tue, Jul 19, 2016 at 12:53:47PM -0700, Jonathan Nieder wrote:
Show 21 quoted lines
> Junio C Hamano wrote:
> 
> > Even if it is conservative, I wonder if it is truly a good idea to
> > make it exponentially grow forever from that point of view.  Would
> > it give essentially the same result to you if we discard the patch
> > in question and just raise LARGE_FLUSH to 10k instead?
> 
> I don't think it would be essentially the same result.  As discussed
> before, unlike the bidi (ssh:// and git:// protocols) case, linear
> growth is expensive in the stateless-rpc (https://) case --- each
> round of negotiation requires re-sending the existing 'have's and
> requires the peer repeatedly processing this increasingly large list
> of 'have's.
> 
> For comparison, in the bidi case, linear growth of next_flush means
> sending a bounded number of 'have's per round and is quite sensible.
> 
> In the stateless-rpc case, linear growth means getting a bounded
> number of 'have's worth of benefit (new 'have's) in each round, in
> exchange for a linearly increasing cost (existing 'have's).  That is a
> high cost for limited benefit.  Exponential growth is a better deal.

This kind of reasoning would be great in the commit message (and if possible, numbers showing empirical improvement). On reading it, I understood the "what", but not why or to what extent the slower growth is a problem.

-Peff
Previous: Junio C Hamano
Message 17 of 17 in “fetch-pack: grow stateless RPC windows exponentially”
  1. fetch-pack: grow stateless RPC windows exponentiallyJonathan Tan, Jul 18, 2016
  2. Jonathan NiederJul 18, 2016
  3. Junio C HamanoJul 18, 2016
  4. Jonathan TanJul 18, 2016
  5. Jonathan NiederJul 18, 2016
  6. Junio C HamanoJul 18, 2016
  7. Jonathan TanJul 18, 2016
  8. Junio C HamanoJul 18, 2016
  9. fetch-pack: grow stateless RPC windows exponentiallyJonathan Tan, Jul 18, 2016
  10. Jonathan NiederJul 18, 2016
  11. Stefan BellerJul 19, 2016
  12. Jonathan TanJul 19, 2016
  13. Stefan BellerJul 19, 2016
  14. Junio C HamanoJul 19, 2016
  15. Jonathan NiederJul 19, 2016
  16. Junio C HamanoJul 19, 2016
  17. Jeff KingJul 20, 2016

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.