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

Commit 4c0a909

Browse files
authored
Merge branch 'master' into dmius-use-ebs-vol
2 parents 5478317 + 9a8b387 commit 4c0a909

File tree

2 files changed

+64
-15
lines changed

2 files changed

+64
-15
lines changed

nancy_run.sh

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,13 @@ function help() {
169169
'pg_basebackup -U postgres -z -ZX -P -Ft -D /ebs-db-vol-root'
170170
where X any compression level.
171171
172+
173+
\033[1m--db-pgbench\033[22m (string)
174+
175+
Initialize database for pgbench. Contains pgbench init arguments:
176+
177+
* Example nancy run --db-pgbench \"-s 100\"
178+
172179
\033[1m--commands-after-container-init\033[22m (string)
173180
174181
Shell commands to be executed after the container initialization. Can be used
@@ -199,6 +206,10 @@ function help() {
199206
SQL queries to be used as workload. These queries will be executed in a signle
200207
database session.
201208
209+
\033[1m--workload-pgbench\033[22m (string)
210+
211+
pgbench arguments to pass for tests. Ex: \"-c 10 -j 4 -t 1000\"
212+
202213
\033[1m--workload-basis\033[22m (string)
203214
204215
Reserved / Not yet implemented.
@@ -327,12 +338,14 @@ function dbg_cli_parameters() {
327338
echo "DB_PREPARED_SNAPSHOT: ${DB_PREPARED_SNAPSHOT}"
328339
echo "DB_DUMP: $DB_DUMP"
329340
echo "DB_NAME: $DB_NAME"
341+
echo "DB_PGBENCH: $DB_PGBENCH"
330342
echo "COMMANDS_AFTER_CONTAINER_INIT: $COMMANDS_AFTER_CONTAINER_INIT"
331343
echo "SQL_BEFORE_DB_RESTORE: $SQL_BEFORE_DB_RESTORE"
332344
echo "SQL_AFTER_DB_RESTORE: $SQL_AFTER_DB_RESTORE"
333345
echo "WORKLOAD_REAL: $WORKLOAD_REAL"
334346
echo "WORKLOAD_BASIS: $WORKLOAD_BASIS"
335347
echo "WORKLOAD_CUSTOM_SQL: $WORKLOAD_CUSTOM_SQL"
348+
echo "WORKLOAD_PGBENCH: $WORKLOAD_PGBENCH"
336349
echo "WORKLOAD_REAL_REPLAY_SPEED: $WORKLOAD_REAL_REPLAY_SPEED"
337350
echo "DELTA_SQL_DO: $DELTA_SQL_DO"
338351
echo "DELTA_SQL_UNDO: $DELTA_SQL_UNDO"
@@ -414,7 +427,9 @@ function check_cli_parameters() {
414427
([[ ! -z ${WORKLOAD_REAL+x} ]] && [[ -z $WORKLOAD_REAL ]]) && unset -v WORKLOAD_REAL
415428
([[ ! -z ${WORKLOAD_BASIS+x} ]] && [[ -z $WORKLOAD_BASIS ]]) && unset -v WORKLOAD_BASIS
416429
([[ ! -z ${WORKLOAD_CUSTOM_SQL+x} ]] && [[ -z $WORKLOAD_CUSTOM_SQL ]]) && unset -v WORKLOAD_CUSTOM_SQL
430+
([[ ! -z ${WORKLOAD_PGBENCH+x} ]] && [[ -z $WORKLOAD_PGBENCH ]]) && unset -v WORKLOAD_PGBENCH
417431
([[ ! -z ${DB_DUMP+x} ]] && [[ -z $DB_DUMP ]]) && unset -v DB_DUMP
432+
([[ ! -z ${DB_PGBENCH+x} ]] && [[ -z $DB_PGBENCH ]]) && unset -v DB_PGBENCH
418433
([[ ! -z ${COMMANDS_AFTER_CONTAINER_INIT+x} ]] && [[ -z $COMMANDS_AFTER_CONTAINER_INIT ]]) && unset -v COMMANDS_AFTER_CONTAINER_INIT
419434
([[ ! -z ${SQL_BEFORE_DB_RESTORE+x} ]] && [[ -z $SQL_BEFORE_DB_RESTORE ]]) && unset -v SQL_BEFORE_DB_RESTORE
420435
([[ ! -z ${SQL_AFTER_DB_RESTORE+x} ]] && [[ -z $SQL_AFTER_DB_RESTORE ]]) && unset -v SQL_AFTER_DB_RESTORE
@@ -521,8 +536,9 @@ function check_cli_parameters() {
521536
[[ ! -z ${WORKLOAD_BASIS+x} ]] && let workloads_count=$workloads_count+1
522537
[[ ! -z ${WORKLOAD_REAL+x} ]] && let workloads_count=$workloads_count+1
523538
[[ ! -z ${WORKLOAD_CUSTOM_SQL+x} ]] && let workloads_count=$workloads_count+1
539+
[[ ! -z ${WORKLOAD_PGBENCH+x} ]] && let workloads_count=$workloads_count+1
524540

525-
if [[ -z ${DB_PREPARED_SNAPSHOT+x} ]] && [[ -z ${DB_DUMP+x} ]] && [[ -z ${DB_EBS_VOLUME_ID+x} ]];then
541+
if [[ -z ${DB_PREPARED_SNAPSHOT+x} ]] && [[ -z ${DB_DUMP+x} ]] && [[ -z ${DB_PGBENCH+x} ]] && [[ -z ${DB_EBS_VOLUME_ID+x} ]]; then
526542
err "ERROR: The object (database) is not defined."
527543
exit 1
528544
fi
@@ -987,6 +1003,8 @@ while [ $# -gt 0 ]; do
9871003
DB_PREPARED_SNAPSHOT="$2"; shift 2 ;;
9881004
--db-dump )
9891005
DB_DUMP="$2"; shift 2 ;;
1006+
--db-pgbench )
1007+
DB_PGBENCH="$2"; shift 2 ;;
9901008
--db-name )
9911009
DB_NAME="$2"; shift 2 ;;
9921010
--commands-after-container-init )
@@ -1000,6 +1018,9 @@ while [ $# -gt 0 ]; do
10001018
--workload-custom-sql )
10011019
#s3 url|filename|content
10021020
WORKLOAD_CUSTOM_SQL="$2"; shift 2 ;;
1021+
--workload-pgbench )
1022+
#s3 url|filename|content
1023+
WORKLOAD_PGBENCH="$2"; shift 2 ;;
10031024
--workload-real )
10041025
#s3 url
10051026
WORKLOAD_REAL="$2"; shift 2 ;;
@@ -1303,20 +1324,24 @@ function apply_sql_before_db_restore() {
13031324
function restore_dump() {
13041325
OP_START_TIME=$(date +%s)
13051326
msg "Restore database dump"
1306-
case "$DB_DUMP_EXT" in
1307-
sql)
1308-
docker_exec bash -c "cat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1309-
;;
1310-
bz2)
1311-
docker_exec bash -c "bzcat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1312-
;;
1313-
gz)
1314-
docker_exec bash -c "zcat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1315-
;;
1316-
pgdmp)
1317-
docker_exec bash -c "pg_restore -j $CPU_CNT --no-owner --no-privileges -U postgres -d $DB_NAME $MACHINE_HOME/$DB_DUMP_FILENAME" || true
1318-
;;
1319-
esac
1327+
if ([ ! -z ${DB_PGBENCH+x} ]); then
1328+
docker_exec bash -c "pgbench -i $DB_PGBENCH -U postgres $DB_NAME" || true
1329+
else
1330+
case "$DB_DUMP_EXT" in
1331+
sql)
1332+
docker_exec bash -c "cat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1333+
;;
1334+
bz2)
1335+
docker_exec bash -c "bzcat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1336+
;;
1337+
gz)
1338+
docker_exec bash -c "zcat $MACHINE_HOME/$DB_DUMP_FILENAME | psql --set ON_ERROR_STOP=on -U postgres $DB_NAME $VERBOSE_OUTPUT_REDIRECT"
1339+
;;
1340+
pgdmp)
1341+
docker_exec bash -c "pg_restore -j $CPU_CNT --no-owner --no-privileges -U postgres -d $DB_NAME $MACHINE_HOME/$DB_DUMP_FILENAME" || true
1342+
;;
1343+
esac
1344+
fi
13201345
END_TIME=$(date +%s)
13211346
DURATION=$(echo $((END_TIME-OP_START_TIME)) | awk '{printf "%d:%02d:%02d", $1/3600, ($1/60)%60, $1%60}')
13221347
msg "Time taken to restore database: $DURATION."
@@ -1490,6 +1515,8 @@ function execute_workload() {
14901515
else
14911516
docker_exec bash -c "pgreplay -r -j $MACHINE_HOME/$WORKLOAD_FILE_NAME"
14921517
fi
1518+
elif [ ! -z ${WORKLOAD_PGBENCH+x} ]; then
1519+
docker_exec bash -c "pgbench $WORKLOAD_PGBENCH -U postgres $DB_NAME"
14931520
else
14941521
if ([ ! -z ${WORKLOAD_CUSTOM_SQL+x} ] && [ "$WORKLOAD_CUSTOM_SQL" != "" ]); then
14951522
WORKLOAD_CUSTOM_FILENAME=$(basename $WORKLOAD_CUSTOM_SQL)

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)