Re: PATCH: Batch/pipelining support for libpq
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Craig Ringer <craig@2ndquadrant.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Michael Paquier <michael.paquier@gmail.com>, Manuel Kniep <m.kniep@web.de>, "fujita.etsuro@lab.ntt.co.jp" <fujita.etsuro@lab.ntt.co.jp>
Date: 2016-05-23T15:50:02Z
Lists: pgsql-hackers
Hi, On 2016-05-23 17:19:09 +0800, Craig Ringer wrote: > Hi all > 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 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. - Andres
Commits
-
Add libpq pipeline mode support to pgbench
- 9aa491abbf07 14.0 landed
-
Implement pipeline mode in libpq
- acb7e4eb6b1c 14.0 landed