Releasing a non-dev version of btree repo

John Arbash Meinel john at arbash-meinel.com
Fri Oct 3 22:19:53 BST 2008


-----BEGIN PGP SIGNED MESSAGE-----
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 bzr.dev
repository in people.ubuntu.com/~jameinel, 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 bzr.dev 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
format.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkjmjHkACgkQJdeBCYSNAAO4OwCfW2xw1wSB8v5329B3VBnrWsTp
p3IAniiosWdd5WuMvcnmnrcreS9nnJFE
=Ib66
-----END PGP SIGNATURE-----



More information about the bazaar mailing list