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.
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера