split inventory progress

Robert Collins robertc at robertcollins.net
Wed Nov 12 06:57:43 GMT 2008


There's a sprint going on at the moment on the splitting-inventory work.
We've passed another milestone in this - we now have a variable-height
tree for the inventory rather than a single flat document. As a
comparison, consider these repository stats:

btree(1.9):
Commits: 107
                      Raw    %    Compressed    %  Objects
Revisions:       1074 KiB   0%       266 KiB   3%      107
Inventories:    78202 KiB  49%       580 KiB   7%      107
Texts:          79439 KiB  50%      6552 KiB  88%     3025
Signatures:         0 KiB   0%         0 KiB   0%        0
Total:         158716 KiB 100%      7399 KiB 100%     3239

split-inventory:
Commits: 107
                      Raw    %    Compressed    %  Objects
Revisions:       1078 KiB   1%       269 KiB   3%      107
Inventories:      835 KiB   1%       446 KiB   6%     1243
Texts:          79439 KiB  97%      6552 KiB  90%     3025
Signatures:         0 KiB   0%         0 KiB   0%        0
Total:          81353 KiB 100%      7268 KiB 100%     4375

(This is using mysqlserver rev 58 as the data.)

Now, the exactly layout isn't finalised, and this code isn't bug-free,
but its starting to show its promise.

Commit is improved here as well:
btree(1.9):
real    0m2.828s
user    0m2.232s
sys     0m0.188s

split-inventory:
real    0m2.168s
user    0m1.764s
sys     0m0.216s

Log and other commands don't yet take advantage of the better
capabilities, but this is a work-in-progress :).

I previously mailed about saving 50% of time with split inventories;
looking at this result I think that the win there was largely
graph-index to btree-indices, the split inventory win there would be
helping but the dominating factor was better index logic.

We've created a shared branch - lp:~bzr/bzr/brisbane-core for the work
we're doing. I encourage folk interested in hacking on this to branch
it; if you want to experiment with it as a user, be warned that the disk
format is not stable: pull to pull may stop working - it's not
dogfoodable yet (but it is useful for starting to benchmark, or to get
plugins like bzr-svn working well with it).

-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/20081112/b225dff6/attachment.pgp 


More information about the bazaar mailing list