Dear hackers,

> > So basically, while scanning from confirmed_flush we must ensure that
> > we find a first record as SHUTDOWN CHECKPOINT record at the same LSN,
> > and after that, we should not get any other WAL other than like you
> > said shutdown checkpoint, running_xacts.  That way we will ensure both
> > aspect that the confirmed flush LSN is at the shutdown checkpoint and
> > after that there is no real activity in the system.
> >
> 
> Right.
> 
> >  I think to me,
> > this seems like the best available option so far.
> >
> 
> Yeah, let's see if someone else has a different opinion or has a better idea.

Based on the recent discussion, I made a prototype which reads all WAL records
and verifies their type. A new upgrade function 
binary_upgrade_validate_wal_record_types_after_lsn()
does that. This function reads WALs from start_lsn (confirmed_flush), and 
returns
true if they can ignore. The type of ignored records are listed in [1].

Kindly Hou found that XLOG_HEAP2_PRUNE may be generated during the pg_upgrade
--check, so it was added to acceptable type.

[1]: 
https://www.postgresql.org/message-id/tyapr01mb58660273eacefc5bf256b133f5...@tyapr01mb5866.jpnprd01.prod.outlook.com

Best Regards,
Hayato Kuroda
FUJITSU LIMITED

Attachment: v37-0001-pg_upgrade-Allow-to-replicate-logical-replicatio.patch
Description: v37-0001-pg_upgrade-Allow-to-replicate-logical-replicatio.patch

Attachment: v37-0002-Reads-all-WAL-records-ahead-confirmed_flush_lsn.patch
Description: v37-0002-Reads-all-WAL-records-ahead-confirmed_flush_lsn.patch

Reply via email to