For the net effect of this patch. In converting mysql from 1.9 => 2a it cuts the time for the conversion approx 2:1.
The basic observation was that we spend *way* too much time graph walking during the conversion. Part of that was because we didn't pass *any* graph object down, so we didn't have any benefit of caching, etc. So for all heads() requests we paid the full api layering (translating back and forth from strings <=> tuples for all entries in the history, etc.)
Anyway, we have a very fast heads implementation, so lets use it. I put in the check:
if ... len(revision_ids) > 100:
in there, so that we don't *always* load the full history for small conversion updates. However, for anything more than that, we probably get a net win out of loading the whole ancestry and using the faster heads implementation.
I wish there was a way I could put the image inline, like I used to be able to do with Thunderbird sending requests via Bundle Buggy. (At least, people using email clients would see the image right away...)
See this graph: launchpadlibrar ian.net/ 36247556/ conversion_ times.png
http://
For the net effect of this patch. In converting mysql from 1.9 => 2a it cuts the time for the conversion approx 2:1.
The basic observation was that we spend *way* too much time graph walking during the conversion. Part of that was because we didn't pass *any* graph object down, so we didn't have any benefit of caching, etc. So for all heads() requests we paid the full api layering (translating back and forth from strings <=> tuples for all entries in the history, etc.)
Anyway, we have a very fast heads implementation, so lets use it. I put in the check:
if ... len(revision_ids) > 100:
in there, so that we don't *always* load the full history for small conversion updates. However, for anything more than that, we probably get a net win out of loading the whole ancestry and using the faster heads implementation.
I wish there was a way I could put the image inline, like I used to be able to do with Thunderbird sending requests via Bundle Buggy. (At least, people using email clients would see the image right away...)