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

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

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Jul 19, 2016, 19:53 UTC
Message-ID
<20160719195347.GF29326@google.com>
In-Reply-To
<xmqq8twxfn4j.fsf@gitster.mtv.corp.google.com>
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.

Jonathan
Previous: Junio C HamanoNext: Junio C Hamano
Message 15 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.