Re: pgsql: Add new replication mode synchronous_commit = 'remote_apply'.

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Robert Haas <rhaas(at)postgresql(dot)org>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Add new replication mode synchronous_commit = 'remote_apply'.
Date: 2016-03-30 01:37:17
Message-ID: CAB7nPqSXJQaDinjHE_Za8Odxr0TZJpetarDJM2mvnHLsoU2_Pg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

On Wed, Mar 30, 2016 at 10:31 AM, Robert Haas <rhaas(at)postgresql(dot)org> wrote:
> Add new replication mode synchronous_commit = 'remote_apply'.
>
> In this mode, the master waits for the transaction to be applied on
> the remote side, not just written to disk. That means that you can
> count on a transaction started on the standby to see all commits
> previously acknowledged by the master.
>
> To make this work, the standby sends a reply after replaying each
> commit record generated with synchronous_commit >= 'remote_apply'.
> This introduces a small inefficiency: the extra replies will be sent
> even by standbys that aren't the current synchronous standby. But
> previously-existing synchronous_commit levels make no attempt at all
> to optimize which replies are sent based on what the primary cares
> about, so this is no worse, and at least avoids any extra replies for
> people not using the feature at all.
>
> Thomas Munro, reviewed by Michael Paquier and by me. Some additional
> tweaks by me.

The commit message does not directly mention that the spec of
walrcv_receive has been changed in a backward-incompatible way so as
the wait control can be done with a latch directly in walreceiver.c
and not in libpqwalreceiver.c. That's not worth a mention in the
release notes as this is really low-level and compilation on any code
using this hook would simply fail on 9.6, so I am just mentioning it
for the sake of the archives.
--
Michael

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2016-03-30 01:38:54 pgsql: Remove TZ environment-variable entry from postgres reference pag
Previous Message Robert Haas 2016-03-30 01:31:43 pgsql: Add new replication mode synchronous_commit = 'remote_apply'.