Re: should frontend tools use syncfs() ?
Nathan Bossart <nathandbossart@gmail.com>
From: Nathan Bossart <nathandbossart@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Justin Pryzby <pryzby@telsasoft.com>, Thomas Munro <thomas.munro@gmail.com>, David Steele <david@pgmasters.net>, Fujii Masao <masao.fujii@oss.nttdata.com>, Bruce Momjian <bruce@momjian.us>, Tom Lane <tgl@sss.pgh.pa.us>, Michael Brown <michael.brown@discourse.org>, pgsql-hackers@postgresql.org
Date: 2023-08-31T15:48:58Z
Lists: pgsql-hackers
Attachments
- v8-0001-move-PG_TEMP_FILE-macros-to-file_utils.h.patch (text/x-diff)
On Thu, Aug 31, 2023 at 02:30:33PM +0900, Michael Paquier wrote: > - Should we have some regression tests? We should only need one test > in one of the binaries to be able to stress the new code paths of > file_utils.c with syncfs. The cheapest one may be pg_dump with a > dump in directory format? Note that we have tests there that depend > on lz4 or gzip existing, which are conditional. I added one for initdb in v8. > - Perhaps 0002 should be split into two parts? The first patch could > introduce DataDirSyncMethod in file_utils.h with the new routines in > file_utils.h (including syncfs support), and the second patch would > plug the new option to all the binaries. In the first patch, I would > hardcode DATA_DIR_SYNC_METHOD_FSYNC. Ha, I was just thinking about this, too. I actually split it into 3 patches. The first adds DataDirSyncMethod and uses it for recovery_init_sync_method. The second adds syncfs() support in file_utils.c. And the third adds the ability to specify syncfs in the frontend utilities. WDYT? -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
Commits
-
Adjust documentation for syncfs().
- 44a4cca9913b 17.0 landed
-
Improve the naming in wal_sync_method code.
- 8d140c58229d 17.0 landed
-
Allow using syncfs() in frontend utilities.
- 8c16ad3b4329 17.0 landed
-
Add support for syncfs() in frontend support functions.
- cccc6cdeb32f 17.0 landed
-
Make enum for sync methods available to frontend code.
- 3ed19567198d 17.0 landed
-
Move PG_TEMP_FILE* macros to file_utils.h.
- f39b265808bd 17.0 landed
-
Change client-side fsync_fname() to report errors fatally
- 1420617b14e2 13.0 cited