monotone-devel
[Top][All Lists]
Advanced

[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

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]