On Sat, Feb 16, 2013 at 4:52 AM, Stefan Fuhrmann
<stefan.fuhrmann_at_wandisco.com> wrote:
> Hey all,
>
> Just to give you an update on what is going on that branch,
> here a few facts and numbers. Bottom line is that there is
> still a lot to do but the basic assumptions proved correct and
> significant benefits can already be demonstrated.
>
> * about 20% of the coding is done so far
> * some core features implemented:
> logical addressing, reorg upon pack, block read
What do you mean by pack here? Is it svnadmin pack? Is that in any
way an essential part of the performance boost? Or are your format7
repositories always packed?
> * format 7 repos are ~3x faster due to reduced I/O
> * format 6 repos get faster by ~10%
When you talk about format6 and branch6 and compare to trunk, what do
you mean? Is that just how the format6 repository, which is already
in trunk, will fare with improved caching that is in your branch?
> * format 7 performance hit by cache inefficiency;
> will be addressed by 'container' objects plus a
> change in the membuffer implementation
> * on-disk format still in the flux and will remain
> so for a while
>
> Tests were run against a local copy of the TSVN repo with
> revprop compression, directory deltification and property
> deltification enabled to bring format 6 structurally as
> close to format 7 defaults as possible.
>
> All values are given in user-time triples for trunk_at_1446787
> on format 6, fsfs-format7_at_1446862 on format 6 and format 7.
> "hot" runs mean "from OS cache"; svnserve was restarted
> before every test run.
>
> $ time svnadmin verify -M 4000 -q $repo
>
> medium trunk / branch6 / branch7
> USB cold 270.5s / 246.3s / 104.4s = 1.00 : 1.10 : 2.59
> USB hot 248.0s / 191.0s / 60.8s = 1.00 : 1.30 : 4.08
> SSD cold 66.1s / 62.0s / 59.4s = 1.00 : 1.07 : 1.11
> SSD hot 63.2s / 60.0s / 57.1s = 1.00 : 1.05 : 1.11
>
> $ time svnbench null-export svn://localhost/tsvn/trunk -q
Any reason you test with svn:// and not http://. I feel like the
latter is the most widely used server by a wide margin.
> USB cold 44.29s / 39.63s / 16.24s = 1.00 : 1.12 : 2.73
> USB hot 10.68s / 10.25s / 3.78s = 1.00 : 1.04 : 2.83
> SSD cold 5.72s / 5.00s / 3.75s = 1.00 : 1.14 : 1.53
> SSD hot 2.37s / 2.38s / 3.21s = 1.00 : 1.00 : 0.74
>
> $ time svnbench null-log svn://localhost/tsvn/trunk -v -q
>
> USB cold 54.36s / 50.17s / 8.73s = 1.00 : 1.06 : 6.11
> USB hot 43.64s / 36.46s / 3.52s = 1.00 : 1.20 :12.40
> SSD cold 9.32s / 10.60s / 3.22s = 1.00 : 0.88 : 2.89
> SSD hot 2.36s / 2.28s / 2.88s = 1.00 : 1.04 : 0.82
>
> $ time svnbench null-log svn://localhost/tsvn/trunk -v -g -q
>
> USB cold 98.02s / 87.01s / 23.74s = 1.00 : 1.13 : 4.13
> USB hot 69.88s / 57.14s / 7.88s = 1.00 : 1.22 : 8.87
> SSD cold 8.35s / 10.50s / 8.16s = 1.00 : 0.80 : 1.02
> SSD hot 5.94s / 5.72s / 6.39s = 1.00 : 1.04 : 0.93
>
> Tests have been conducted with maximum optimization:
>
> ./configure --disable-shared --disable-debug --enable-optimize \
> --without-berkeley-db -without-serf CUSERFLAGS='-march=native'
Do we have, or will we have, a document or wiki that suggest
optimization flags for packagers?
Thanks for sharing. The results look nice.
Mark Phippard
http://markphip.blogspot.com/
Received on 2013-02-16 17:47:39 CET