Hi all, I've been experimenting on net.venge.monotone.annotate with making annotate faster by keeping a DAG in the database of the revisions modifying each file. This could conceivably be used to speed up certain log operations as well (although at the moment it's just revisions which have content marks, and log would want rename or attribute changes as well.) annotate output using the new per-file-dags is not identical to the old annotate yet, so either the new one is buggy or the old one is, and either way I need to write new tests.
Some preliminary performance numbers though: ~30 minutes to 'db filedagify' my monotone db (with all n.v.monotone* branches) new db is ~89MB, old one ~87MB annotate commands.cc: ~10minutes old, ~3minutes new annotate annotate.cc: ~6minutes old, ~11 *seconds* new So for young, relatively rarely changed files this is a big big win. But for the older, frequently touched files I'm not sure what the best way to get faster is. I haven't tested to see what kind of impact it has on commits on big trees with lots of changes but I can't imagine it's that bad. But it might make initial pulls a fair bit worse, depending on how much of that 30 minute filedagify is reading and parsing rosters vs. walking them and entering the node_revision_ancestry rows. Any comments or thoughts welcome. -emile
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Monotone-devel mailing list Monotone-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/monotone-devel