Thread (6 messages) flat view 6 messages, 3 authors, 2021-02-25

Re: [PATCH] read-cache: make the index write buffer size 128K

From: Junio C Hamano <hidden>
Date: 2021-02-20 03:29:04

Jeff Hostetler [off-list ref] writes:
On 2/17/21 9:48 PM, Neeraj K. Singh via GitGitGadget wrote:
quoted
From: Neeraj Singh <redacted>
Writing an index 8K at a time invokes the OS filesystem and caching
code
very frequently, introducing noticeable overhead while writing large
indexes. When experimenting with different write buffer sizes on Windows
writing the Windows OS repo index (260MB), most of the benefit came by
bumping the index write buffer size to 64K. I picked 128K to ensure that
we're past the knee of the curve.
With this change, the time under do_write_index for an index with 3M
files goes from ~1.02s to ~0.72s.
[...]
quoted
  -#define WRITE_BUFFER_SIZE 8192
+#define WRITE_BUFFER_SIZE (128 * 1024)
  static unsigned char write_buffer[WRITE_BUFFER_SIZE];
  static unsigned long write_buffer_len;
[...]

Very nice.
I wonder if we gain more by going say 4M buffer size or even larger?

Is this something we can make the system auto-tune itself?  This is
not about reading but writing, so we already have enough information
to estimate how much we would need to write out.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help