[MERGE] Reinstate InterRemoteToOther to improve network performance.

Andrew Bennetts andrew at canonical.com
Wed Jul 2 00:34:29 BST 2008


This patch reinstates InterRemoteToOther which was removed as part of Robert's
VersionedFiles landing.  It did two things:

 1. Use the get_data_stream_for_search RPC when pulling revisions, and
 2. Get the _real_repository from the RemoteRepository, and determine the best
    InterRepository to use, saved in self._real_inter.  Everything is then
    delegated to _real_inter. 

1 was removed intentionally, but we still need 2.  Without it, every fetch
involving a RemoteRepository falls back on GenericRepoFetcher, which fetches
revisions one at a time, which is very very slow.

So this patch reinstates 2.  This allows pushes and pulls from a remote
repository to use the best InterRepository for the underlying format, e.g.
InterPackRepo.

Suggestions for comments and tests we can add to avoid deleting this rather
important code in future are welcome :)  I thought I should send this to the
list ASAP though, as it is a fairly large performance regression.

-Andrew.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: reinstate-inter-remote-to-other-3516.patch
Type: text/x-diff
Size: 4887 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080702/65dc567a/attachment-0001.bin 


More information about the bazaar mailing list