Re: Pgbench: remove synchronous prepare
| От | Dmitrii Bondar |
|---|---|
| Тема | Re: Pgbench: remove synchronous prepare |
| Дата | |
| Msg-id | d8b4e3b2-a21f-4989-9663-3689f0d4232b@postgrespro.ru обсуждение исходный текст |
| Ответ на | Pgbench: remove synchronous prepare (Dmitrii Bondar <d.bondar@postgrespro.ru>) |
| Список | 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.
Вложения
В списке pgsql-hackers по дате отправления: