mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-29 20:57:00 +00:00
093bf13f4e73db8eec43086abf7651217b81cec6
"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)"
#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
Languages
C++
72.6%
Python
26.1%
CMake
0.4%
GAP
0.3%
Shell
0.3%