Re: [bug fix] pg_rewind takes long time because it mistakenly copies data files
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Cc: "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2018-02-26T09:24:02Z
Lists: pgsql-hackers
On Mon, Feb 26, 2018 at 08:13:02AM +0000, Tsunakawa, Takayuki wrote: > From: Michael Paquier [mailto:michael@paquier.xyz] >> Your patch is able to fix that. I have also checked that after diverging >> the promoted server with more data and inserting data on the old primary >> then the correct set of blocks from the tablespace is fetched as well by >> pg_rewind. This patch also behaves correctly when creating a new relation >> on the promoted server as it copies the whole relation. In short your patch >> looks good to me. > > How quick, I was surprised. Thank you so much! I'd be glad if you could be the reviewer in CF: > > https://commitfest.postgresql.org/17/1542/ Sure. >> Creating a test case for this patch would be nice, however this needs a >> bit of work so as the tablespace map can be used with pg_basebackup and >> PostgresNode.pm (or use raw pg_basebackup commands in pg_rewind tests): >> - PostgresNode::init_from_backup needs to be able to understand extra >> options given by caller for pg_basebackup. >> - RewindTest::create_standby should be extended with extra arguments given >> for previous extension. >> :( > > That sounds difficult from your way of saying... but this may be a > good opportunity to look into the TAP tests. Anything like that would be work only for HEAD I think as that's a bit of refactoring. And indeed it could give you a good introduction to the TAP facility. -- Michael
Commits
-
Fix pg_rewind to handle relation data files in tablespaces properly.
- cb5c141edac5 9.5.13 landed
- 7aba4f23f5b7 9.6.9 landed
- bca696ab0bff 10.4 landed
- 2f3e2340cd1b 11.0 landed