04 Jul 2008

Well, the gauntlet is down (BTW – desktop power integration. Cool!). The use case Ted talks about is actually quite interesting – we were at UDS last month, waiting on a SVN server that was apparently so slow we could have walked to it and copied stuff onto harddisk more quickly. (Really. No kidding). bzr was idling and blocked on network IO the whole time… kudos for the plugin Ted!

For my response, may I present a new index format, (branch url) 70% smaller than bzr’s current default, equally fast at most workloads, up to 20 times faster at others. I started this this week, and John jumped in in overlapping time periods, but I think it counts!

Note that the perfromance wins are a component improvement – other things we haven’t addressed yet can make the index improvements less visible. But several early adopters have told me that they see a 25-30% reduction in ‘time bzr log > /dev/null’ or other commands.

To install:

bzr branch http://bazaar.launchpad.net/~lifeless/+junk/bzr-index2 ~/.bazaar/plugins/index2

bzr branch https://bazaar.launchpad.net/~jameinel/+junk/pybloom ~/.bazaar/plugins/pybloom

To use:

cd <repository you want to experiment on>

bzr upgrade –btree-plain

(or –btree-rich-root for bzr-svn users).

A version of this will be going to trunk soon, and it will be able to upgrade from any repository that you have that uses the plugin as long as you keep the plugin installed.