export TEST_TMPDIR=/mnt
NUM=400000000
VSIZE=384
# some engines appear to ignore the cache_size and just grab as much RAM as they want
CACHE=17179869184
# some engines honor the cache_size, give them more.
CACHE2=17179869184
# 3/4 of the base cache size. tokudb always dies at full size.
CACHE3=12884901888
WRATE=0
STATS=200000
DUR=1200
THR="1 2 4 8 16 32 64"
TIME="numactl -i all /usr/bin/time -f Usr\tSys\t%%\tWall\tRSS\tMajor\tMinor\tVolun\tInvol\tIn\tOut\n%U\t%S\t%P\t%E\t%M\t%F\t%R\t%w\t%c\t%I\t%O"

ENGINES=""
ENGINES="$ENGINES LevelDB"
LevelDB_cmd="./db_bench"
LevelDB_arg="--cache_size=$CACHE --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10"
ENGINES="$ENGINES Basho"
Basho_cmd="./db_bench_basho"
Basho_arg="--cache_size=$CACHE2 --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10"
ENGINES="$ENGINES BDB"
BDB_cmd="./db_bench_bdb"
BDB_arg="--cache_size=$CACHE2"
ENGINES="$ENGINES Hyper"
Hyper_cmd="./db_bench_hyper"
Hyper_arg="--cache_size=$CACHE --write_buffer_size=268435456 --open_files=500000 --bloom_bits=10"
ENGINES="$ENGINES LMDB"
LMDB_cmd="./db_bench_mdb"
LMDB_arg="--readahead=0"
ENGINES="$ENGINES RocksDB"
RocksDB_cmd="./db_bench_rocksdb"
RocksDB_arg="--cache_size=$CACHE --write_buffer_size=268435456"
ENGINES="$ENGINES RocksDB2"
RocksDB2_cmd="./db_bench.rocks"
RocksDB2_arg="--disable_seek_compaction=1 --mmap_read=0 --statistics=0 --key_size=16 --block_size=4096 --cache_size=$CACHE --bloom_bits=10 --cache_numshardbits=6 --open_files=500000 --compression_type=none --compression_ratio=1 --write_buffer_size=134217728 --target_file_size_base=67108864 --max_write_buffer_number=3 --max_background_compactions=20 --level0_file_num_compaction_trigger=4 --level0_slowdown_writes_trigger=8 --level0_stop_writes_trigger=12 --num_levels=6 --delete_obsolete_files_period_micros=300000000 --min_level_to_compress=2 --max_grandparent_overlap_factor=10 --stats_per_interval=0 --max_bytes_for_level_base=536870912"
ENGINES="$ENGINES TokuDB"
TokuDB_cmd="./db_bench_tokudb"
TokuDB_arg="--cache_size=$CACHE3"
ENGINES="$ENGINES WiredLSM"
WiredLSM_cmd="./db_bench_wiredtiger"
WiredLSM_arg="--cache_size=$CACHE"
ENGINES="$ENGINES WiredBtree"
WiredBtree_cmd="./db_bench_wiredtiger --use_lsm=0"
WiredBtree_arg="--cache_size=$CACHE"

for ENG in $ENGINES; do
  rm -rf $TEST_TMPDIR/*
  CMD="\$${ENG}_cmd"
  CMD=`eval echo $CMD`
  ARG="\$${ENG}_arg"
  ARG=`eval echo $ARG`
  echo "ENGINE=$ENG"
  date +%Y/%m/%d-%H:%M:%S
  $TIME $CMD --benchmarks=fillseqbatch --stats_interval=$STATS --num=$NUM --value_size=$VSIZE $ARG
  date +%Y/%m/%d-%H:%M:%S
  for THREADS in $THR; do
    echo THREADS=$THREADS
	$TIME $CMD --benchmarks=readwhilewriting --threads=$THREADS --stats_interval=$STATS --num=$NUM --value_size=$VSIZE --use_existing_db=1 --writes_per_second=$WRATE --duration=$DUR $ARG
    date +%Y/%m/%d-%H:%M:%S
    du $TEST_TMPDIR
  done
done
exit
