Refactored the code a bit along with fixes. Manually tested them on centos
& Ubuntu (the later has copy_file_range())

For the first patch, actually I have some concerns. My assumption is that
the target pg_data directory should be fsync-ed already. This should be
correct normally but there is one scenario: a cleanly-shutdown database’s
pgdata directory was copied to another directory, in this case the new pgdata
is not fsync-ed - I’m not sure if that exists in real production environment or 
not,
but even considering this we could still use the optimization for the case that
calls ensureCleanShutdown() since this ensures a pgdata fsync on the target.



Attachment: v2-0001-Fsync-the-affected-files-directories-only-in-pg_r.patch
Description: v2-0001-Fsync-the-affected-files-directories-only-in-pg_r.patch

Attachment: v2-0002-Use-copy_file_range-for-file-copying-in-pg_rewind.patch
Description: v2-0002-Use-copy_file_range-for-file-copying-in-pg_rewind.patch

Reply via email to