Re: Use durable_unlink for .ready and .done files for WAL segment removal
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: "Bossart, Nathan" <bossartn@amazon.com>
Cc: Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>
Date: 2018-11-27T21:19:05Z
Lists: pgsql-hackers
On Tue, Nov 27, 2018 at 08:43:06PM +0000, Bossart, Nathan wrote: > Don't we also need to check that errno is ENOENT here? Yep. > IIUC any time that the file does not exist, we will attempt to unlink > it. Regardless of whether unlinking fails or succeeds, we then > proceed to give up archiving for now, but it's not clear why. Perhaps > we should retry unlinking a number of times (like we do for > pgarch_archiveXlog()) when durable_unlink() fails and simply "break" > to move on to the next .ready file if durable_unlink() succeeds. Both suggestions sound reasonable to me. (durable_unlink is not called on HEAD in pgarch_archiveXlog). How about 3 retries with a in-between wait of 1s? That's consistent with what pgarch_ArchiverCopyLoop does, still I am not completely sure if we actually want to be consistent for the purpose of removing orphaned ready files. -- Michael
Commits
-
Ensure cleanup of orphan archive status files
- 6d8727f95e70 12.0 landed