Re: [BUGS] Bug in Physical Replication Slots (at least 9.5)?
Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
From: Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
To: michael.paquier@gmail.com
Cc: masao.fujii@gmail.com, jdnelson@dyn.com, pgsql-hackers@postgresql.org,
pgsql-bugs@postgresql.org
Date: 2017-02-03T03:16:49Z
Lists: pgsql-bugs, pgsql-hackers
Attachments
- 0001-Fix-a-bug-of-physical-replication-slot.patch (text/x-patch)
At Thu, 2 Feb 2017 15:34:33 +0900, Michael Paquier <michael.paquier@gmail.com> wrote in <CAB7nPqQ05G15JooRMEONgPkW0osot77yaFAUF9_6Q8G+v+2+xg@mail.gmail.com> > On Thu, Feb 2, 2017 at 1:26 AM, Fujii Masao <masao.fujii@gmail.com> wrote: > > I'm afraid that many WAL segments would start with a continuation record > > when there are the workload of short transactions (e.g., by pgbench), and > > which would make restart_lsn go behind very much. No? > > I don't quite understand this argument. Even if there are many small > transactions, that would cause restart_lsn to just be late by one > segment, all the time. > > > The discussion on this thread just makes me think that restart_lsn should > > indicate the replay location instead of flush location. This seems safer. > > That would penalize WAL retention on the primary with standbys using > recovery_min_apply_delay and a slot for example... > > We can attempt to address this problem two ways. The patch proposed > (ugly btw and there are two typos!) is doing it in the WAL sender by > not making restart_lsn jump to the next segment if a continuation > record is found. Sorry for the ug..:p Anyway, the previous version was not the latest. The attached one is the revised version. (Sorry, I haven't find a typo by myself..) > Or we could have the standby request for the next > segment instead if the record it wants to replay from is at a boundary > and that it locally has the beginning of the record, and it has it > because it already confirmed to the primary that it flushed to the > next segment. Not sure which fix is better though. We could it as I said, with some refactoring ReadRecord involving reader plugin mechanism.. regards, -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
Fix scenario where streaming standby gets stuck at a continuation record.
- c06380e97692 9.4.18 landed
- 4ea8f7d4553e 9.5.13 landed
- 7b7521d65772 9.6.9 landed
- ca572db22f62 10.4 landed
- 066871980183 11.0 landed