Accelerating push via bzr:// and friends

Andrew Bennetts andrew at canonical.com
Tue May 20 10:47:11 BST 2008


Hi all,

I'm currently taking a look at speeding up some network operations now that the
large smart protocol v3 work has landed.  I'm currently using
http://bazaar-vcs.org/SmartPushAnalysis1.4 as a starting point for things to
fix, but if something else looks like it needs attention then I'll happily look
at it.

Here's a couple of things I'm doing right now, because I know other some other
people are looking at similar areas and it would be good to avoid duplicating
our efforts:

 - buffering in _ProtocolThreeEncoder.  For some reason setting TCP_NODELAY
   isn't enough to avoid waiting for ACKs when doing lots of small writes.  So
   I'll make it buffer so that it does exactly one send() call for most packets
   (unless they have a streamed body).
 - investigating why get_parent_map is regularly being called after the main
   work is done, and stop doing it.

Initial tests suggest that bzr.dev has regressed a bit since 1.4!  But fixing
those two issues (especially the first) should put us ahead.

-Andrew




More information about the bazaar mailing list