#Pre condition:
#Create and initialize the database and set the export PGDATA 
export PGDATA=/data/dilip.kumar/pgdata
export PGPORT=54322
export LD_LIBRARY_PATH=/data/dilip.kumar/pg_codes/base/pmdeath/lib:$LD_LIBRARY_PATH

#for i in "scale_factor shared_buffers time_for_readings no_of_readings orig_or_patch"
for i in "300 8GB 300 6 0"
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="head"	
elif [ $orig_or_patch = "1" ]
then
	run_bin="patch"    
else 
	run_bin="sbe_slock_diffcl_1_v5_3"    
fi

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

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


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

#Start the server
#./postgres -c shared_buffers=$shared_bufs &
#./pg_ctl start -l postgres_bgw.log

#sleep 5 
cd $run_bin/bin

for threads in 64 128
#for threads in 8 16 
do       
	#./pgbench -c $threads -j $threads -T $time_for_reading -S  postgres  >> test_results.txt
        #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
		#cd $run_bin

	    	./postgres -c shared_buffers=$shared_bufs -c max_wal_size=20GB -c max_connections=150 -p 54322&
 		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 -S -M prepared  postgres  >> test_results.txt
		#./pgbench -c $threads -j $threads -T $time_for_reading -S  postgres  >> test_results.txt
		./pgbench -c $threads -j $threads -T $time_for_reading -M prepared -S postgres  >> test_results.txt
		sleep 10
		./psql -d postgres -c "checkpoint" >> test_results.txt
		./pg_ctl stop
	done;
done;

#./psql -d postgres -c "checkpoint" >> test_results.txt
#./pg_ctl stop
sleep 1


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