why `bzr pull bundle` so slow?

John Arbash Meinel john at arbash-meinel.com
Thu May 3 17:14:56 BST 2007


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

Alexander Belchenko wrote:
> Pulling bundle with big number of revisions is really slow
> even on moderately fast machine. Pulling about 100 revisions
> takes 15-20 minutes with 0.16rc2 on my laptop.
> Pulling 167 revisions (latest changes of bzr.dev)
> took about 2 hours on old Duron-750MHz.
> And most of the time bzr spends in 'Install revisions' phase
> (according to progress bar).
> 
> Bundle itself has size 4225791 bytes, and was created with
> command 'bzr bundle -r2456..2477' in bzr.dev tree.
> 
> Any ideas how to speed it up?
> 
> [µ]

Just to give a nice simple explanation....


We currently validate every revision N^2 times. So if you have 100
revisions we validate them 100*100 times.

This is because BundleInfo.revision_tree() calls _validate_revisions,
which validates *all* revisions.

And install_bundle() calls BundleInfo.revision_tree() for *every*
revision. So we end up with N^2 behavior.

I'm working on a fix.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGOgp/JdeBCYSNAAMRArvJAJ9UzE3NoryLNjvUOgPJDAJr8TOO0gCfcPTI
Nbq1vaMR27KznLS1q+RlFIM=
=LJWY
-----END PGP SIGNATURE-----



More information about the bazaar mailing list