[merge] combine read requests, and use paramiko.readv() if available

John Arbash Meinel john at arbash-meinel.com
Wed Jul 26 21:34:54 BST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

The attached sets up the default Transport.readv implementation to
combine requests into larger chunks. It also updates
SFTPTransport.readv() so that it doesn't use prefetch when performing
readv(), but can use paramiko's async readv() implementation if it is
available.

I have tested this against paramiko 1.5.2 and 1.6, and it performs quite
well. The attached graph shows that with async readv support, we are
actually faster than rsync over a remote connection. Without rsync, we
are the same speed as rsync.

If people have been following, they would have seen that bzr.dev used to
be slower than bzr-0.8. But now that bzr.dev is caching inventory.knit
again they are the same speed.

I'm very confident about the seek_and_read code, especially since I've
factored it out so that SFTPTransport.readv() won't use prefetch.
And I'm generally pleased with the _sftp_readv() code, since we can now
do async requests if paramiko supports it.

(For a full branch, this helps tremendously, for a partial pull, it
helps, just isn't as important).

This was one of the things I really wanted to get in for 0.9, so I'm
seeking +1 to merge.

John
=:->

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEx9HuJdeBCYSNAAMRAtqzAKDIvsY8Do0ejpVkEtUK98P4eIONqQCfZAY4
zaazg+9XuTx7jCAsYvVqVok=
=gDxo
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pull-390-sftp.png
Type: image/png
Size: 15597 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060726/055b0a6d/attachment.png 


More information about the bazaar mailing list