> 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",