git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jacob Vosmaer <jacob@gitlab.com>
To: git@vger.kernel.org
Cc: Jacob Vosmaer <jacob@gitlab.com>
Subject: [PATCH 0/1] Make upload-pack pack write size configurable
Date: Mon, 13 Dec 2021 14:23:44 +0100	[thread overview]
Message-ID: <20211213132345.26310-1-jacob@gitlab.com> (raw)

When transfering packfile data, upload-pack.c uses an 8KB buffer.
This is a reasonable size but when you transfer a lot of packfile
data, like we do on GitLab.com, we find it is beneficial to use a
larger buffer size.

Below you will find a commit where we make the size of this 8KB
buffer configurable at compile time. It appears pack-objects always
does 8KB writes so I don't think we should change the default. But
for GitLab, where we have a cache for the output of pack-objects,
it is beneficial to use a larger IO size because the cache does
64KB writes.

I have also considered converting the packfile copying code to use
stdio when writing to stdout, but that would be a bigger change
because we have to be careful not to interleave stdio and stdlib
writes. And we would have to make the stdout output buffer size
configurable, because the default stdio buffer size is 4KB which
is no better than the status quo. A final argument against the stdio
approach is that it only reduces the number of writes from upload-pack,
while a larger buffer size reduces both the number of reads and
writes.

Having said all that, if the Git maintainers prefer the stdio
approach over this compile time constant, I am happy to submit a
patch series for that instead.

Thanks,

Jacob Vosmaer

Jacob Vosmaer (1):
  upload-pack.c: make output buffer size configurable

 upload-pack.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

-- 
2.33.0


             reply	other threads:[~2021-12-13 13:24 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-13 13:23 Jacob Vosmaer [this message]
2021-12-13 13:23 ` [PATCH 1/1] upload-pack.c: make output buffer size configurable Jacob Vosmaer
2021-12-14 12:08   ` Ævar Arnfjörð Bjarmason
2021-12-14 15:08     ` Jeff King
2021-12-14 19:46       ` [PATCH v2 0/1] upload-pack.c: increase output buffer size Jacob Vosmaer
2021-12-14 19:46         ` [PATCH v2 1/1] " Jacob Vosmaer
2021-12-14 20:41           ` Ævar Arnfjörð Bjarmason
2021-12-15 16:30           ` Jeff King
2021-12-15 19:50           ` Junio C Hamano
2021-12-15 19:59             ` rsbecker
2021-12-15 20:24               ` Jacob Vosmaer
2021-12-15 20:38                 ` rsbecker
2021-12-15 20:45                   ` Jacob Vosmaer
2021-12-15 21:34                     ` rsbecker
2021-12-14 15:37   ` [PATCH 1/1] upload-pack.c: make output buffer size configurable Jeff King
2021-12-14 20:04     ` Jacob Vosmaer
2021-12-14 15:12 ` [PATCH 0/1] Make upload-pack pack write " Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211213132345.26310-1-jacob@gitlab.com \
    --to=jacob@gitlab.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).