loggerhead vs packs performance

Robert Collins robert.collins at canonical.com
Tue Oct 16 07:34:06 BST 2007


On Mon, 2007-10-15 at 11:23 +0100, Michael Hudson wrote:
> Michael Hudson wrote:
> > Robert asked me to do check loggerhead's performance when pointed at a 
> > repository using packs (I tested with was bzr.dev).
> >
> > The performance is summarized in this table (the numbers are the 
> > minimum page load time in ms reported by 'ab -n 15' on the given view):
> >...
> +---------------+---------------+---------------+---------------+---------------+
> | | changelog | inventory | annotate | revision |
> +---------------+---------------+---------------+---------------+---------------+
> | pack_cached | 472 | 690 | 138253 | 1677 |
> +---------------+---------------+---------------+---------------+---------------+
> | knit_cached | 592 | 785 | 6448 | 1684 |
> +---------------+---------------+---------------+---------------+---------------+
> | pack_nocache | 1527 | 866 | 137984 | 1867 |
> +---------------+---------------+---------------+---------------+---------------+
> | knit_nocache | 2133 | 1226 | 6931 | 1859 |
> +---------------+---------------+---------------+---------------+---------------+
> 
> So generally looking pretty good now, apart from annotate which is 
> dreadful but I guess this level of dreadfulness must be known. 
> Loggerhead does annotate in a strange way that's an optimization with 
> cached annotations but probably isn't without but the equivalent 
> annotate on the command line is still 50 seconds...

So here's the story on annotation.

Annotation is by its very nature time intensive.

We want commit on packs to be *really fast*, and commit was spending
significant time pre-calculating annotations.

So we've made annotation slower, in the current packs first-release.

A subsequent release plans to add an explicit cache for annotations,
which will be dynamically configurable. Commit will check the cache
flag, as will push and pull.

Adding data to an 'annotated' repo will then generate annotations for
everything and store it in the cache, and adding it to an 'unannotated'
repo will discard the annotations.

-Rob
-------------- 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/20071016/c9b200d4/attachment.pgp 


More information about the bazaar mailing list