Re: [HACKERS] pgbench: faster version of tpcb-like transaction - Mailing list pgsql-hackers

From Fabien COELHO
Subject Re: [HACKERS] pgbench: faster version of tpcb-like transaction
Date
Msg-id alpine.DEB.2.20.1708270817430.18068@lancre
Whole thread Raw
In response to [HACKERS] pgbench: faster version of tpcb-like transaction  (Jeff Janes <jeff.janes@gmail.com>)
Responses Re: [HACKERS] pgbench: faster version of tpcb-like transaction
List pgsql-hackers
About the patch:

I'm generally in favor of providing more options to pgbench, especially if 
it can give optimization ideas to the performance conscious user.

I think that the name should be "tpcb-like-plfunc": the script does not 
implement tpcb per spec, and such a function could be written in another 
language with some performance benefit, or not.

Maybe that mean to relax the prefix condition to "take the first matching 
name" when prefix are used.

If you are reimplementing the transaction anyway, you could consider using 
UPDATE RETURNING instead of SELECT to get the balance. On the other hand 
the doc says that the "steps" are put in a PL function, so maybe it should 
reflect the original script.

I'm surprised by:
  "select * from pgbench_transaction(:aid, :bid, :tid, :delta);\n"

Why not simply:
    "select pgbench_transaction(:aid, :bid, :tid, :delta);\n"

I would suggest to use a more precise function name, in case other 
functions are thought of. Maybe "pgbench_tpcb_like_plfunc".

I would suggest to indent better the PL/function and put keywords and 
types in capital, and add explicitely the properties of the function (eg 
STRICT, VOLATILE?).

There is a spurious space at the end of the executeStatement call line.

The patch potentially interacts with other patches in the long and 
slow queue...

As usual with pgbench there are no regression tests.

-- 
Fabien.



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: [HACKERS] More replication race conditions
Next
From: Pavel Stehule
Date:
Subject: Re: [HACKERS] type cache for concat functions