Skip to content
Snippets Groups Projects
Commit d57d1606049c authored by Pierre-Yves David's avatar Pierre-Yves David :octopus:
Browse files

clone: properly exclude rev-branch-cache from post clone cache warming

When adding "CACHE_REV_BRANCH" to "CACHES_ALL" in e51161b12c7e, I did not
expected it to impact the clone steps. However the "CACHES_POST_CLONE" set is
created rather creatively. (we should fix that, but not on stable)

The benchmark caught a quite significant slowdown one hardlink and ssh-stream
clones. Such slow down can be reduced to around ~5% by fully warming the cache
before the clone. However keeping this expensive step away from the clone
operation fully fix the slowdown and preserve the initial intend.


Example slowdow for hardlink clone

### benchmark.name                               = hg.command.clone
  # bin-env-vars.hg.flavor                       = default
  # bin-env-vars.hg.py-re2-module                = default
  # benchmark.variants.explicit-rev              = none
  # benchmark.variants.issue6528                 = default
  # benchmark.variants.protocol                  = local-hardlink
  # benchmark.variants.pulled-delta-reuse-policy = default
  # benchmark.variants.resource-usage            = default
  # benchmark.variants.validate                  = default
 ## data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog
6.8.2:  19.799752
6.9rc0: 29.017493  (+46.55%, +9.22)
after:  19.929341

 ## data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog
6.8.2:  0.468020
6.9rc0: 1.701294 (+263.51%, +1.23)
after:  0.471934

 ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog
6.8.2:  2.397564
6.9rc0: 5.666641 (+137.41%, +3.28)
after:  2.428085
parent 4b9cf9924cd7
No related branches found
No related tags found
3 merge requests!1083Merge stable into default,!1078fix the pycompat Rust jobs,!1076clone: properly exclude rev-branch-cache from post clone cache warming
Pipeline #92338 canceled
......@@ -95,6 +95,7 @@
# (this is a mutable set to let extension update it)
CACHES_POST_CLONE = CACHES_ALL.copy()
CACHES_POST_CLONE.discard(CACHE_FILE_NODE_TAGS)
CACHES_POST_CLONE.discard(CACHE_REV_BRANCH)
class ipeerconnection(interfaceutil.Interface):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment