Allow pg_rewind to use a standby server as the source system.
Using a hot standby server as the source has not been possible, because
pg_rewind creates a temporary table in the source system, to hold the
list of file ranges that need to be fetched. Refactor it to queue up the
file fetch requests in pg_rewind's memory, so that the temporary table
is no longer needed.
Also update the logic to compute 'minRecoveryPoint' correctly, when the
source is a standby server.
Reviewed-by: Kyotaro Horiguchi, Soumyadeep Chakraborty
Discussion: https://www.postgresql.org/message-id/0c5b3783-af52-3ee5-f8fa-6e794061f70d%40iki.fi
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/9c4f5192f69ed16c99e0d079f0b5faebd7bad212
Modified Files
--------------
doc/src/sgml/ref/pg_rewind.sgml | 2 +-
src/bin/pg_rewind/libpq_source.c | 287 +++++++++++++++++++++---------
src/bin/pg_rewind/pg_rewind.c | 97 ++++++++--
src/bin/pg_rewind/t/003_extrafiles.pl | 26 ++-
src/bin/pg_rewind/t/007_standby_source.pl | 174 ++++++++++++++++++
5 files changed, 481 insertions(+), 105 deletions(-)