At Tue, 31 Mar 2020 16:59:05 -0300, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote in > On 2020-Mar-31, Alvaro Herrera wrote: > > > On 2020-Mar-31, Alvaro Herrera wrote: > > > > > I'm not sure if I explained my proposal clearly. What if > > > XLogGetLastRemovedSegno returning zero means that every segment is > > > valid? We don't need to scan pg_xlog at all. > > > > I mean this: > > [v21 does it that way. Your typo fixes are included, but not the > LastRemoved stuff being discussed here. I also edited the shortdesc in > guc.c to better match {min,max}_wal_size.] > > Hmm ... but if the user runs pg_resetwal to remove WAL segments, then > this will work badly for a time (until a segment is removed next). I'm > not very worried for that scenario, since surely the user will have to > reclone any standbys anyway. I think your v20 behaves better in that > case. But I'm not sure we should have that code to cater only to that > case ... seems to me that it will go untested 99.999% of the time.
I feel the same. If we allow bogus status or "unkown" status before the first checkpoint, we don't need to scan the directory. > Maybe you're aware of some other cases where lastRemovedSegNo is not > correct for the purposes of this feature? The cases of archive-failure (false "removed") and change of max_slot_wal_keep_size(false "normal/kept") mentioned in another mail. > I pushed the silly test_decoding test adjustment to get it out of the > way. > > /me tries to figure out KeepLogSeg next Thanks. regards. -- Kyotaro Horiguchi NTT Open Source Software Center