I have found an interesting result from patched pgbench (I have set the isolation level to REPEATABLE READ):
$ pgbench -p 11000 -c 10 -T 30 --max-tries=0 test pgbench (15devel, server 13.3) starting vacuum...end. transaction type: <builtin: TPC-B (sort of)> scaling factor: 1 query mode: simple number of clients: 10 number of threads: 1 duration: 30 s number of transactions actually processed: 2586 number of failed transactions: 9 (0.347%) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ number of transactions retried: 1892 (72.909%) total number of retries: 21819 latency average = 115.551 ms (including failures) initial connection time = 35.268 ms tps = 86.241799 (without initial connection time) I ran pgbench with 10 concurrent sessions. In this case pgbench always reports 9 failed transactions regardless the setting of -T option. This is because at the end of a pgbench session, only 1 out of 10 transaction succeeded but 9 transactions failed due to serialization error without any chance to retry because -T expires. This is a little bit disappointed because I wanted to see a result of all transactions succeeded with retries. I tried -t instead of -T but -t cannot be used with --max-tries=0. Also I think this behavior is somewhat inconsistent with existing behavior of pgbench. When pgbench runs without --max-tries option, pgbench continues to run transactions even after -T expires: $ time pgbench -p 11000 -T 10 -f pgbench.sql test pgbench (15devel, server 13.3) starting vacuum...end. transaction type: pgbench.sql scaling factor: 1 query mode: simple number of clients: 1 number of threads: 1 duration: 10 s number of transactions actually processed: 2 maximum number of tries: 1 latency average = 7009.006 ms initial connection time = 8.045 ms tps = 0.142674 (without initial connection time) real 0m14.067s user 0m0.010s sys 0m0.004s $ cat pgbench.sql SELECT pg_sleep(7); So pgbench does not stop transactions after 10 seconds passed but waits for the last transaction completes. If we consistent with behavior when --max-tries=0, shouldn't we retry until the last transaction finishes? Best regards, -- Tatsuo Ishii SRA OSS, Inc. Japan English: http://www.sraoss.co.jp/index_en.php Japanese:http://www.sraoss.co.jp