Re: Pgbench: remove synchronous prepare

From: Dmitrii Bondar <d(dot)bondar(at)postgrespro(dot)ru>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Pgbench: remove synchronous prepare
Date: 2026-03-02 11:35:05
Message-ID: d8b4e3b2-a21f-4989-9663-3689f0d4232b@postgrespro.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Add docs, fix a function number.

On 1/27/26 10:34 AM, Dmitrii Bondar wrote:
> Hi, Hackers!
>
> I was testing a connection pooler with pgbench and pgbench froze. I
> checked the traffic and noticed that pgbench just blocks the execution
> while it is waiting the response to the prepare command.
>
> To reproduce the problem, it is enough to run pgbouncer with the
> session pooling mode and use more clients than the pool size. With the
> pool size of 20:
>
> pgbench -h localhost -p 6432 --client=21 --jobs=1 -S -T 1000 -P 1
> postgres --protocol=prepared
>
> Pgbench with the extended protocol flag does not have this
> issue because pgbench sends the whole parse/bind/execute/sync packet
> sequence at once and waits for the result asynchronously. I suggest
> implementing this behavior for the prepared protocol too.
>
> I attached the pgbouncer configuration to reproduce the issue and the
> proposed fix. I prefer to add a new function to libpqfe instead of
> changing the existing behavior or adding a new state to pgbench.
> Although it is largely duplicated code, it looks to be as non-invasive
> as possible. Implementation and naming need to be discussed.
>
>
> Tests for pgbench passed. I made small changes to the expected output.
>
>
> Regards,
> Dmitrii Bondar.

Attachment Content-Type Size
0002-Remove-synchronous-prepare-from-pgbench.patch text/x-patch 7.4 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message David Geier 2026-03-02 12:04:55 Re: Use correct collation in pg_trgm
Previous Message Peter Eisentraut 2026-03-02 10:56:34 Re: Make copyObject work in C++