Re: pgbench: option delaying queries till connections establishment?

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Marina Polyakova <m.polyakova@postgrespro.ru>, pgsql-hackers <pgsql-hackers@postgresql.org>, kuroda.hayato@fujitsu.com, David Rowley <dgrowleyml@gmail.com>
Date: 2021-03-13T08:08:31Z
Lists: pgsql-hackers
Hello Thomas,

>> David Rowley kindly tested this for me on Windows and told me how to
>> fix one of the macros that had incorrect error checking on that OS.
>> So here's a new version.  I'm planning to commit 0001 and 0002 soon,
>> if there are no objections.  0003 needs some more review.
>
> I made a few mostly cosmetic changes, pgindented and pushed all these patches.

Thanks a lot for pushing all that, and fixing issues raised by buildfarm 
animals pretty unexpected and strange failures…

I must say that I'm not a big fan of the macro-based all-in-capitals API 
for threads because it exposes some platform specific uglyness (eg 
THREAD_FUNC_CC) and it does not look much like clean C code when used. I 
liked the previous partial pthread implementation better, even if it was 
not the real thing, obviously.

ISTM that with the current approach threads are always used on Windows, 
i.e. pgbench does not comply to "ENABLE_THREAD_SAFETY" configuration on 
that platform. Not sure whether this is an issue that need to be 
addressed, though.

-- 
Fabien.

Commits

  1. Fix new pthread code to respect --disable-thread-safety.

  2. Add missing pthread_barrier_t.

  3. pgbench: Improve time logic.

  4. pgbench: Refactor thread portability support.

  5. pgbench: Synchronize client threads.

  6. Fix bogus logic for skipping unnecessary partcollation dependencies.