]> Sergey Matveev's repositories - public-inbox.git/commitdiff
git: async batch interface
authorEric Wong <e@80x24.org>
Fri, 29 Nov 2019 12:25:05 +0000 (12:25 +0000)
committerEric Wong <e@80x24.org>
Thu, 12 Dec 2019 03:51:14 +0000 (03:51 +0000)
This is a transitionary interface which does NOT require an
event loop.  It can be plugged into in current synchronous code
without major surgery.

It allows HTTP/1.1 pipelining-like functionality by taking
advantage of predictable and well-specified POSIX pipe semantics
by stuffing multiple git cat-file requests into the --batch pipe

With xt/git_async_cmp.t and GIANT_GIT_DIR=git.git, the async
interface is 10-25% faster than the synchronous interface since
it can keep the "git cat-file" process busier.

This is expected to improve performance on systems with slower
storage (but multiple cores).


No differences found