Here are some timings I took of my current not-yet-committed work.
First, I `svnadmin dump'ed the first 2000 revisions of a copy of the
Subversion source code repository, into a dumpfile.
Then, I `svnadmin load'ed that dumpfile into two new repositories, one
using the filesystem code as it exists in /trunk today (which has no
`changes' database in it), and one using the filesystem code as it
exists in /branches/issue-745-dev + local mods (which, of course, has
a `changed' table, is populating it).
without `changes' - 20:10.70 elapsed
with `changes' - 21:19.66 elapsed
Okay, that's good news. That means that despite the fact that every
time you modify a transaction we are now writing an additional
database row, it really isn't hurting us that much in the scheme of
things. What is that, something like a 5% speed decrease over 2000
revisions?
Next, I ran `svn log --verbose' on both of the new repositories, to
see a) if the new printing of changed paths worked, and b) how the
speeds compared. Well, I diff'd the outputs of the two runs, and
there was ONE LINE of difference -- looks like a small bug in the new
code, where something printed a 'U' instead of a 'D' for a path that
got deleted. WOW!
Now the times (are you sitting down)?
without `changes' - 5:01.21 elapsed /* ick! */
with `changes' - 0:01.87 elapsed
Oh. My. Gosh. That's under 2 seconds for 2000 revisions worth of
change paths and log messages!!! I ran the thing a few more times
just to make sure, and sure enough, under 2 seconds each time.
Just for kicks, I ran it over DAV (using localhost). Multiple runs,
between 2.8 and 3.2 seconds, for 2000 revisions, changed-paths + logs.
Wow.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Jun 28 09:07:51 2002