Re: pgbench: option delaying queries till connections establishment?
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Fabien COELHO <coelho@cri.ensmp.fr>
Cc: Marina Polyakova <m.polyakova@postgrespro.ru>, pgsql-hackers <pgsql-hackers@postgresql.org>, kuroda.hayato@fujitsu.com
Date: 2021-03-03T05:23:13Z
Lists: pgsql-hackers
On Sun, Jan 31, 2021 at 1:18 AM Fabien COELHO <coelho@cri.ensmp.fr> wrote: > I think it would be much more consistent to move all the thread complement > stuff there directly: Currently (v8) the windows implementation is in > pgbench and the MacOS implementation in port, which is quite messy. Hmm. Well this is totally subjective, but here's how I see this after thinking about it a bit more: macOS does actually have POSIX threads, except for this tiny missing piece, so it's OK to write a toy implementation that is reasonably conformant, and put it in there using the usual AC_REPLACE_FUNCS machinery. It will go away when Apple eventually adds a real one. Windows does not, and here we're writing a very partial toy implementation that is far from conformant. I think that's OK for pgbench's purposes, for now, but I'd prefer to keep it inside pgbench.c. I think at some point in the (hopefully not too distant) future, we'll start working on thread support for the backend, and then I think we'll probably come up with our own abstraction over Windows and POSIX threads, rather than trying to use POSIX API wrappers from Windows, so I don't really want this stuff in the port library. Does this make some kind of sense? > Attached is a patch set which does that. I cannot test it neither on > Windows nor on MacOS. Path 1 & 2 are really independent. No worries. For some reason I have a lot of computers; I'll try to get this (or rather a version with the Windows stuff moved back) passing on all of them soon, with the aim of making it committable.
Commits
-
Fix new pthread code to respect --disable-thread-safety.
- de91c3b976cf 14.0 landed
-
Add missing pthread_barrier_t.
- 44bf3d5083e1 14.0 landed
-
pgbench: Improve time logic.
- 547f04e7348b 14.0 landed
-
pgbench: Refactor thread portability support.
- b1d6a8f86813 14.0 landed
-
pgbench: Synchronize client threads.
- aeb57af8e640 14.0 landed
-
Fix bogus logic for skipping unnecessary partcollation dependencies.
- 84d514887f9c 12.0 cited