#!/bin/bash #################### ### Declarations ### #################### ## Publisher-related params PORT_PUB=6633 DATA_PUB=data_pub LOG_PUB=pub.log ## Number of runs NUMRUN=1 ## Measurement params NUMTABLES=25000 # Setup an instance with above parameters. function setup () { ################ ### clean up ### ################ pg_ctl stop -D $DATA_PUB -w rm -rf $DATA_PUB $LOG_PUB ####################### ### setup publisher ### ####################### initdb -D data_pub -U postgres cat << EOF >> data_pub/postgresql.conf port=$PORT_PUB autovacuum = false shared_buffers = '100GB' max_wal_size = 20GB min_wal_size = 10GB wal_level = logical EOF pg_ctl -D $DATA_PUB start -w -l $LOG_PUB ( echo "CREATE SCHEMA sch1;" echo "SELECT 'CREATE TABLE tab_' || generate_series(1, $NUMTABLES) || '(id int primary key)' ; \gexec" echo "SELECT 'CREATE TABLE sch1.tab_' || generate_series(1, $NUMTABLES) || '(id int primary key)' ; \gexec" echo "CREATE PUBLICATION pub FOR TABLES IN SCHEMA sch1;" echo "SELECT 'ALTER PUBLICATION pub ADD TABLE tab_' || generate_series(1, $NUMTABLES) ; \gexec" ) | psql -U postgres -p $PORT_PUB } setup