While reviewing logical decoding of 2PC xacts work, I noticed that we need $SUBJECT [1]. Commit 1eb6d6527a [2] allowed to track replica origin replay progress for 2PC but it was not complete. It misses to properly track the progress for rollback prepared especially it missed to update the code for recovery. Additionally, we need to allow tracking it on subscriber nodes where wal_level might not be logical.
As noted in [1], without this the subscriber might again ask for rollback prepared lsn after restart. Attached patch addresses this problem. Thoughts? [1] - https://www.postgresql.org/message-id/CAA4eK1L3p4z%2B9wtK77MbdpkagR4GS2Y3r1Je7ZEvLQVF9GArfg%40mail.gmail.com [2] - commit 1eb6d6527aae264b3e0b9c95aa70bb7a594ad1cf Author: Simon Riggs <si...@2ndquadrant.com> Date: Wed Mar 28 17:42:50 2018 +0100 Store 2PC GID in commit/abort WAL recs for logical decoding Store GID of 2PC in commit/abort WAL records when wal_level = logical. This allows logical decoding to send the SAME gid to subscribers across restarts of logical replication. Track relica origin replay progress for 2PC. -- With Regards, Amit Kapila.
v1-0001-Track-replication-origin-progress-for-rollbacks.patch
Description: Binary data