#set the export PGDATA 
export PGDATA=/mnt/data-mag/amit.kapila/pgdata_300
export PGPORT=5433
export LD_LIBRARY_PATH=/home/amit.kapila/workspace/master/installation/lib:$LD_LIBRARY_PATH

#take the performance data by varying scale_factor, shared_buffers, time_for_readings,
#no_of_readings and for different patch versions (orig_or_patch). 
#for i in "scale_factor shared_buffers time_for_readings no_of_readings orig_or_patch"
for i in "300 8GB 1800 1 0" "300 8GB 1800 1 1"
do
scale_factor=`echo $i | cut -d" " -f1`
shared_bufs=`echo $i | cut -d" " -f2`
time_for_reading=`echo $i | cut -d" " -f3`
no_of_readings=`echo $i | cut -d" " -f4`
orig_or_patch=`echo $i | cut -d" " -f5`

if [ $orig_or_patch = "0" ]
then
	run_bin="org_rel"	
elif [ $orig_or_patch = "1" ]
then
	run_bin="group_xid_clearing_at_trans_end_v2"    
else 
	run_bin="group_xid_clearing_at_trans_end_v3"    
fi

# -----------------------------------------------

echo "Start of script for $scale_factor $shared_bufs " >> test_results.txt


echo "============== $run_bin =============" >> test_results.txt
cp postgres_${run_bin} postgres


for threads in 1 8 16 32 64 128
do       
        #Start taking reading
	for ((readcnt = 1 ; readcnt <= $no_of_readings ; readcnt++))
	do
		echo "================================================"  >> test_results.txt
		echo $scale_factor, $shared_bufs, $threads, $threads, $time_for_reading Reading - ${readcnt}  >> test_results.txt
		#start server
		./postgres -c shared_buffers=$shared_bufs -c wal_buffers=256MB&
 		sleep 5
		#drop and recreate database
		./dropdb postgres
		./createdb postgres
		#initialize database
		./pgbench -i -s $scale_factor postgres
		sleep 5
		# Run pgbench	
		./pgbench -c $threads -j $threads -T $time_for_reading -M prepared postgres  >> test_results.txt
		sleep 10
		./psql -d postgres -c "checkpoint" >> test_results.txt
		#Run manual vacuum, if autovacuum is off.
		#./psql -d postgres -c "vacuum" >> test_results.txt
		./pg_ctl stop
	done;
done;

sleep 1


mv test_results.txt test_results_list_${scale_factor}_${shared_bufs}_${run_bin}.txt
done;
