Status update: body streaming in the smart protocol (faster pull/push).

Andrew Bennetts andrew at canonical.com
Tue Nov 6 22:51:43 GMT 2007


Hi all,

This a quick update on where the smart server streaming work is at.  I'll be
offline for a couple of weeks starting next week so I'd like everyone to know
where we are.

0.92 includes a new smart request that accepts a list of revisions to be
fetched, and returns them in a single request.  This gives a nice improvement to
performance when pulling over the smart protocol.  One large drawback to it is
that it buffers the entire response before sending it to the client, due to a
limitation in the smart protocol.

I have a branch that fixes that protocol limitation:
<http://people.ubuntu.com/~andrew/bzr/chunked-body/hpss-streaming>.  It has been
reviewed already, and I'll finish it off and merge it in the next 24 hours.

I also have a branch that improves the Container API used for encoding the
revision data to be usuable with streaming results, rather than depending on a
file with everything buffered.  This is the
<http://people.ubuntu.com/~andrew/bzr/chunked-body/streamable-containers>
branch, and it is also reviewed and will be merged shortly.

I have a final branch that depends on those two that adds a new smart request:
it's just like the one added in 0.92, but using the new protocol feature to
stream results without buffering.  This will reduce memory load on the server
and also deliver results to clients sooner.  This is basically ready to review;
I'll submit that review request shortly as well.

I also have some initial work towards the same thing for pushing over the smart
protocol.  I'll send a separate update about that.

-Andrew.




More information about the bazaar mailing list