Re: Refactor pg_rewind code and make it work against a standby
Heikki Linnakangas <hlinnaka@iki.fi>
From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Andres Freund <andres@anarazel.de>
Cc: Tom Lane <tgl@sss.pgh.pa.us>,
Soumyadeep Chakraborty <soumyadeep2007@gmail.com>,
Kyotaro Horiguchi <horikyota.ntt@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-11-20T21:09:34Z
Lists: pgsql-hackers
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
Commits
-
Make pg_rewind test case more stable.
- c71f9a094b32 14.0 landed
-
Fix timing issue in pg_rewind test.
- 39f9f04b5784 14.0 landed
-
Allow pg_rewind to use a standby server as the source system.
- 9c4f5192f69e 14.0 landed
-
pg_rewind: Refactor the abstraction to fetch from local/libpq source.
- 37d2ff380312 14.0 landed
-
pg_rewind: Replace the hybrid list+array data structure with simplehash.
- f81e97d0475c 14.0 landed
-
Refactor pg_rewind for more clear decision making.
- eb00f1d4bf96 14.0 landed
-
pg_rewind: Move syncTargetDirectory() to file_ops.c
- ffb4e27e9c5e 14.0 landed