[MERGE][1.4 regressions] Knit => knit fetching also slow
John Arbash Meinel
john at arbash-meinel.com
Wed Apr 16 16:07:52 BST 2008
-----BEGIN PGP SIGNED MESSAGE-----
It seems Robert fixed the GenericRepoFetcher for pack => knit or knit => pack
fetching. However, the knit <=> knit fetcher also suffers from the same
explosion of time when pulling a lot of revisions.
The attached patch uses the same fix to avoid another case where not caching the
KnitVersionedFile hurts (a lot).
This has the same property that we will still re-read the index a couple of
times (by my count probably 3 times), but at least that is better than
revision_ids_in_common*2 times (which is very close to all_history*2 times).
And there is another regression caused by signature copying. For every revision
that is copied, we check if there is a signature, and if so, we mark it for
However, RevisionStore.get_signature_text() has a guard to see if we actually
have the revision (so we will return false, even if we have a signature text,
but we don't have the revision itself installed.)
And then *after* it re-loads the revisions.kndx to see if it has the revision
file, it then *re-opens* the signatures.kndx for every revision.
That is happening at a much lower level, so I'm not sure what we should do. And
we certainly don't have a 'get_graph()' we can fall back on.
So the attached patch fixes 1 regression, but we still have a couple more. For
now I think 1.4 should be held until we make knit performance *reasonable*
again. I don't mind it being slower, but I keep running into "reload index XX
for every revision" because we got rid of transactions. And in knit=>knit I've
found 3 or 4 of them so far.
Because of that 1.4 (and bzr.dev's) performance on Knit repositories is just
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
More information about the bazaar