Avi Kivity 093bf13f4e Merge "SSTables: write performance" from Glauber
"This patchset fixes some small but pertinent issues with perf_sstable_index,
and then goes on to make the sstable buffer size configurable by tests.

With that in place, we can easily run a benchmark across multiple values to
figure out how the system behaves under multiple conditions.

The performance is improved by as much as 5% (smp == 8), although it not always
does so: smp == 12 yields the same for both buf sizes, but has a significant larger
error.

Available at:
    git@github.com:glommer/urchin.git   sstable-write-perf

Benchmark:
==========

run() {
    cpus=$1
    partitions=$2
    for i in 8 16 32 64 128 256; do
        printf "%3dk: " $i;
        ./build/release/tests/perf/perf_sstable_index --smp $cpus --iterations 30 --partitions $partitions --buffer_size $i;
    done
    echo -e "\n"
}

for cpus in 1 2 4 6 8 12; do
    echo "SMP $cpus, 500000 partitions"
    run
done

SMP 1, 500000 partitions
  8k: 325037.27 +- 335.47 partitions / sec (30 runs, 1 concurrent ops)
 16k: 374839.11 +- 400.24 partitions / sec (30 runs, 1 concurrent ops)
 32k: 405940.98 +- 467.75 partitions / sec (30 runs, 1 concurrent ops)
 64k: 428007.61 +- 522.59 partitions / sec (30 runs, 1 concurrent ops)
128k: 436788.19 +- 539.66 partitions / sec (30 runs, 1 concurrent ops)
256k: 442052.82 +- 656.14 partitions / sec (30 runs, 1 concurrent ops)

SMP 2, 500000 partitions
  8k: 569126.58 +- 641.92 partitions / sec (30 runs, 1 concurrent ops)
 16k: 646362.97 +- 987.67 partitions / sec (30 runs, 1 concurrent ops)
 32k: 718711.55 +- 1170.77 partitions / sec (30 runs, 1 concurrent ops)
 64k: 747707.73 +- 1464.18 partitions / sec (30 runs, 1 concurrent ops)
128k: 774929.13 +- 1540.03 partitions / sec (30 runs, 1 concurrent ops)
256k: 786300.94 +- 1552.16 partitions / sec (30 runs, 1 concurrent ops)

SMP 4, 500000 partitions
  8k: 974641.46 +- 1919.13 partitions / sec (30 runs, 1 concurrent ops)
 16k: 1086237.69 +- 2626.61 partitions / sec (30 runs, 1 concurrent ops)
 32k: 1173998.02 +- 4412.38 partitions / sec (30 runs, 1 concurrent ops)
 64k: 1254343.28 +- 5193.97 partitions / sec (30 runs, 1 concurrent ops)
128k: 1272103.63 +- 6710.27 partitions / sec (30 runs, 1 concurrent ops)
256k: 1277801.52 +- 5529.45 partitions / sec (30 runs, 1 concurrent ops)

SMP 6, 500000 partitions
  8k: 1131322.35 +- 3122.81 partitions / sec (30 runs, 1 concurrent ops)
 16k: 1284103.88 +- 4804.79 partitions / sec (30 runs, 1 concurrent ops)
 32k: 1324921.30 +- 5489.99 partitions / sec (30 runs, 1 concurrent ops)
 64k: 1401296.23 +- 5461.20 partitions / sec (30 runs, 1 concurrent ops)
128k: 1459283.89 +- 6674.87 partitions / sec (30 runs, 1 concurrent ops)
256k: 1449591.69 +- 6105.13 partitions / sec (30 runs, 1 concurrent ops)

SMP 8, 500000 partitions
  8k: 1168346.90 +- 3466.96 partitions / sec (30 runs, 1 concurrent ops)
 16k: 1288961.45 +- 3594.02 partitions / sec (30 runs, 1 concurrent ops)
 32k: 1362826.10 +- 5666.47 partitions / sec (30 runs, 1 concurrent ops)
 64k: 1412672.45 +- 4961.73 partitions / sec (30 runs, 1 concurrent ops)
128k: 1489967.90 +- 9373.07 partitions / sec (30 runs, 1 concurrent ops)
256k: 1449589.43 +- 9772.39 partitions / sec (30 runs, 1 concurrent ops)

SMP 12, 500000 partitions
  8k: 1183805.45 +- 3225.67 partitions / sec (30 runs, 1 concurrent ops)
 16k: 1295929.96 +- 9187.47 partitions / sec (30 runs, 1 concurrent ops)
 32k: 1373621.47 +- 10332.86 partitions / sec (30 runs, 1 concurrent ops)
 64k: 1436798.27 +- 12399.21 partitions / sec (30 runs, 1 concurrent ops)
128k: 1438624.45 +- 8824.31 partitions / sec (30 runs, 1 concurrent ops)
256k: 1482219.58 +- 15888.66 partitions / sec (30 runs, 1 concurrent ops)"
2015-08-26 20:52:27 +03:00
2015-08-24 11:15:41 +03:00
2015-08-25 19:16:30 -05:00
2015-01-05 14:13:31 +08:00
2015-07-19 20:48:36 +03:00
2015-08-25 15:24:49 +03:00
2015-08-18 15:48:36 +03:00
2015-07-27 10:14:02 +03:00
2015-08-25 17:07:35 +03:00
2015-08-07 09:30:53 -05:00
2015-03-05 18:11:37 +02:00
2015-05-21 15:17:34 +03:00
2015-06-24 13:09:51 +03:00
2015-07-31 16:27:55 +08:00
2015-08-25 17:07:35 +03:00
2015-08-02 16:07:42 +03:00
2015-07-30 10:56:01 +02:00
2015-08-09 00:05:33 +03:00
2015-08-19 09:15:31 +03:00
2015-08-24 09:06:13 +03:00
2015-07-31 12:58:16 +03:00
2015-04-24 18:01:01 +02:00

#Urchin

##Building Urchin

In addition to required packages by Seastar, the following packages are required by Urchin.

Submodules

Urchin uses submodules, so make sure you pull the submodules first by doing:

git submodule init
git submodule update --recursive

Building urchin on Fedora

Installing required packages:

sudo yum install yaml-cpp-devel lz4-devel zlib-devel snappy-devel jsoncpp-devel thrift-devel antlr3-tool antlr3-C++-devel libasan libubsan

Building urchin on Ubuntu 14.04

Installing required packages:

sudo apt-get install libyaml-cpp-dev liblz4-dev zlib1g-dev libsnappy-dev libjsoncpp-dev
Description
No description provided
Readme 393 MiB
Languages
C++ 72.6%
Python 26.1%
CMake 0.4%
GAP 0.3%
Shell 0.3%