Updates to RocksDB subcompaction benchmarking script

Summary: Set of updates to the subcompaction benchmark script which are based on our internal discussions. The intent behind the changes is to make sure that the scripts will correctly reflect how we're doing the actual benchmarking.

Test Plan: Tested by exercising the full set of compaction benchmarks and validating the execution and consistency of results.

Reviewers: MarkCallaghan, sdong, yhchiang

Reviewed By: yhchiang

Subscribers: andrewkr, dhruba

Differential Revision: https://reviews.facebook.net/D55461
main
Gunnar Kudrjavets 9 years ago
parent 1a2cc27e01
commit 697fab820a
  1. 42
      tools/benchmark.sh

@ -4,7 +4,7 @@
if [ $# -ne 1 ]; then
echo -n "./benchmark.sh [bulkload/fillseq/overwrite/filluniquerandom/"
echo "readrandom/readwhilewriting/readwhilemerging/updaterandom/"
echo "mergerandom/randomtransaction]"
echo "mergerandom/randomtransaction/compact]"
exit 0
fi
@ -117,14 +117,14 @@ params_bulkload="$const_params --max_background_compactions=16 --max_background_
# For universal compaction, these level0_* options mean total sorted of runs in
# LSM. In level-based compaction, it means number of L0 files.
#
params_level_compact="$const_params --max_background_compactions=16 \
--max_background_flushes=7 \
params_level_compact="$const_params \
--max_background_flushes=4 \
--level0_file_num_compaction_trigger=4 \
--level0_slowdown_writes_trigger=16 \
--level0_stop_writes_trigger=20"
params_univ_compact="$const_params --max_background_compactions=16 \
--max_background_flushes=7 \
params_univ_compact="$const_params \
--max_background_flushes=4 \
--level0_file_num_compaction_trigger=8 \
--level0_slowdown_writes_trigger=16 \
--level0_stop_writes_trigger=20"
@ -187,6 +187,14 @@ function run_bulkload {
eval $cmd
}
#
# Parameter description:
#
# $1 - 1 if I/O statistics should be collected.
# $2 - compaction type to use (level=0, universal=1).
# $3 - number of subcompactions.
# $4 - number of maximum background compactions.
#
function run_manual_compaction_worker {
# This runs with a vector memtable and the WAL disabled to load faster.
# It is still crash safe and the client can discover where to restart a
@ -214,6 +222,7 @@ function run_manual_compaction_worker {
--subcompactions=$3 \
--memtablerep=vector \
--disable_wal=1 \
--max_background_compactions=$4 \
--seed=$( date +%s ) \
2>&1 | tee -a $fillrandom_output_file"
@ -237,6 +246,7 @@ function run_manual_compaction_worker {
--compaction_measure_io_stats=$1 \
--compaction_style=$2 \
--subcompactions=$3 \
--max_background_compactions=$4 \
;}
2>&1 | tee -a $man_compact_output_log"
@ -254,21 +264,19 @@ function run_univ_compaction {
# Values: kCompactionStyleLevel = 0x0, kCompactionStyleUniversal = 0x1.
compaction_style=1
# Get the basic understanding about impact of scaling out the subcompactions
# by allowing the usage of { 1, 2, 4, 8, 16 } threads for different runs.
subcompactions=("1" "2" "4" "8" "16")
# Do the real work of running various experiments.
# Define a set of benchmarks.
subcompactions=(1 2 4 8 16)
max_background_compactions=(16 16 8 4 2)
# Run the compaction benchmark which is based on bulkload. It pretty much
# consists of running manual compaction with different number of subcompaction
# threads.
log_suffix=1
i=0
total=${#subcompactions[@]}
for ((i=0; i < ${#subcompactions[@]}; i++))
# Execute a set of benchmarks to cover variety of scenarios.
while [ "$i" -lt "$total" ]
do
run_manual_compaction_worker $io_stats $compaction_style ${subcompactions[$i]} $log_suffix
((log_suffix++))
run_manual_compaction_worker $io_stats $compaction_style ${subcompactions[$i]} \
${max_background_compactions[$i]}
((i++))
done
}

Loading…
Cancel
Save