Progress on multiparent bundles

Aaron Bentley aaron.bentley at utoronto.ca
Wed Jun 13 16:17:13 BST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

I've been working on multiparent bundles, and it's going well.
http://code.aaronbentley.com/bzr/bzrrepo/bzr.mpbundle/

The goals are to make bundles...
1. smaller
2. faster to generate and apply
3. robust against email whitespace munging

The tradeoffs will be:

1. maximum application speed will require that the target repository use
   the same inventory serialization format as the source repository.
2. all bundles, even one-line-fix bundles, will contain a
   human-unreadable portion.
3. revisions are stored as fulltexts, to support the existing bundle
   API.

Not yet done:
1. compress pack content
2. mime64-encode compressed content
3. include a human-readable diff
4. validate results against human-readable diff
5. validate results against Testament or similar
6. handle different inventory serialization formats
7. optimize mpdiff generation by extracting SequenceMatcher.get_blocks()
   output from knit deltas.
8. optimize mpdiff application by converting mpdiffs directly to knit
   deltas.

Generation speed with also be improved when the new graph API branch is
merged:
currently, we spend 23.71% of our time in common_ancestor and 16.93% of
our time doing a graph difference operation.  Both operations will
become much faster with the new graph API.

Bundle generation performance:
CURRENT (0.9)
$ time bzr bundle > /dev/null Using saved location: /mnt/bzr/bzrrepo/bzr.dev

real    0m13.471s
user    0m12.505s
sys     0m0.366s

NEW (multiparent/1.0alpha)
$ time ./bzr bundle > /dev/null
Using saved location: /mnt/bzr/bzrrepo/bzr.dev

real    0m3.781s
user    0m3.560s
sys     0m0.126s

Size differences:
CURRENT: 11M (bzipped 2.0M)
NEW: 223K (bzipped 35K)

Additional note: This format uses the new generic container format,
which Andrew Bennetts is developing.

Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGcAp50F+nu1YWqI0RAlSvAJ0ZFxRB0xzpM1JQuhbK0BPo+c+GDACffLEb
i6fKKyNLu7HBXJfOooK9tyU=
=xY7m
-----END PGP SIGNATURE-----



More information about the bazaar mailing list