Subject: Re: [PATCH v4 03/16] index-helper: new daemon for caching index and related stuff

From: David Turner <[email-masked]>
Date: Thu, 14 Apr 2016 13:02:12 -0400

On Thu, 2016-04-14 at 09:56 -0700, Junio C Hamano wrote:
> David Turner <[email-masked]> writes:
> 
> > $GIT_DIR/index-helper.path is a symlink to the socket for the
> > daemon
> > process. The daemon reads from the socket and executes commands.
> 
> We generally avoid using symbolic links inside $GIT_DIR (we used to
> represent the current branch by a symbolic link HEAD pointing at the
> underlying ref, but switched to the textual symref long time ago,
> and we did the ".git pointing at the real repository location" to
> support submodules also in a similar way).
> 
> I wonder if we can change this to a file that records the location
> of the socket without bending over backwards too much?
> 
> > Named pipes were considered for portability reasons, but then
> > commands
> > that need replies from the daemon would have open their own pipes,
> > since a named pipe should only have one reader.  Unix domain
> > sockets
> > don't have this problem.
> > 
> > On webkit.git with index format v2, duplicating 8 times to 1.4m
> > entries and 200MB in size:
> > 
> > (vanilla)      0.986986364 s: read_index_from .git/index
> > (index-helper) 0.267850279 s: read_index_from .git/index
> > 
> > Interestingly with index v4, we get less out of index-helper. It
> > makes
> > sense as v4 requires more processing after loading the index:
> > 
> > (vanilla)      0.722496666 s: read_index_from .git/index
> > (index-helper) 0.302741500 s: read_index_from .git/index
> > 
> > (these benchmarks are from an earlier version of this patch, but
> > should
> > still be valid).
> 
> Just something to keep in mind; we'd need to see updated numbers
> when the series matures.

I don't actually know how Duy did the index duplication for this
benchmark.  Duy?