pgsql: For cascading replication, wake physical and logical walsenders

Поиск
Список
Период
Сортировка
От Andres Freund
Тема pgsql: For cascading replication, wake physical and logical walsenders
Дата
Msg-id E1pl3ex-0020iq-Dm@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
For cascading replication, wake physical and logical walsenders separately

Physical walsenders can't send data until it's been flushed; logical
walsenders can't decode and send data until it's been applied. On the
standby, the WAL is flushed first, which will only wake up physical
walsenders; and then applied, which will only wake up logical
walsenders.

Previously, all walsenders were awakened when the WAL was flushed. That
was fine for logical walsenders on the primary; but on the standby the
flushed WAL would have been not applied yet, so logical walsenders were
awakened too early.

Per idea from Jeff Davis and Amit Kapila.

Author: "Drouvot, Bertrand" <bertranddrouvot.pg@gmail.com>
Reviewed-By: Jeff Davis <pgsql@j-davis.com>
Reviewed-By: Robert Haas <robertmhaas@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Discussion: https://postgr.es/m/CAA4eK1+zO5LUeisabX10c81LU-fWMKO4M9Wyg1cdkbW7Hqh6vQ@mail.gmail.com

Branch
------
master

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

Modified Files
--------------
src/backend/access/transam/xlog.c           |  6 ++---
src/backend/access/transam/xlogarchive.c    |  2 +-
src/backend/access/transam/xlogrecovery.c   | 37 +++++++++++++++++++-------
src/backend/replication/walreceiver.c       |  2 +-
src/backend/replication/walsender.c         | 41 ++++++++++++++++++++++++++---
src/include/replication/walsender.h         | 22 ++++++++--------
src/include/replication/walsender_private.h |  3 +++
7 files changed, 84 insertions(+), 29 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: pgsql: Handle logical slot conflicts on standby
Следующее
От: Andres Freund
Дата:
Сообщение: pgsql: TAP test for logical decoding on standby