On 2014-09-29 11:31:11 +0200, Andres Freund wrote: > On 2014-09-29 11:13:43 +0200, Andres Freund wrote: > > I doubt it'll be hard to construct a case where it'll show. My first try > > of using a pgbench scale 100, -M prepared, -cj8 with a custom file with > > 1 write and 5 read transaction yielded the following on my laptop: > > Hm. On second thought that testcase probably *decreased* the bad effects > of this because pgbench's readonly statements only touch one table...
I've attached the file nonetheless, for posterities sake. Note it has the scale hardcoded... Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
\set scale 100 \set nbranches 1 * :scale \set ntellers 10 * :scale \set naccounts 100000 * :scale \setrandom aid 1 :naccounts \setrandom bid 1 :nbranches \setrandom tid 1 :ntellers \setrandom delta -5000 5000 BEGIN; UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid; SELECT abalance FROM pgbench_accounts WHERE aid = :aid; UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid; UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid; INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP); END; \set naccounts 100000 * :scale \setrandom aid 1 :naccounts SELECT abalance FROM pgbench_accounts WHERE aid = :aid; \set naccounts 100000 * :scale \setrandom aid 1 :naccounts SELECT abalance FROM pgbench_accounts WHERE aid = :aid; \set naccounts 100000 * :scale \setrandom aid 1 :naccounts SELECT abalance FROM pgbench_accounts WHERE aid = :aid; \set naccounts 100000 * :scale \setrandom aid 1 :naccounts SELECT abalance FROM pgbench_accounts WHERE aid = :aid; \set naccounts 100000 * :scale \setrandom aid 1 :naccounts SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers