Skip to content
This repository was archived by the owner on Aug 16, 2021. It is now read-only.

Commit e27183f

Browse files
author
Michel Pelletier
committed
changes per review.
1 parent 89048c1 commit e27183f

File tree

3 files changed

+63
-34
lines changed

3 files changed

+63
-34
lines changed

nancy_run.sh

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,12 @@ function help() {
138138
- dump in \"custom\" format, made with 'pg_dump -Fc ..' ('*.pgdmp'),
139139
* sequence of SQL commands specified as in a form of plain text.
140140
141+
\033[1m--db-pgbench\033[22m (string)
142+
143+
Initialize database for pgbench. Contains pgbench init arguments:
144+
145+
* Example nancy run --db-pgbench \"-s 100\"
146+
141147
\033[1m--commands-after-container-init\033[22m (string)
142148
143149
Shell commands to be executed after the container initialization. Can be used
@@ -168,6 +174,10 @@ function help() {
168174
SQL queries to be used as workload. These queries will be executed in a signle
169175
database session.
170176
177+
\033[1m--workload-pgbench\033[22m (string)
178+
179+
pgbench arguments to pass for tests. Ex: \"-c 10 -j 4 -t 1000\"
180+
171181
\033[1m--workload-basis\033[22m (string)
172182
173183
Reserved / Not yet implemented.
@@ -296,12 +306,14 @@ function dbg_cli_parameters() {
296306
echo "DB_PREPARED_SNAPSHOT: ${DB_PREPARED_SNAPSHOT}"
297307
echo "DB_DUMP: $DB_DUMP"
298308
echo "DB_NAME: $DB_NAME"
309+
echo "DB_PGBENCH: $DB_PGBENCH"
299310
echo "COMMANDS_AFTER_CONTAINER_INIT: $COMMANDS_AFTER_CONTAINER_INIT"
300311
echo "SQL_BEFORE_DB_RESTORE: $SQL_BEFORE_DB_RESTORE"
301312
echo "SQL_AFTER_DB_RESTORE: $SQL_AFTER_DB_RESTORE"
302313
echo "WORKLOAD_REAL: $WORKLOAD_REAL"
303314
echo "WORKLOAD_BASIS: $WORKLOAD_BASIS"
304315
echo "WORKLOAD_CUSTOM_SQL: $WORKLOAD_CUSTOM_SQL"
316+
echo "WORKLOAD_PGBENCH: $WORKLOAD_PGBENCH"
305317
echo "WORKLOAD_REAL_REPLAY_SPEED: $WORKLOAD_REAL_REPLAY_SPEED"
306318
echo "DELTA_SQL_DO: $DELTA_SQL_DO"
307319
echo "DELTA_SQL_UNDO: $DELTA_SQL_UNDO"
@@ -383,7 +395,9 @@ function check_cli_parameters() {
383395
([[ ! -z ${WORKLOAD_REAL+x} ]] && [[ -z $WORKLOAD_REAL ]]) && unset -v WORKLOAD_REAL
384396
([[ ! -z ${WORKLOAD_BASIS+x} ]] && [[ -z $WORKLOAD_BASIS ]]) && unset -v WORKLOAD_BASIS
385397
([[ ! -z ${WORKLOAD_CUSTOM_SQL+x} ]] && [[ -z $WORKLOAD_CUSTOM_SQL ]]) && unset -v WORKLOAD_CUSTOM_SQL
398+
([[ ! -z ${WORKLOAD_PGBENCH+x} ]] && [[ -z $WORKLOAD_PGBENCH ]]) && unset -v WORKLOAD_PGBENCH
386399
([[ ! -z ${DB_DUMP+x} ]] && [[ -z $DB_DUMP ]]) && unset -v DB_DUMP
400+
([[ ! -z ${DB_PGBENCH+x} ]] && [[ -z $DB_PGBENCH ]]) && unset -v DB_PGBENCH
387401
([[ ! -z ${COMMANDS_AFTER_CONTAINER_INIT+x} ]] && [[ -z $COMMANDS_AFTER_CONTAINER_INIT ]]) && unset -v COMMANDS_AFTER_CONTAINER_INIT
388402
([[ ! -z ${SQL_BEFORE_DB_RESTORE+x} ]] && [[ -z $SQL_BEFORE_DB_RESTORE ]]) && unset -v SQL_BEFORE_DB_RESTORE
389403
([[ ! -z ${SQL_AFTER_DB_RESTORE+x} ]] && [[ -z $SQL_AFTER_DB_RESTORE ]]) && unset -v SQL_AFTER_DB_RESTORE
@@ -500,9 +514,8 @@ function check_cli_parameters() {
500514
[[ ! -z ${WORKLOAD_BASIS+x} ]] && let workloads_count=$workloads_count+1
501515
[[ ! -z ${WORKLOAD_REAL+x} ]] && let workloads_count=$workloads_count+1
502516
[[ ! -z ${WORKLOAD_CUSTOM_SQL+x} ]] && let workloads_count=$workloads_count+1
503-
[[ ${DB_DUMP_EXT} = "pgbnch" ]] && let workloads_count=$workloads_count+1
504-
505-
if [[ -z ${DB_PREPARED_SNAPSHOT+x} ]] && [[ -z ${DB_DUMP+x} ]]; then
517+
[[ ! -z ${WORKLOAD_PGBENCH+x} ]] && let workloads_count=$workloads_count+1
518+
if [[ -z ${DB_PREPARED_SNAPSHOT+x} ]] && [[ -z ${DB_DUMP+x} ]] && [[ -z ${DB_PGBENCH+x} ]]; then
506519
err "ERROR: The object (database) is not defined."
507520
exit 1
508521
fi
@@ -957,6 +970,8 @@ while [ $# -gt 0 ]; do
957970
DB_PREPARED_SNAPSHOT="$2"; shift 2 ;;
958971
--db-dump )
959972
DB_DUMP="$2"; shift 2 ;;
973+
--db-pgbench )
974+
DB_PGBENCH="$2"; shift 2 ;;
960975
--db-name )
961976
DB_NAME="$2"; shift 2 ;;
962977
--commands-after-container-init )
@@ -970,6 +985,9 @@ while [ $# -gt 0 ]; do
970985
--workload-custom-sql )
971986
#s3 url|filename|content
972987
WORKLOAD_CUSTOM_SQL="$2"; shift 2 ;;
988+
--workload-pgbench )
989+
#s3 url|filename|content
990+
WORKLOAD_PGBENCH="$2"; shift 2 ;;
973991
--workload-real )
974992
#s3 url
975993
WORKLOAD_REAL="$2"; shift 2 ;;
@@ -1219,23 +1237,24 @@ function apply_sql_before_db_restore() {
12191237
function restore_dump() {
12201238
OP_START_TIME=$(date +%s)
12211239
msg "Restore database dump"
1222-
case "$DB_DUMP_EXT" in
1223-
sql)
1224-
docker_exec bash -c "cat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1225-
;;
1226-
bz2)
1227-
docker_exec bash -c "bzcat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1228-
;;
1229-
gz)
1230-
docker_exec bash -c "zcat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1231-
;;
1232-
pgdmp)
1233-
docker_exec bash -c "pg_restore -j $CPU_CNT --no-owner --no-privileges -U postgres -d $DB_NAME $MACHINE_HOME/$DB_DUMP_FILENAME" || true
1234-
;;
1235-
pgbnch)
1236-
docker_exec bash -c "source $MACHINE_HOME/$DB_DUMP_FILENAME; pgbench \$INIT -U postgres -s \$SCALE $DB_NAME" || true
1237-
;;
1238-
esac
1240+
if ([ ! -z ${DB_PGBENCH+x} ]); then
1241+
docker_exec bash -c "pgbench -i $DB_PGBENCH -U postgres $DB_NAME" || true
1242+
else
1243+
case "$DB_DUMP_EXT" in
1244+
sql)
1245+
docker_exec bash -c "cat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1246+
;;
1247+
bz2)
1248+
docker_exec bash -c "bzcat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1249+
;;
1250+
gz)
1251+
docker_exec bash -c "zcat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1252+
;;
1253+
pgdmp)
1254+
docker_exec bash -c "pg_restore -j $CPU_CNT --no-owner --no-privileges -U postgres -d $DB_NAME $MACHINE_HOME/$DB_DUMP_FILENAME" || true
1255+
;;
1256+
esac
1257+
fi
12391258
END_TIME=$(date +%s)
12401259
DURATION=$(echo $((END_TIME-OP_START_TIME)) | awk '{printf "%d:%02d:%02d", $1/3600, ($1/60)%60, $1%60}')
12411260
msg "Time taken to restore database: $DURATION."
@@ -1408,11 +1427,8 @@ function execute_workload() {
14081427
else
14091428
docker_exec bash -c "pgreplay -r -j $MACHINE_HOME/$WORKLOAD_FILE_NAME"
14101429
fi
1411-
elif [ "$DB_DUMP_EXT" = "pgbnch" ]; then
1412-
msg "Running pgbench..."
1413-
docker_exec bash -c <<EOF "
1414-
source $MACHINE_HOME/$DB_DUMP_FILENAME;
1415-
pgbench -P \$PROGRESS -c \$CLIENTS -j \$JOBS -t \$TRANSACTIONS -U postgres $DB_NAME"
1430+
elif [ ! -z ${WORKLOAD_PGBENCH+x} ]; then
1431+
docker_exec bash -c "pgbench $WORKLOAD_PGBENCH -U postgres $DB_NAME"
14161432
EOF
14171433
else
14181434
if ([ ! -z ${WORKLOAD_CUSTOM_SQL+x} ] && [ "$WORKLOAD_CUSTOM_SQL" != "" ]); then

test.pgbnch

Lines changed: 0 additions & 9 deletions
This file was deleted.

tests/nancy_run_localhost_pgbench.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
3+
realpath() {
4+
[[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
5+
}
6+
7+
src_dir=$(dirname $(dirname $(realpath "$0")))"/.circleci"
8+
9+
output=$(
10+
${BASH_SOURCE%/*}/../nancy run \
11+
--db-pgbench "-s 1" \
12+
--workload-pgbench "-t 1" 2>&1
13+
)
14+
15+
regex="Errors:[[:blank:]]*0"
16+
if [[ $output =~ $regex ]]; then
17+
echo -e "\e[36mOK\e[39m"
18+
else
19+
>&2 echo -e "\e[31mFAILED\e[39m"
20+
>&2 echo -e "Output: $output"
21+
exit 1
22+
fi

0 commit comments

Comments
 (0)