Tue Sep 25 14:36:31 PDT 2007
- Previous message: [Slony1-commit] slony1-engine RELEASE
- Next message: [Slony1-commit] slony1-engine/tests/testdeadlockddl - New directory
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /home/cvsd/slony1/slony1-engine/tests/testinherit
In directory main.slony.info:/tmp/cvs-serv24546
Modified Files:
README generate_dml.sh
Log Message:
Modify "testinherit" test to add in a test of subtransactions/savepoints.
- A bunch of concurrent psql sessions generate random lists of regions/products
- each of them performs purchase transactions based on these lists
- some of the purchases get rolled back
- some "sleep" requests go in in order to increase concurrency
Index: README
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/tests/testinherit/README,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** README 7 Sep 2007 19:50:11 -0000 1.3
--- README 25 Sep 2007 21:36:29 -0000 1.4
***************
*** 30,31 ****
--- 30,37 ----
Note that slon processes are configured purely via command line, not
via .conf file
+
+ This test also performs a subtransaction test; it generates 16
+ more-or-less concurrent psql sessions that:
+ - create lists of products/regions (randomly, in temp tables local to each session)
+ - performs purchases on elements of those lists
+ - some of those purchases get rolled back, others don't
Index: generate_dml.sh
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/tests/testinherit/generate_dml.sh,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** generate_dml.sh 2 Apr 2007 18:52:18 -0000 1.5
--- generate_dml.sh 25 Sep 2007 21:36:29 -0000 1.6
***************
*** 63,67 ****
fi
done
! status "done"
}
--- 63,105 ----
fi
done
! status "done initial test"
!
! SUBTRANSACTIONQUERY=<<EOF
! begin;
! -- Get a random list of products/regions
! select product_id into temp table products_foo from products order by random() limit 10;
! select region_code into temp table regions_foo from regions order by random() limit 10;
! savepoint a;
! -- Purchase some products...
! select purchase_product( region_code, product_id, (random()*5+random()*8+random()*7)::integer) from products_foo, regions_foo order by random() limit 10;
! \!sh -c 'sleep2'
! savepoint b;
! -- Then purchase some more products
! select purchase_product( region_code, product_id, (random()*5+random()*8+random()*7)::integer) from products_foo, regions_foo order by random() limit 5;
! -- but psyche!!! rollback to the previous savepoint!
! rollback to savepoint b;
! savepoint c;
! -- Get another random listing of products/regions
! select product_id into temp table products_bar from products order by random() limit 5;
! select region_code into temp table regions_bar from regions order by random() limit 5;
! savepoint d;
! \!sh -c 'sleep2'
! -- Now, do a purchase
! select purchase_product( region_code, product_id, (random()*5+random()*8+random()*7)::integer) from products_bar, regions_bar order by random() limit 5;
! -- psyche!!!
! rollback to savepoint d;
! savepoint e;
! select purchase_product( region_code, product_id, (random()*5+random()*8+random()*7)::integer) from products_bar, regions_bar order by random() limit 10;
! \!sh -c 'sleep2'
! commit;
! EOF
!
! status "run a series of transactions that use subtransactions"
! for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16; do
! status "subtransaction set ${i}"
! (sleep 2; $pgbindir/psql -h $host -p $port -d $db -U $user -c "${QUERY}"; status "done subtransaction set ${i}") &
! sleep 1
! done
! sleep 20
}
- Previous message: [Slony1-commit] slony1-engine RELEASE
- Next message: [Slony1-commit] slony1-engine/tests/testdeadlockddl - New directory
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list