#!/bin/bash seconds=30 scale=100000 pg_ctl stop -D pgdata -w for sha in e578c17d8 ae0f7b11f b94109ce3 7f4708818 bc49f8780 540849814 929c69aa1 f49b85d78 bbb927b4d 555eb1a4f f8721bd75 83d727e5b 21d36747d ba9f18abd 20d3fe900 f893e68d7 ad1c36b07 f90149e62 b401fa206 f90e80b91 b17ff07aa 5b3dca096 bf797a8d9 113d3591b 5b7bfc397 5ee180a39 b4c9695e7 8b39345a9 8f113698b d2e4bf688 do cd ~/pg_src git reset --hard git clean -f git checkout $sha ./configure --prefix=/home/drowley/pg > /dev/null for branch in master resultcache_v8 resultcache_v9 do cd ~/pg_src git reset --hard git clean -f for file in /home/drowley/$branch/* do patch -p1 < $file done make clean -s make -j -s make install -s cd contrib/pg_prewarm make -j -s make install -s cd sleep 1 # create database and load data when doing the first branch if [ $branch = master ] then rm -rf pgdata initdb -D pgdata > /dev/null cp postgresql.conf pgdata pg_ctl start -D pgdata -l pg.log psql -c "drop table if exists hundredk, lookup1, lookup100;" postgres psql -c "create table hundredk (hundredk int, tenk int, thousand int, hundred int, ten int, one int);" postgres psql -c "insert into hundredk select x%100000,x%10000,x%1000,x%100,x%10,1 from generate_Series(1,$scale) x;" postgres psql -c "create table lookup100 (a int);" postgres psql -c "insert into lookup100 select x from generate_Series(1,$scale)x,generate_Series(1,100);" postgres psql -c "create index on lookup100 (a);" postgres psql -c "create table lookup1 (a int);" postgres psql -c "insert into lookup1 select x from generate_Series(1,$scale)x;" postgres psql -c "create index on lookup1 (a);" postgres psql -c "vacuum analyze lookup1, lookup100, hundredk;" postgres psql -c "create extension pg_prewarm;" postgres pg_ctl stop -D pgdata -w fi pg_ctl start -D pgdata -l pg.log -w psql -c "select pg_prewarm('lookup1'), pg_prewarm('lookup100'), pg_prewarm('hundredk');" postgres for tbl in lookup1 lookup100 do for target in "count(*)" "count(l.a)" "'*'" do for col in thousand hundred ten one do echo "select $target from hundredk hk inner join $tbl l on hk.$col = l.a" > bench.sql echo Testing $sha $branch $tbl $target $col >> bench.log pgbench -n -T $seconds -f bench.sql postgres | grep latency >> bench.log done done done pg_ctl stop -D pgdata -w done done