script_network usertest results on CHK branch

Andrew Bennetts andrew.bennetts at canonical.com
Mon Nov 3 21:56:28 GMT 2008


I've had a bit of a look at Robert's CHK work-in-progress, and played with
it a little to see what impact it has on network performance.

I took http://people.ubuntu.com/~robertc/baz2.0/repository/ with the latest
bzr.dev merged in, and ran the “network” usertest suite[1] on it vs. plain
bzr.dev.  The server used in the test was a bzr.dev TCP smart server on a
loopback interface with 500ms latency.  So, roughly speaking, 1s of
benchmark time is 1 round trip for the network-dominated tests.

I tried running it on a development3 (BTree + CHK) branch of bzr.dev, but
even after hacking around some shallow bugs it didn't look like completing
any time soon — after running overnight it had only copied 17M out of ~660.
Curiously, it appears that a single “bzr push” can trigger multiple
autopacks.  Here's some log file snippets:

"""
7874.600  Auto-packing repository <bzrlib.repofmt.pack_repo.RepositoryPackCollection object at 0xa25db4c>, which has 10 pack files, containing 1000 revisions into 1 packs.
19478.964  Auto-packing repository <bzrlib.repofmt.pack_repo.RepositoryPackCollection object at 0xa25db4c>, which has 11 pack files, containing 2000 revisions into 2 packs.
34205.998  Auto-packing repository <bzrlib.repofmt.pack_repo.RepositoryPackCollection object at 0xa25db4c>, which has 12 pack files, containing 3000 revisions into 3 packs.
"""

Also, here's the report on of bzr.dev vs. bzr.chk, both using the same
pack-0.92 formatted branch of bzr.dev as the data set:

"""
*** Summary Report: suite network on tree bzr-repo.tar.gz at Mon Nov  3 14:55:22 2008 (930 files) ***
=== Performance Summary (s) ===
1:min()	dev/bzr	chk/bzr	Action
0.98	49.258	50.079	script_network.InitialPushTask:init-repo
0.97	716.641	738.573	script_network.InitialPushTask:push
0.28	2.799	10.135	script_common.BranchTask:clone
0.36	1.312	3.660	script_common.AddTask:add
0.93	0.432	0.463	script_common.AddTask:status
1.32	0.438	0.331	script_common.AddTask:bzr-diff-changed
1.69	2.391	1.412	script_common.AddTask:commit
0.99	43.864	44.096	script_network.PushChangesTask:push
0.99	22.656	22.921	script_network.RefreshMirrorTask:pull
0.98	69.196	70.367	script_network.AnotherBranchTask-anotherBranch:clone
3.24	1.247	0.385	script_common.ChangeTask:status
1.01	0.299	0.297	script_common.ChangeTask:bzr-diff-changed
0.84	0.790	0.940	script_common.ChangeTask:commit
1.00	118.966	119.001	script_network.AnotherPushTask:bzrpush
0.99	67.145	67.925	script_network.AnotherBranchTask-divergedBranch:clone
1.00	57.349	57.205	script_network.AnotherPushTask-diverged:bzrpush
1.00	22.569	22.591	script_network.PushOverwriteTask:push

=== Disk Usage Summary (MB) ===
Old:New	MB	Directory
1.424	148.492	bzr-repo.tar.gz-2645/work_root_for-_home_andrew_Desktop_bzr-usertest-area_bzr.chk_bzr
1.424	148.461	bzr-repo.tar.gz-2645/work_root_for-_home_andrew_Desktop_bzr-usertest-area_bzr.dev_bzr

=== Cleaning up ===
deleting directory bzr-repo.tar.gz-2645 ...

Total time taken to benchmark source tree bzr-repo.tar.gz: 40 minutes, 47.0 seconds
"""

As you'd hope, most of the network operations haven't changed (± 1 second
is clearly just noise).  The only concerning item from a network perspective
is the InitialPushTask.  I'll take a closer look at that today.

[1] The extended one in lp:~spiv/bzr-usertest/network-suite, rather than
    the current usertest trunk.

-Andrew.




More information about the bazaar mailing list