pgsql: Implement pipeline mode in libpq - Mailing list pgsql-committers

From Alvaro Herrera
Subject pgsql: Implement pipeline mode in libpq
Date
Msg-id E1lLudE-0007Jb-Pz@gemulon.postgresql.org
Whole thread Raw
Responses Re: pgsql: Implement pipeline mode in libpq  (David Rowley <dgrowleyml@gmail.com>)
List pgsql-committers
Implement pipeline mode in libpq

Pipeline mode in libpq lets an application avoid the Sync messages in
the FE/BE protocol that are implicit in the old libpq API after each
query.  The application can then insert Sync at its leisure with a new
libpq function PQpipelineSync.  This can lead to substantial reductions
in query latency.

Co-authored-by: Craig Ringer <craig.ringer@enterprisedb.com>
Co-authored-by: Matthieu Garrigues <matthieu.garrigues@gmail.com>
Co-authored-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Reviewed-by: Andres Freund <andres@anarazel.de>
Reviewed-by: Aya Iwata <iwata.aya@jp.fujitsu.com>
Reviewed-by: Daniel Vérité <daniel@manitou-mail.org>
Reviewed-by: David G. Johnston <david.g.johnston@gmail.com>
Reviewed-by: Justin Pryzby <pryzby@telsasoft.com>
Reviewed-by: Kirk Jamison <k.jamison@fujitsu.com>
Reviewed-by: Michael Paquier <michael.paquier@gmail.com>
Reviewed-by: Nikhil Sontakke <nikhils@2ndquadrant.com>
Reviewed-by: Vaishnavi Prabakaran <VaishnaviP@fast.au.fujitsu.com>
Reviewed-by: Zhihong Yu <zyu@yugabyte.com>

Discussion: https://postgr.es/m/CAMsr+YFUjJytRyV4J-16bEoiZyH=4nj+sQ7JP9ajwz=B4dMMZw@mail.gmail.com
Discussion: https://postgr.es/m/CAJkzx4T5E-2cQe3dtv2R78dYFvz+in8PY7A8MArvLhs_pg75gg@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/acb7e4eb6b1c614c68a62fb3a6a5bba1af0a2659

Modified Files
--------------
doc/src/sgml/libpq.sgml                            |  522 +++++++-
doc/src/sgml/lobj.sgml                             |    4 +
.../libpqwalreceiver/libpqwalreceiver.c            |    6 +
src/bin/pg_amcheck/pg_amcheck.c                    |    2 +
src/interfaces/libpq/exports.txt                   |    4 +
src/interfaces/libpq/fe-connect.c                  |   37 +-
src/interfaces/libpq/fe-exec.c                     |  717 +++++++++--
src/interfaces/libpq/fe-protocol3.c                |   77 +-
src/interfaces/libpq/libpq-fe.h                    |   21 +-
src/interfaces/libpq/libpq-int.h                   |   60 +-
src/test/modules/Makefile                          |    1 +
src/test/modules/libpq_pipeline/.gitignore         |    5 +
src/test/modules/libpq_pipeline/Makefile           |   20 +
src/test/modules/libpq_pipeline/README             |    1 +
src/test/modules/libpq_pipeline/libpq_pipeline.c   | 1303 ++++++++++++++++++++
.../modules/libpq_pipeline/t/001_libpq_pipeline.pl |   28 +
src/tools/msvc/Mkvcbuild.pm                        |    9 +-
src/tools/pgindent/typedefs.list                   |    2 +
18 files changed, 2706 insertions(+), 113 deletions(-)


pgsql-committers by date:

Previous
From: Fujii Masao
Date:
Subject: pgsql: Fix psql's ON_ERROR_ROLLBACK so that it handles COMMIT AND CHAIN
Next
From: Alvaro Herrera
Date:
Subject: pgsql: Add libpq pipeline mode support to pgbench