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