[RFC] Change to use 'merge_sort' for per-file-log

Andrew Bennetts andrew at canonical.com
Fri Sep 19 05:55:31 BST 2008


John Arbash Meinel wrote:
[...]
> Also, I have one more addendum, which works around issues with
> GraphIndex.get_parent_map(lots_of_keys). Basically, by requesting keys in 1000
> key "chunks", I avoid the "buffer_all" overhead, but also avoid some of the
> extra bisection overhead (especially for smaller indexes.)

I've experimented with a similar change for a different reason: reducing HPSS
round trips.

When pushing a new branch, InterRepository._walk_to_common_revisions will tend
to call get_parent_map many times, but only a few keys each time (or even just
one).  But when get_parent_map happens via RPC calls then it's better do less
round trips, even if it means querying for more revisions than the minimum
possible.

(This only matters if InterRepository's get_parent_map calls use the
get_parent_map RPC, which isn't the case in bzr.dev yet, but I have a patch to
change that.)

So I think your change is a good idea: When repository.texts.get_parent_map is
done with RPCs (and it will be soon), I expect your change will cut down on
round trips a great deal.  So it will help "bzr log FILE" times over the
network.

-Andrew.




More information about the bazaar mailing list