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