[PATCH] support streaming clone
Vadim Gelfer
vadim.gelfer at gmail.com
Fri Jul 14 20:10:48 UTC 2006
i have written patch that does streaming clone.
instead of using pull code, server writes file data over network, and
client writes file data to disk.
this is big win for memory and cpu. let me give examples.
i have repo with 25000 files, 200MB of data. old clone takes 170
seconds on lan, uses 100% of cpu on server for entire time. peak
working set is > 21 MB.
new clone takes 18 seconds, is disk bound on server, peak working set is 5 MB.
i have other repo with one 250 MB file. old clone takes forever
because server goes bad into swap (hg process is over 2.5 GB in size).
i have to kill clone because server is stalled after more than 1 hour
and no other processes can run on server.
new clone takes 60 seconds, peak working set is 5.7 MB.
this makes big difference to scalability of server even over wan.
think about lots of clones of big repo, new code uses so little
resources it is not any longer problem. i cannot push to crew repo yet
because crew repo is locked by dead process. but i will push when
thomas unlocks.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: clone-stream.patch
Type: text/x-patch
Size: 19761 bytes
Desc: not available
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20060714/c562e456/attachment-0001.bin>
More information about the Mercurial
mailing list