Re: PATCH: Batch/pipelining support for libpq
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Craig Ringer <craig@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Manuel Kniep <m.kniep@web.de>, "fujita.etsuro@lab.ntt.co.jp" <fujita.etsuro@lab.ntt.co.jp>
Date: 2016-05-23T16:00:44Z
Lists: pgsql-hackers
On Mon, May 23, 2016 at 8:50 AM, Andres Freund <andres@anarazel.de> wrote: > On 2016-05-23 17:19:09 +0800, Craig Ringer wrote: >> Following on from the foreign table batch inserts thread[1], here's a patch >> to add support for pipelining queries into asynchronous batches in libpq. > > Yay! >> I'm measuring 300x (not %) performance improvements doing batches on >> servers over the Internet, so this seems pretty worthwhile. It turned out >> to be way less invasive than I expected too. > > yay^2. I'll follow this mood. Yeha. >> (I intentionally didn't add any way for clients to annotate each work-item >> in a batch with their own private data. I think that'd be really useful and >> would make implementing clients easier, but should be a separate patch). >> >> This should be very useful for optimising FDWs, Postgres-XC, etc. > > And optimizing normal clients. > > Not easy, but I'd be very curious how much psql's performance improves > when replaying a .sql style dump, and replaying from a !tty fd, after > hacking it up to use the batch API. Did you consider the use of simple_list.c instead of introducing a new mimic as PGcommandQueueEntry? It would be cool avoiding adding new list emulations on frontends. -- Michael
Commits
-
Add libpq pipeline mode support to pgbench
- 9aa491abbf07 14.0 landed
-
Implement pipeline mode in libpq
- acb7e4eb6b1c 14.0 landed