summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2011-03-20 21:52:45 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2011-03-20 21:53:30 -0700
commit066bf4c2e43c7fb40405843e49f809431314865d (patch)
treeb6d4c1f00603f9f9de0810b825b90a04d543a33a /builtin
parentfetch-pack: progressively use larger handshake windows (diff)
downloadtgif-066bf4c2e43c7fb40405843e49f809431314865d.tar.xz
fetch-pack: use smaller handshake window for initial request
Start the initial request small by halving the INITIAL_FLUSH (we will try to stay one window ahead of the server, so we would end up giving twice as many "have" in flight at the very beginning). We may want to tweak these values even more, taking MTU into account. Signed-off-by: Junio C Hamano <gitster@pobox.com> Acked-by: Shawn Pearce <spearce@spearce.org>
Diffstat (limited to 'builtin')
-rw-r--r--builtin/fetch-pack.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index b4f34a2cf9..3c2c9406c4 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -218,12 +218,14 @@ static void send_request(int fd, struct strbuf *buf)
safe_write(fd, buf->buf, buf->len);
}
-#define INITIAL_FLUSH 32
+#define INITIAL_FLUSH 16
#define LARGE_FLUSH 1024
static int next_flush(int count)
{
- if (count < LARGE_FLUSH)
+ if (count < INITIAL_FLUSH * 2)
+ count += INITIAL_FLUSH;
+ else if (count < LARGE_FLUSH)
count <<= 1;
else
count += LARGE_FLUSH;