[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Delta combiner stress test results

From: Branko Čibej <brane_at_xbc.nu>
Date: 2002-07-25 23:16:19 CEST

I ran some stress tests on the delta combiner today, using revision
2703, and comparisons whth /trunk at the same revision. Here's how I tested:

    * I used the dump file for the Subversion repository (up to revision
      2662) to create two repositories, one with the branch svn and one
      with the trunk svn. Here's what the repositories look like, after
      cleaning out the log files:

[brane@silmaril s]$ ll repo-trunk/db/
total 57921
-rw-r--r-- 1 brane None 328 Jul 25 06:06 DB_CONFIG
-rw-r--r-- 1 brane None 8192 Jul 25 06:06 __db.001
-rw-r--r-- 1 brane None 270336 Jul 25 06:06 __db.002
-rw-r--r-- 1 brane None 327680 Jul 25 06:06 __db.003
-rw-r--r-- 1 brane None 704512 Jul 25 06:06 __db.004
-rw-r--r-- 1 brane None 16384 Jul 25 06:06 __db.005
-rw-r--r-- 1 brane None 1826816 Jul 25 22:16 changes
-rw-r--r-- 1 brane None 16384 Jul 25 22:16 copies
-rw-r--r-- 1 brane None 1720320 Jul 25 22:16 nodes
-rw-r--r-- 1 brane None 2097152 Jul 25 22:16 representations
-rw-r--r-- 1 brane None 73728 Jul 25 22:16 revisions
-rw-r--r-- 1 brane None 49037312 Jul 25 22:16 strings
-rw-r--r-- 1 brane None 3211264 Jul 25 22:16 transactions
[brane@silmaril s]$ ll repo-branch/db/
total 41033
-rw-r--r-- 1 brane None 328 Jul 25 10:13 DB_CONFIG
-rw-r--r-- 1 brane None 8192 Jul 25 10:13 __db.001
-rw-r--r-- 1 brane None 270336 Jul 25 10:13 __db.002
-rw-r--r-- 1 brane None 327680 Jul 25 10:13 __db.003
-rw-r--r-- 1 brane None 704512 Jul 25 10:13 __db.004
-rw-r--r-- 1 brane None 16384 Jul 25 10:13 __db.005
-rw-r--r-- 1 brane None 1826816 Jul 25 21:46 changes
-rw-r--r-- 1 brane None 16384 Jul 25 21:46 copies
-rw-r--r-- 1 brane None 1720320 Jul 25 21:46 nodes
-rw-r--r-- 1 brane None 2088960 Jul 25 21:46 representations
-rw-r--r-- 1 brane None 73728 Jul 25 21:46 revisions
-rw-r--r-- 1 brane None 31752192 Jul 25 21:46 strings
-rw-r--r-- 1 brane None 3211264 Jul 25 21:46 transactions
    

      The branch repo is smaller, because it deltifies files regardless
      of their size. On the trunk, files larger than the delta window
      (100k) aren't deltified.

    * I created out four working copies, to cover all the possible
      combinations: trunk svn/trunk repo, trunk svn/branch repo, branch
      svn/trunk repo and branch svn/branch svn.

    * I then did the following tests in all four flavours:
      svn co -r500 # Check out an early version -- lots of
      undeltification, few files
      svn up -r2500 # Move to recent version -- less undeltification,
      many files
      svn up -r1500 # Move to older version -- more undeltification,
      less files

    * After each set of tests, I recursively compared the working copies
      (except the .svn directories). All the working copes were
      identical, _except_ that the trunk svn/branch repo combination
      corrupted files larget than 100k. I assume there's a latent bug in
      the undeltification code on /trunk that shows up when trying to
      undeltify files larger than the window size. We didn't notice it
      because there are no such files in our repositories. The branch
      sbuversion doesn't have this problem.

The timing results are in the attached table. Note that the results are
skewed, especially the "svn up" ones, because I measured ra_local. Based
on how I observed "svn" to behave over ra_dav, I estimate that working
copy handling represents a constant 60s and 6-7M of the results.

The tests show that operations on the branch repo are slightly more
expensive, because there's more undeltification going on. On the plus
side, the branch repo is 30% smaller.

Memory usage in the branch svn was much more constant than in the trunk
svn, but both versions displayed a slight but continuous increase in
working set size. We probably have a memory leak somewhere.

Conclusion: The combiner is ready to be merged on the mainline. Please
test the code in /branches/issue-531-dev on your repositories, and let
me know the results. I'd be especially interested in results from really
huge repositores, e.g., the Linux kernel archives I know some of you
have created.

If everything goes well, I'll merge the combiner onto the trunk on Monday.

-- 
Brane Čibej   <brane_at_xbc.nu>   http://www.xbc.nu/brane/

Combiner Stress Tests

trunk svn
branch svn
trunk repo
branch repo
trunk repo
branch repo
svnadmin load
(2662 revisions)
time:59:33
mem:1408k
N/A
N/A
time:1:03:52
mem:1392k
svn co -r500 time:95s
mem:18.4M
cpu: s20%,u 30%
time:93s
mem:21.3M
cpu: s20%,u 30%
time: 56s
mem: 10.5M
cpu: s 32%, u 50%
time: 56s
mem: 10.5M
cpu: s 33%, u 49%
svn up -r2500 time: 128s
mem:18.9M
cpu: s 19%,u 41%
time: 127s
mem: 21.6M
cpu: s20%,u 40%
time: 127s
mem: 13.2M
cpu: s 19%,u 42%
time: 125s
mem:14.1M
cpu: s 19%,u 42%
svn up -r1500 time:90s
mem:14.7M
cpu: s 18%,u 41%
time:93s
mem:15.1M
cpu: s 19%,u 39%
time: 79s
mem: 9.8M
cpu: s20%,u 47%
time: 83s
mem: 9.8M
cpu: s20%,u 47%

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jul 25 23:16:54 2002

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.