From: | Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> |
---|---|
To: | nathandbossart(at)gmail(dot)com |
Cc: | andres(at)anarazel(dot)de, bharath(dot)rupireddyforpostgres(at)gmail(dot)com, satyanarlapuram(at)gmail(dot)com, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Allow async standbys wait for sync replication |
Date: | 2022-03-14 02:30:02 |
Message-ID: | 20220314.113002.1607014104756351937.horikyota.ntt@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
At Sat, 12 Mar 2022 14:33:32 -0800, Nathan Bossart <nathandbossart(at)gmail(dot)com> wrote in
> On Tue, Mar 08, 2022 at 06:01:23PM -0800, Andres Freund wrote:
> > To me it's architecturally the completely wrong direction. We should move in
> > the *other* direction, i.e. allow WAL to be sent to standbys before the
> > primary has finished flushing it locally. Which requires similar
> > infrastructure to what we're discussing here.
>
> I think this is a good point. After all, WALRead() has the following
> comment:
>
> * XXX probably this should be improved to suck data directly from the
> * WAL buffers when possible.
>
> Once you have all the infrastructure for that, holding back WAL replay on
> async standbys based on synchronous replication might be relatively easy.
That is, (as my understanding) async standbys are required to allow
overwriting existing unreplayed records after reconnection. But,
putting aside how to remember that LSN, if that happens at a segment
boundary, the async replica may run into the similar situation with
the missing-contrecord case. But standby cannot insert any original
record to get out from that situation.
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center
From | Date | Subject | |
---|---|---|---|
Next Message | Kyotaro Horiguchi | 2022-03-14 02:41:55 | Re: Allow async standbys wait for sync replication |
Previous Message | Andres Freund | 2022-03-14 02:17:10 | Re: On login trigger: take three |