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
* format 7 repos are ~3x faster due to reduced I/O
* format 6 repos get faster by ~10%

* 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@1446787
on format 6, fsfs-format7@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

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'

Svnserve configuration:

  svnserve -dTr $repos -c 0 -M 1000 --client-speed 100 --foreground \
  --cache-txdeltas yes --cache-fulltexts yes --cache-revprops yes

Machine:

  Core2 Duo 2.4Ghz, 8GB RAM, Ubuntu 12.04, 64 bit, SMP
  128GB SSD built-in, ext4
  320GB USB2 HDD external, NTFS

-- Stefan^2.

-- 
Certified & Supported Apache Subversion Downloads:
*

http://www.wandisco.com/subversion/download
*

Reply via email to