comparison 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
comparison
equal deleted inserted replaced
35766:72fdd99eb526 35767:5f5fb279fd39
36 no changes found 36 no changes found
37 #endif 37 #endif
38 #if stream-bundle2 38 #if stream-bundle2
39 $ hg clone --stream -U http://localhost:$HGPORT clone1 39 $ hg clone --stream -U http://localhost:$HGPORT clone1
40 streaming all changes 40 streaming all changes
41 1027 files to transfer, 96.3 KB of data 41 1030 files to transfer, 96.4 KB of data
42 transferred 96.3 KB in * seconds (* */sec) (glob) 42 transferred 96.4 KB in * seconds (* */sec) (glob)
43
44 $ ls -1 clone1/.hg/cache
45 branch2-served
46 rbc-names-v1
47 rbc-revs-v1
43 #endif 48 #endif
44 49
45 --uncompressed is an alias to --stream 50 --uncompressed is an alias to --stream
46 51
47 #if stream-legacy 52 #if stream-legacy
53 no changes found 58 no changes found
54 #endif 59 #endif
55 #if stream-bundle2 60 #if stream-bundle2
56 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed 61 $ hg clone --uncompressed -U http://localhost:$HGPORT clone1-uncompressed
57 streaming all changes 62 streaming all changes
58 1027 files to transfer, 96.3 KB of data 63 1030 files to transfer, 96.4 KB of data
59 transferred 96.3 KB in * seconds (* */sec) (glob) 64 transferred 96.4 KB in * seconds (* */sec) (glob)
60 #endif 65 #endif
61 66
62 Clone with background file closing enabled 67 Clone with background file closing enabled
63 68
64 #if stream-legacy 69 #if stream-legacy
93 streaming all changes 98 streaming all changes
94 sending getbundle command 99 sending getbundle command
95 bundle2-input-bundle: with-transaction 100 bundle2-input-bundle: with-transaction
96 bundle2-input-part: "stream" (params: 4 mandatory) supported 101 bundle2-input-part: "stream" (params: 4 mandatory) supported
97 applying stream bundle 102 applying stream bundle
98 1027 files to transfer, 96.3 KB of data 103 1030 files to transfer, 96.4 KB of data
99 starting 4 threads for background file closing 104 starting 4 threads for background file closing
100 transferred 96.3 KB in * seconds (* */sec) (glob) 105 starting 4 threads for background file closing
101 bundle2-input-part: total payload size 110887 106 transferred 96.4 KB in * seconds (* */sec) (glob)
107 bundle2-input-part: total payload size 112077
102 bundle2-input-part: "listkeys" (params: 1 mandatory) supported 108 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
103 bundle2-input-bundle: 1 parts total 109 bundle2-input-bundle: 1 parts total
104 checking for updated bookmarks 110 checking for updated bookmarks
105 #endif 111 #endif
106 112
134 no changes found 140 no changes found
135 #endif 141 #endif
136 #if stream-bundle2 142 #if stream-bundle2
137 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed 143 $ hg clone --stream -U http://localhost:$HGPORT secret-allowed
138 streaming all changes 144 streaming all changes
139 1027 files to transfer, 96.3 KB of data 145 1030 files to transfer, 96.4 KB of data
140 transferred 96.3 KB in * seconds (* */sec) (glob) 146 transferred 96.4 KB in * seconds (* */sec) (glob)
141 #endif 147 #endif
142 148
143 $ killdaemons.py 149 $ killdaemons.py
144 150
145 Verify interaction between preferuncompressed and secret presence 151 Verify interaction between preferuncompressed and secret presence
251 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved 257 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved
252 #endif 258 #endif
253 #if stream-bundle2 259 #if stream-bundle2
254 $ hg clone --stream http://localhost:$HGPORT with-bookmarks 260 $ hg clone --stream http://localhost:$HGPORT with-bookmarks
255 streaming all changes 261 streaming all changes
256 1027 files to transfer, 96.3 KB of data 262 1033 files to transfer, 96.6 KB of data
257 transferred 96.3 KB in * seconds (* */sec) (glob) 263 transferred 96.6 KB in * seconds (* */sec) (glob)
258 updating to branch default 264 updating to branch default
259 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved 265 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved
260 #endif 266 #endif
261 $ hg -R with-bookmarks bookmarks 267 $ hg -R with-bookmarks bookmarks
262 some-bookmark 1:c17445101a72 268 some-bookmark 1:c17445101a72
281 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved 287 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved
282 #endif 288 #endif
283 #if stream-bundle2 289 #if stream-bundle2
284 $ hg clone --stream http://localhost:$HGPORT phase-publish 290 $ hg clone --stream http://localhost:$HGPORT phase-publish
285 streaming all changes 291 streaming all changes
286 1027 files to transfer, 96.3 KB of data 292 1033 files to transfer, 96.6 KB of data
287 transferred 96.3 KB in * seconds (* */sec) (glob) 293 transferred 96.6 KB in * seconds (* */sec) (glob)
288 updating to branch default 294 updating to branch default
289 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved 295 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved
290 #endif 296 #endif
291 $ hg -R phase-publish phase -r 'all()' 297 $ hg -R phase-publish phase -r 'all()'
292 0: public 298 0: public
316 1: public 322 1: public
317 #endif 323 #endif
318 #if stream-bundle2 324 #if stream-bundle2
319 $ hg clone --stream http://localhost:$HGPORT phase-no-publish 325 $ hg clone --stream http://localhost:$HGPORT phase-no-publish
320 streaming all changes 326 streaming all changes
321 1028 files to transfer, 96.4 KB of data 327 1034 files to transfer, 96.7 KB of data
322 transferred 96.4 KB in * seconds (* */sec) (glob) 328 transferred 96.7 KB in * seconds (* */sec) (glob)
323 updating to branch default 329 updating to branch default
324 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved 330 1025 files updated, 0 files merged, 0 files removed, 0 files unresolved
325 $ hg -R phase-no-publish phase -r 'all()' 331 $ hg -R phase-no-publish phase -r 'all()'
326 0: draft 332 0: draft
327 1: draft 333 1: draft