Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2022-03-15 12:03:16 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-03-15 13:13:46 +0300
commit4c5b7a2a4fa9960381a214b057062ed3693b41ba (patch)
treedeac9194e6944b48512ed61e6dcf788e8a93cb8f /Makefile
parentd7fcf59e9183da0785b81ff07e0bcf2ca7c115f8 (diff)
Makefile: Add more patches to speed up git-fetch(1) to v2.35.1.gl1pks-git-v2.35.1.gl1-more-fetch-speedups
The rollout of Git v2.35.1.gl1 is currently blocked in production because we have discovered various repositories where broken references cause errors with the new version. So right now, the new Git version is still disabled in all deployments, also because the feature flag is default-disabled, as well. This blockade gives us a last chance to sneak in some patches for Git v2.35.1.gl1 which have landed in `next` meanwhile. Missing this chance would mean that we'd have to wait a few more releases until we can land another revision, or otherwise we'd be running with three different Git versions in production at the same time: the current Git v2.33.1.gl3, then Git v2.35.1.gl1, and finally the new version we'd be about to introduce. So let's take this chance and slightly bend the rollout process of new Git versions. Apply commits from 60aae8731c (Merge branch 'ps/fetch-mirror-optim' into next, 2022-03-08) into Git v2.35.1.gl1. These patches optimize fetches by: - Patch 1/5 starts to look up up "want" lines via the commit-graph, resulting in a 7% speedup. - Patch 2/5 avoids repeated lookups of commits that were only required when writing to FETCH_HEAD, providing a 8% speedup. - Patches 3-5/5 start to skip reading packed-refs when searching for symbolic refs in the context of a fetch. This provides a 13% speedup. All benchmarks have been performed in www-gitlab-com. Changelog: performance
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile11
1 files changed, 11 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 9ab1c0cef..eb2682994 100644
--- a/Makefile
+++ b/Makefile
@@ -684,6 +684,17 @@ ${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_PATCHES += 0032-refs-add-int
${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_PATCHES += 0033-fetch-make-atomic-flag-cover-backfilling-of-tags.patch
${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_PATCHES += 0034-fetch-make-atomic-flag-cover-pruning-of-refs.patch
+# Some more optimizations to git-fetch(1). Most importantly, these patches
+# cause us to skip reading the packed-refs file to find symbolic references,
+# which provides a 13% speedup in benchmarks. These patches have been merged
+# into `next` via 60aae8731c (Merge branch 'ps/fetch-mirror-optim' into next,
+# 2022-03-08).
+${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_PATCHES += 0035-upload-pack-look-up-want-lines-via-commit-graph.patch
+${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_PATCHES += 0036-fetch-avoid-lookup-of-commits-when-not-appending-to-.patch
+${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_PATCHES += 0037-refs-add-ability-for-backends-to-special-case-readin.patch
+${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_PATCHES += 0038-remote-read-symbolic-refs-via-refs_read_symbolic_ref.patch
+${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_PATCHES += 0039-refs-files-backend-optimize-reading-of-symbolic-refs.patch
+
${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_VERSION = v2.35.1
${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: override GIT_EXTRA_VERSION = gl1
${BUILD_DIR}/bin/gitaly-%-v2.35.1.gl1: ${DEPENDENCY_DIR}/git-v2.35.1.gl1/% | ${BUILD_DIR}/bin