
oltp_*.lua scripts now support the --reconnect=N option. When specified, sysbench will reconnect after every N events. Fixes GH-90.
96 lines
2.7 KiB
Bash
96 lines
2.7 KiB
Bash
#!/usr/bin/env bash
|
|
#
|
|
################################################################################
|
|
# Common code for OLTP tests
|
|
#
|
|
# Expects the following variables and callback functions to be defined by the
|
|
# caller:
|
|
#
|
|
# DB_DRIVER_ARGS -- extra driver-specific arguments to pass to sysbench
|
|
# OLTP_SCRIPT_PATH -- path to the script file to execute
|
|
# SB_EXTRA_ARGS -- optional variable to specify extra sysbench arguments
|
|
#
|
|
# db_show_table() -- called with a single argument to dump a specified table
|
|
# schema
|
|
################################################################################
|
|
|
|
set -eu
|
|
|
|
SB_EXTRA_ARGS=${SB_EXTRA_ARGS:-}
|
|
|
|
# Test single-threaded prepare/prewarm/cleanup output
|
|
|
|
ARGS="${OLTP_SCRIPT_PATH} ${DB_DRIVER_ARGS} --tables=8 --threads=1 ${SB_EXTRA_ARGS}"
|
|
sysbench $ARGS prepare
|
|
|
|
db_show_table sbtest1
|
|
db_show_table sbtest2
|
|
db_show_table sbtest3
|
|
db_show_table sbtest4
|
|
db_show_table sbtest5
|
|
db_show_table sbtest6
|
|
db_show_table sbtest7
|
|
db_show_table sbtest8
|
|
db_show_table sbtest9 || true # Error on non-existing table
|
|
|
|
sysbench $ARGS warmup || true # MySQL only
|
|
sysbench $ARGS cleanup
|
|
|
|
# Test parallel prepare/prewarm/cleanup. Parallelism may result in
|
|
# non-deterministic output, so we redirect it to /dev/null
|
|
|
|
ARGS="${OLTP_SCRIPT_PATH} ${DB_DRIVER_ARGS} --tables=8 --threads=2 ${SB_EXTRA_ARGS}"
|
|
|
|
sysbench $ARGS prepare >/dev/null
|
|
|
|
db_show_table sbtest1
|
|
db_show_table sbtest2
|
|
db_show_table sbtest3
|
|
db_show_table sbtest4
|
|
db_show_table sbtest5
|
|
db_show_table sbtest6
|
|
db_show_table sbtest7
|
|
db_show_table sbtest8
|
|
db_show_table sbtest9 || true # Error on non-existing table
|
|
|
|
sysbench $ARGS prewarm >/dev/null || true # MySQL only
|
|
|
|
sysbench --events=100 $ARGS run
|
|
|
|
sysbench $ARGS cleanup >/dev/null
|
|
|
|
db_show_table sbtest1 || true # Error on non-existing table
|
|
db_show_table sbtest2 || true # Error on non-existing table
|
|
db_show_table sbtest3 || true # Error on non-existing table
|
|
db_show_table sbtest4 || true # Error on non-existing table
|
|
db_show_table sbtest5 || true # Error on non-existing table
|
|
db_show_table sbtest6 || true # Error on non-existing table
|
|
db_show_table sbtest7 || true # Error on non-existing table
|
|
db_show_table sbtest8 || true # Error on non-existing table
|
|
|
|
echo "# Test --create-secondary=off"
|
|
ARGS="${OLTP_SCRIPT_PATH} ${DB_DRIVER_ARGS} ${SB_EXTRA_ARGS} --tables=1"
|
|
|
|
sysbench --create-secondary=off $ARGS prepare
|
|
|
|
db_show_table sbtest1
|
|
|
|
sysbench $ARGS cleanup
|
|
|
|
echo "# Test --auto-inc=off"
|
|
|
|
ARGS="$ARGS --auto-inc=off --verbosity=1"
|
|
|
|
sysbench $ARGS prepare
|
|
sysbench $ARGS run
|
|
sysbench $ARGS cleanup
|
|
|
|
echo "# Test --reconnect"
|
|
|
|
ARGS="${OLTP_SCRIPT_PATH} ${DB_DRIVER_ARGS} ${SB_EXTRA_ARGS} --events=100 \
|
|
--reconnect=5"
|
|
|
|
sysbench $ARGS prepare >/dev/null || true
|
|
sysbench $ARGS run | grep reconnects:
|
|
sysbench $ARGS cleanup >/dev/null || true
|