> I overlooked the "NaN% of total" in per-script results.
> I think this NaN also should be avoided.
>
> I fixed the number of transactions in per-script results to include
> skipped and failed transactions. It prevents to print "total of NaN%"
> when any transactions are not successfully processed.
Thanks for the fix. Here is the new run with the v2 patch. The result
looks good to me.
src/bin/pgbench/pgbench -p 11002 -c1 -t 1 -f c.sql -f d.sql --failures-detailed -r test
pgbench (18devel)
starting vacuum...end.
transaction type: multiple scripts
scaling factor: 1
query mode: simple
number of clients: 1
number of threads: 1
maximum number of tries: 1
number of transactions per client: 1
number of transactions actually processed: 1/1
number of failed transactions: 0 (0.000%)
number of serialization failures: 0 (0.000%)
number of deadlock failures: 0 (0.000%)
latency average = 2.434 ms
initial connection time = 2.117 ms
tps = 410.846343 (without initial connection time)
SQL script 1: c.sql
- weight: 1 (targets 50.0% of total)
- 1 transactions (100.0% of total)
- number of transactions actually pocessed: 1 (tps = 410.846343)
- number of failed transactions: 0 (0.000%)
- number of serialization failures: 0 (0.000%)
- number of deadlock failures: 0 (0.000%)
- latency average = 2.419 ms
- latency stddev = 0.000 ms
- statement latencies in milliseconds and failures:
0.187 0 begin;
0.153 0 set transaction isolation level serializable;
0.977 0 insert into t1 select max(i)+1,2 from t1;
1.102 0 end;
SQL script 2: d.sql
- weight: 1 (targets 50.0% of total)
- 0 transactions (0.0% of total)
- statement latencies in milliseconds and failures:
0.000 0 begin;
0.000 0 set transaction isolation level serializable;
0.000 0 insert into t1 select max(i)+1,2 from t1;
0.000 0 end;
> Although it breaks the back-compatibility, this seems reasonable
> modification because not only succeeded transactions but also skips and
> failures ones are now handled and reported for each script. Also, the
> number of transactions actually processed per-script and TPS based on
> it are now output explicitly in a separate line.
Okay for me as long as the patch is pushed to master branch.
A small comment on the comments in the patch: pgindent dislikes some
of the comment indentation styles. See attached pgindent.txt. Although
such a small defect would be fixed by committers when a patch gets
committed anyway, you might want to help committers beforehand.
Best reagards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp
*** /tmp/pgbench.c 2024-09-24 18:42:20.632311240 +0900
--- src/bin/pgbench/pgbench.c 2024-09-24 18:42:51.824299286 +0900
***************
*** 6392,6399 ****
}
/*
! * Remaining stats are nonsensical if we failed to execute any xacts
! * due to others than serialization or deadlock errors
*/
if (total_cnt <= 0)
return;
--- 6392,6399 ----
}
/*
! * Remaining stats are nonsensical if we failed to execute any xacts due
! * to others than serialization or deadlock errors
*/
if (total_cnt <= 0)
return;
***************
*** 6514,6520 ****
script_total_cnt));
}
! /* it can be non-zero only if max_tries is not equal to one */
if (max_tries != 1)
{
printf(" - number of transactions retried: " INT64_FORMAT " (%.3f%%)\n",
--- 6514,6523 ----
script_total_cnt));
}
! /*
! * it can be non-zero only if max_tries is not equal to
! * one
! */
if (max_tries != 1)
{
printf(" - number of transactions retried: " INT64_FORMAT " (%.3f%%)\n",