faster commit with split inventory branch

Robert Collins robertc at robertcollins.net
Mon Oct 13 07:45:25 BST 2008


I've implemented logic in commit to utilise inventory delta's during
commit rather than serialising a full inventory from scratch. This is
considerably faster (changing one file):

split inventory, full serialisation, mysql-server commit:
 - real    0m5.555s
split inventory, using inventory delta to update the repository:
 - real    0m3.006s

Now, this still has a single very large dict node, and commit doesn't
use iter_changes, so there is plenty of room to improve.

Interestingly, using a pack-0.92 tree to do the same task:
 - real    0m7.783s

So even unoptimised the removal of doing line deltas seems to have
introduced performance benefits already.

The next major thing that needs doing is to use the
CHKInventory.create_by_apply_delta method to make fetch from regular
repositories faster, which will let usertest actually do a test run in
human time scales.

-Rob


-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20081013/3a534ee6/attachment.pgp 


More information about the bazaar mailing list