#!/bin/bash
pg_stuff_dir=$HOME/pg_stuff
port1=6972 project1=logical_replication
port2=6973 project2=logical_replication2
db=testdb
rc=0
duration=60
while [[ $rc -eq 0 ]]
do
for scale in 25 5
do
  for clients in 90 64 8
  do
    date_str=$(date +"%Y%m%d_%H%M")
    outfile=out_${date_str}.txt
    from=1 
    to=100
    echo "tail -n 1000 -F $outfile"
    (
      time for x in `seq $from $to`
      do
          echo
          echo "========= iteration $x --   $(( $x - $from + 1 )) of $(( $to - $from + 1)) ========="
          ./pgbench_derail2.sh $scale $clients $duration $date_str
          ( PGPORT=$port1 PGDATA=$pg_stuff_dir/pg_installations/pgsql.$project1/data pg_ctl -w              stop )
          if [[ $( pg_isready -qp $port1 -d $db ) -ne 0 ]]
          then 
                  ( PGPORT=$port1 PGDATA=$pg_stuff_dir/pg_installations/pgsql.$project1/data pg_ctl -w -m immediate stop )
          fi
          ( PGPORT=$port2 PGDATA=$pg_stuff_dir/pg_installations/pgsql.$project2/data pg_ctl -w              stop ) 
          if [[ $( pg_isready -qp $port2 -d $db ) -ne 0 ]]
          then 
                  ( PGPORT=$port2 PGDATA=$pg_stuff_dir/pg_installations/pgsql.$project2/data pg_ctl -w -m immediate stop )
          fi
          ( PGPORT=$port1 PGDATA=$pg_stuff_dir/pg_installations/pgsql.$project1/data ./instances.sh )
          #rc=$?
          #sleep 5
          pg_isready -qp $port1 -d $db; while [[ $? -ne 0 ]]; do sleep 15; echo "-- pg_isready -qp $port1 -d $db"; pg_isready -qp $port1 -d $db; done
          pg_isready -qp $port2 -d $db; while [[ $? -ne 0 ]]; do sleep 15; echo "-- pg_isready -qp $port2 -d $db"; pg_isready -qp $port2 -d $db; done
      done
    ) &>> ${outfile}
  done
done
  echo "done."
done

