On 20/11/2020 19:14, Andres Freund wrote:
Hi,
On 2020-11-20 16:19:03 +0200, Heikki Linnakangas wrote:
Pushed a fix similar to your patch, but I put the wait_for_catchup() before
running pg_rewind. The point of inserting the 'in A, after C was promoted'
row is that it's present in B when pg_rewind runs.
Hm - don't we possibly need *both*? Since post pg_rewind recovery starts
at the previous checkpoint, it's quite possible for C to get ready to
answer queries before that record has been replayed?
No, C will not reach consistent state until all the WAL in the source
system has been replayed. pg_rewind will set minRecoveryPoint to the
minRecoveryPoint of the source system, after copying all the files. (Or
its insert point, if it's not a standby server, but in this case it is).
Same as when taking an online backup.
- Heikki