Re: pgbench: Improve result outputs related to failed transactinos

From: Tatsuo Ishii <ishii(at)postgresql(dot)org>
To: nagata(at)sraoss(dot)co(dot)jp
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: pgbench: Improve result outputs related to failed transactinos
Date: 2024-10-09 01:53:50
Message-ID: 20241009.105350.2172833576849448472.ishii@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>> > 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.
>
> Thank you for your comments.
> I've attached a updated patch that I applied pgindent.

The patch looks good to me. If there's no objection, I will commit and
push the patch to master branch. I don't think this should be
back-patched since it modifies the user visible behavior of pgbench.

Best reagards,
--
Tatsuo Ishii
SRA OSS K.K.
English: http://www.sraoss.co.jp/index_en/
Japanese:http://www.sraoss.co.jp

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message jian he 2024-10-09 02:01:53 Re: overflow bug for inhcounts
Previous Message Junwang Zhao 2024-10-09 01:51:31 Re: Support specify tablespace for each merged/split partition