Mercurial > public > mercurial-scm > hg-stable
diff tests/test-clone-uncompressed.t @ 35767:5f5fb279fd39
streamclone: also stream caches to the client
When stream clone is used over bundle2, relevant cache files are also streamed.
This is expected to be a massive performance win for clone since no important
cache will have to be recomputed.
Some performance numbers:
(All times are wall-clock times in seconds, 2 attempts per case.)
# Mozilla-Central
## Clone over ssh over lan
V1 streaming: 234.3 239.6
V2 streaming: 248.4 243.7
## Clone over ssh over Internet
V1 streaming: 175.5 110.9
V2 streaming: 109.1 111.0
## Clone over HTTP over lan
V1 streaming: 105.3 105.6
V2 streaming: 112.7 111.4
## Clone over HTTP over internet
V1 streaming: 105.6 114.6
V2 streaming: 226.7 225.9
## Hg tags
V1 streaming (no cache): 1.084 1.071
V2 streaming (cache): 0.312 0.325
## Hg branches
V1 streaming (no cache): 14.047 14.148
V2 streaming (with cache): 0.312 0.333
# Pypy
## Clone over ssh over internet
V1 streaming: 29.4 30.1
V2 streaming: 31.2 30.1
## Clone over http over internet
V1 streaming: 29.7 29.7
V2 streaming: 75.2 72.9
(since ssh and lan are not affected, there seems to be an issue with how we
read/write the http stream on connection with latency, unrelated to the format)
## Hg tags
V1 streaming (no cache): 1.752 1.664
V2 streaming (with cache): 0.274 0.260
## Hg branches
V1 streaming (no cache): 4.469 4.728
V2 streaming (with cache): 0.318 0.321
# Private repository:
* 500K revision revisions
* 11K topological heads
* 28K branch heads
## hg tags
no cache: 1543.332
with cache: 4.900
## hg branches
no cache: 91.828
with cache: 2.955
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Thu, 18 Jan 2018 00:50:12 +0100 |
parents | 56c30b31afbe |
children | a84dbc87dae9 |
line wrap: on
line diff
--- a/tests/test-clone-uncompressed.t Wed Jan 17 17:46:49 2018 +0100 +++ b/tests/test-clone-uncompressed.t Thu Jan 18 00:50:12 2018 +0100 @@ -38,8 +38,13 @@ #if stream-bundle2 $ hg clone --stream -U http://localhost:$HGPORT clone1 streaming all changes - 1027 files to transfer, 96.3 KB of data - transferred 96.3 KB in * seconds (* */sec) (glob) + 1030 files to transfer, 96.4 KB of data + transferred 96.4 KB in * seconds (* */sec) (glob) + + $ ls -1 clone1/.hg/cache + branch2-served + rbc-names-v1 + rbc-revs-v1 #endif --uncompressed is an alias to --stream @@ -55,8 +60,8 @@ #if stream-bundle2 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed streaming all changes - 1027 files to transfer, 96.3 KB of data - transferred 96.3 KB in * seconds (* */sec) (glob) + 1030 files to transfer, 96.4 KB of data + transferred 96.4 KB in * seconds (* */sec) (glob) #endif Clone with background file closing enabled @@ -95,10 +100,11 @@ bundle2-input-bundle: with-transaction bundle2-input-part: "stream" (params: 4 mandatory) supported applying stream bundle - 1027 files to transfer, 96.3 KB of data + 1030 files to transfer, 96.4 KB of data + starting 4 threads for background file closing starting 4 threads for background file closing - transferred 96.3 KB in * seconds (* */sec) (glob) - bundle2-input-part: total payload size 110887 + transferred 96.4 KB in * seconds (* */sec) (glob) + bundle2-input-part: total payload size 112077 bundle2-input-part: "listkeys" (params: 1 mandatory) supported bundle2-input-bundle: 1 parts total checking for updated bookmarks @@ -136,8 +142,8 @@ #if stream-bundle2 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed streaming all changes - 1027 files to transfer, 96.3 KB of data - transferred 96.3 KB in * seconds (* */sec) (glob) + 1030 files to transfer, 96.4 KB of data + transferred 96.4 KB in * seconds (* */sec) (glob) #endif $ killdaemons.py @@ -253,8 +259,8 @@ #if stream-bundle2 $ hg clone --stream http://localhost:$HGPORT with-bookmarks streaming all changes - 1027 files to transfer, 96.3 KB of data - transferred 96.3 KB in * seconds (* */sec) (glob) + 1033 files to transfer, 96.6 KB of data + transferred 96.6 KB in * seconds (* */sec) (glob) updating to branch default 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved #endif @@ -283,8 +289,8 @@ #if stream-bundle2 $ hg clone --stream http://localhost:$HGPORT phase-publish streaming all changes - 1027 files to transfer, 96.3 KB of data - transferred 96.3 KB in * seconds (* */sec) (glob) + 1033 files to transfer, 96.6 KB of data + transferred 96.6 KB in * seconds (* */sec) (glob) updating to branch default 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved #endif @@ -318,8 +324,8 @@ #if stream-bundle2 $ hg clone --stream http://localhost:$HGPORT phase-no-publish streaming all changes - 1028 files to transfer, 96.4 KB of data - transferred 96.4 KB in * seconds (* */sec) (glob) + 1034 files to transfer, 96.7 KB of data + transferred 96.7 KB in * seconds (* */sec) (glob) updating to branch default 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg -R phase-no-publish phase -r 'all()'