HttpTransport with async pipelining
Martin Pool
mbp at sourcefrog.net
Tue Aug 2 13:29:37 BST 2005
On 2 Aug 2005, John Arbash Meinel <john at arbash-meinel.com> wrote:
> Well, I showed up on my split-transport branch again, and I decided to
> try and implement some pipelining for http transport.
> Basically, what I did was to change the effbot.org library, such that
> http_client.async_http() instead of being a single object per file, it
> now was a single object per schema+host+port. And then the objects would
> build up a queue of requests. Otherwise you can't pipeline your requests
> with the same connection. The old effbot.org method of using
> http_manager actually created a new connection for each file, rather
> than re-using the same one.
>
> Anyway, with the modified versions, on my local network, instead of "bzr
> branch" taking:
> real 6m55.448s
> user 1m12.872s
> sys 0m34.342s
>
> it now takes:
> real 3m13.656s
> user 0m50.325s
> sys 0m23.665s
>
> So I cut the time down to almost half. (relative to the current bzr.dev
> tree).
Good stuff.
I'd like to see about adding a smart server over xmlrpc -- the python
xmlrpc libraries seem like they would make it pretty easy, first off for
commit because that's hardest to do well over sftp. It may be better to
send the exact xml so as to avoid issues about different forms with
different hashes.
> Also, I'm still hoping to get my changes merged into the mainline. If
> only for the SftpTransport and RsyncTransport support.
I'd love to; could you please give me a url for the branch?
--
Martin
More information about the bazaar
mailing list