We're in the process of updating our subversion servers. Since we're still using BDB on the production servers I took the opportunity to compare it with FSFS.

First the setup:

Machine:      Sun Fire V210
OS:           Solaris 9
FS:           UFS
Subversion:   1.6.12
Apache httpd: 2.2.16
APR (-util):  the ones that came with apache httpd
Berkeley DB:  4.8.30

I created the repositories with the following commands:
FSFS: svnadmin create
BDB:  svnadmin create --fs-type bdb --bdb-txn-nosync

No changes have been made to the repos configurations (I guess that means that rep-sharing is off, right?).


Now the results:

svnadmin load
29943 revisions, mostly text files, some binaries
dump files without --deltas
FSFS: about 7 hours
BDB:  about 24 hours

repository size:
FSFS: 4.8GB
BDB:  7.8GB

For the following tests the command has been run 4 times. The first number is the time it took for the first run, the second number is the average of the other 3 runs. All accesses using file://.

svn cat 1.4MB > /dev/null
FSFS: 0.3s  0.22s
BDB:  1.5s  0.89s

svn log (6 revs)
FSFS: 0.11s 0.09s
BDB:  0.21s 0.11s

svn log (190 revs, distributed over all 29k revisions)
FSFS: 3.37s 1.01s
BDB:  7.83s 0.77s

svn diff -c 24132 (13 files 2613 lines output)
FSFS: 0.33s 0.28s
BDB:  0.77s 0.46s

I didn't bother to test commit since I guess most of the work is the same as with svnadmin load.

Conclusion:
The performance of FSFS is now a lot better than BDB, the "read length line" error is gone (http://www.szakmeister.net/fsfsverify/) and with sharded FSFS 'old' filesystems like UFS are also happy.

So if you didn't switch to FSFS yet it's time to do it now.

Thanks everyone for the good work! We love Subversion.

Martin

Reply via email to