Files
sysbench/tests/include/script_oltp_common.sh
Alexey Kopytov a245b2f531 OLTP scripts: add --reconnect option.
oltp_*.lua scripts now support the --reconnect=N option. When specified,
sysbench will reconnect after every N events.

Fixes GH-90.
2018-12-11 23:22:56 +03:00

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