export TEST_TMPDIR=/test
NUM=100000000
# some engines appear to ignore the cache_size and just grab as much RAM as they want
CACHE=34359738368
# some engines honor the cache_size, give them more.
CACHE2=137438953472
WRATE=0
STATS=1048576
DUR=600
TIME="numactl --interleave=all /usr/bin/time -v"

rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench --stats_interval=$STATS --cache_size=$CACHE --num=$NUM --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10 --benchmarks=fillseqbatch
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench --stats_interval=$STATS --cache_size=$CACHE --num=$NUM --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10 --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --duration=$DUR
du $TEST_TMPDIR
done
kill %1
rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench_basho --stats_interval=$STATS --cache_size=$CACHE2 --num=$NUM --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10 --benchmarks=fillseqbatch
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench_basho --stats_interval=$STATS --cache_size=$CACHE2 --num=$NUM --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10 --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --duration=$DUR
du $TEST_TMPDIR
done
kill %1
rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench_bdb --stats_interval=$STATS --cache_size=$CACHE2 --num=$NUM --benchmarks=fillseqbatch
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench_bdb --stats_interval=$STATS --cache_size=$CACHE2 --num=$NUM --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --duration=$DUR
du $TEST_TMPDIR
done
kill %1
rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench_hyper --stats_interval=$STATS --cache_size=$CACHE --num=$NUM --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10 --benchmarks=fillseqbatch
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench_hyper --stats_interval=$STATS --cache_size=$CACHE --num=$NUM --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10 --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --duration=$DUR
du $TEST_TMPDIR
done
kill %1
rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench_mdb --stats_interval=$STATS --num=$NUM --benchmarks=fillseqbatch --writemap=1
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench_mdb --stats_interval=$STATS --num=$NUM --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --writemap=1 --duration=$DUR
du $TEST_TMPDIR
done
kill %1
rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench_rocksdb --stats_interval=$STATS --cache_size=$CACHE --num=$NUM --write_buffer_size=268435456 --benchmarks=fillseqbatch
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench_rocksdb --stats_interval=$STATS --cache_size=$CACHE --num=$NUM --write_buffer_size=268435456 --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --duration=$DUR
du $TEST_TMPDIR
done
kill %1
$TIME ./db_bench.rocks --num_levels=6 --key_size=16 --prefix_size=16 --keys_per_prefix=0 --block_size=4096 --cache_size=$CACHE --cache_numshardbits=6 --compression_type=none --compression_ratio=1 --min_level_to_compress=-1 --disable_seek_compaction=1 --hard_rate_limit=2 --write_buffer_size=134217728 --max_write_buffer_number=2 --level0_file_num_compaction_trigger=8 --target_file_size_base=134217728 --max_bytes_for_level_base=1073741824 --sync=0 --disable_data_sync=1 --verify_checksum=1 --delete_obsolete_files_period_micros=314572800 --max_grandparent_overlap_factor=10 --max_background_compactions=4 --max_background_flushes=0 --level0_slowdown_writes_trigger=16 --level0_stop_writes_trigger=24 --statistics=0 --stats_per_interval=0 --stats_interval=1048576 --histogram=0 --use_plain_table=1 --open_files=-1 --mmap_read=1 --mmap_write=0 --memtablerep=prefix_hash --bloom_bits=10 --bloom_locality=1 --perf_level=0 --benchmarks=fillbatch        --use_existing_db=0 --num=$NUM --threads=1
du $TEST_TMPDIR
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench.rocks --num_levels=6 --key_size=16 --prefix_size=16 --keys_per_prefix=0 --block_size=4096 --cache_size=$CACHE --cache_numshardbits=6 --compression_type=none --compression_ratio=1 --min_level_to_compress=-1 --disable_seek_compaction=1 --hard_rate_limit=2 --write_buffer_size=134217728 --max_write_buffer_number=2 --level0_file_num_compaction_trigger=8 --target_file_size_base=134217728 --max_bytes_for_level_base=1073741824 --sync=0 --disable_data_sync=1 --verify_checksum=1 --delete_obsolete_files_period_micros=314572800 --max_grandparent_overlap_factor=10 --max_background_compactions=4 --max_background_flushes=0 --level0_slowdown_writes_trigger=16 --level0_stop_writes_trigger=24 --statistics=0 --stats_per_interval=0 --stats_interval=$STATS --histogram=0 --use_plain_table=1 --open_files=-1 --mmap_read=1 --mmap_write=0 --memtablerep=prefix_hash --bloom_bits=10 --bloom_locality=1 --perf_level=0 --duration=$DUR --benchmarks=readwhilewriting --use_existing_db=1 --num=$NUM --threads=$THREADS --writes_per_second=$WRATE --duration=$DUR
du $TEST_TMPDIR
done
kill %1
rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench_tokudb --stats_interval=$STATS --cache_size=$CACHE2 --num=$NUM --benchmarks=fillseqbatch
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench_tokudb --stats_interval=$STATS --cache_size=$CACHE2 --num=$NUM --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --duration=$DUR
du $TEST_TMPDIR
done
kill %1
echo "Running wiredtiger twice, once as LSM, once as Btree"
rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench_wiredtiger --stats_interval=$STATS --cache_size=$CACHE --num=$NUM --benchmarks=fillseqbatch
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench_wiredtiger --stats_interval=$STATS --cache_size=$CACHE --num=$NUM --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --duration=$DUR
du $TEST_TMPDIR
done
kill %1
echo "Running wiredtiger Btree"
rm -rf $TEST_TMPDIR/*
atop -P CPU,DSK,MEM,PRC 5 &
$TIME ./db_bench_wiredtiger --stats_interval=$STATS --cache_size=$CACHE2 --num=$NUM --use_lsm=0 --benchmarks=fillseqbatch
for THREADS in 1 2 4 8 16 32 64; do
echo THREADS=$THREADS
$TIME ./db_bench_wiredtiger --stats_interval=$STATS --cache_size=$CACHE2 --num=$NUM --use_lsm=0 --benchmarks=readwhilewriting --use_existing_db=1 --writes_per_second=$WRATE --threads=$THREADS --duration=$DUR
du $TEST_TMPDIR
done
kill %1
exit
