As of r1224839, FSFS now supports directory deltification.
Please review the changes and run tests against different
repositories so that we get a better idea of what the costs
and benefits are. As soon as I'm back home, I will run tests
against the Apache and KDE repositories.

So far, I ran tests against the rather small TSVN repository.
It seems that we get 50% more capacity / 33% size savings
for 0 .. 20% CPU overhead. The savings should be more
significant on larger repositories and some of the extra
overhead should be removed by the file handle caching
code - once merged into /trunk.

In any case, we are still much faster than 1.6.
Detailed results can be found in the attached document.
"/trunk" is at r1224828 (i.e. without deltification tuning.

-- Stefan^2.
Ubuntu 11.10, 64 bit (ssd), packed repository

repository size

1.6.12               414.9MB   (100%)
trunk                414.9MB   (100%)
trunk+diff           275.9MB   ( 66%)

svnadmin load -q (4.3GB non-deltified dump file)

1.6.12               5m25.625s (156%)
trunk                3m29.225s (100%)
trunk -M1000         3m 1.455s ( 87%)
trunk+diff           4m 1.313s (115%)
trunk+diff -M1000    3m23.496s ( 97%)

svnadmin verify -q

1.6.12              68m21.244s (3877%)
trunk                1m45.786s (100%)
trunk -M1000         1m18.207s ( 74%)
trunk+diff           2m10.199s (123%)
trunk+diff -M1000    1m36.188s ( 91%)

svnserve -dT (addtional flags for trunk: -c0)
svn export svn://localhost/repo/trunk -q --ignore-externals (cold)
(85MB, 3840 items)

1.6.12                 18.223s (883%)
trunk                   2.063s (100%)
trunk -M1000            2.888s (140%)
trunk+diff              2.607s (126%)
trunk+diff -M1000       2.691s (130%)

svn export svn://localhost/repo/trunk -q --ignore-externals (hot)

1.6.12                 17.743s (841%)
trunk                   2.111s (100%)
trunk -M1000            0.901s ( 43%)
trunk+diff              2.412s (114%)
trunk+diff -M1000       0.994s ( 47%)

svn ls svn://localhost/repo/tags (cold)
(accuracy +/- 2ms)

1.6.12                    66ms (125%)
trunk                     53ms (100%)
trunk -M1000             128ms (242%)
trunk+diff                52ms ( 98%)
trunk+diff -M1000        123ms (232%)

svn ls svn://localhost/repo/tags (hot)
(accuracy +/- 2ms)

1.6.12                    66ms (140%)
trunk                     47ms (100%)
trunk -M1000              49ms (104%)
trunk+diff                45ms ( 96%)
trunk+diff -M1000         47ms (100%)


Reply via email to