[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] per file DAGs in n.v.m.annotate
From: |
Emile Snyder |
Subject: |
[Monotone-devel] per file DAGs in n.v.m.annotate |
Date: |
Mon, 30 Jan 2006 10:39:54 -0800 |
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Monotone-devel] per file DAGs in n.v.m.annotate,
Emile Snyder <=