Releasing a non-dev version of btree repo

John Arbash Meinel john at
Fri Oct 3 22:19:53 BST 2008

Hash: SHA1

I've been doing some index profiling, and I believe that releasing a
repository with the only update being BTree indexes is a significant win.

For testing, I went ahead and created an exact copy of the
repository in, which has similar latency and
bandwidth for me versus the main repository.

I have a snapshot of a repository which I then update to the latest tip.
This is going from 25544 revision to 25552, so only 8 new revisions.

'time bzr up'

time	source
1m10s	pack-0.92
0m15s	development2

or about 4.6 times faster. As another point, the size of the indexes are
9.6MB in but only 4.7MB with btree (and if we enable max
compression, it goes all the way down to 3.7MB).

At 160kB/s (my bandwidth), it takes 24s to download 3.7MB, or 61s to
download the 9.6MB of GI indexes.

This shows a few things... We are likely downloading 90% of GI indices,
because the search is sub-optimal. But we can't be downloading all of
the 4.7MB indexes because that would still be more than 15s.

I've been playing around with changing the logic to "expand" requests
(similar to how we do for GraphIndex calls.) So far, at least for 'bzr
log --short -r X..Y', it is actually better to *not* expand.

Anyway, I think BTreeIndex actually provides a significant benefit all
by itself. So there is no real reason not to release it as a supported

Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla -


More information about the bazaar mailing list