mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
Default to wal_sync_method=fdatasync on FreeBSD.
FreeBSD 13 gained O_DSYNC, which would normally cause wal_sync_method to
choose open_datasync as its default value. That may not be a good
choice for all systems, and performs worse than fdatasync in some
scenarios. Let's preserve the existing default behavior for now.
Like commit 576477e73c
, which did the same for Linux, back-patch to all
supported releases.
Discussion: https://postgr.es/m/CA%2BhUKGLsAMXBQrCxCXoW-JsUYmdOL8ALYvaX%3DCrHqWxm-nWbGA%40mail.gmail.com
This commit is contained in:
parent
2c8b42b50d
commit
f900a79ecd
@ -2928,7 +2928,7 @@ include_dir 'conf.d'
|
||||
Not all of these choices are available on all platforms.
|
||||
The default is the first method in the above list that is supported
|
||||
by the platform, except that <literal>fdatasync</literal> is the default on
|
||||
Linux. The default is not necessarily ideal; it might be
|
||||
Linux and FreeBSD. The default is not necessarily ideal; it might be
|
||||
necessary to change this setting or other aspects of your system
|
||||
configuration in order to create a crash-safe configuration or
|
||||
achieve optimal performance.
|
||||
|
@ -206,7 +206,7 @@
|
||||
#wal_sync_method = fsync # the default is the first option
|
||||
# supported by the operating system:
|
||||
# open_datasync
|
||||
# fdatasync (default on Linux)
|
||||
# fdatasync (default on Linux and FreeBSD)
|
||||
# fsync
|
||||
# fsync_writethrough
|
||||
# open_sync
|
||||
|
@ -1 +1,10 @@
|
||||
/* src/include/port/freebsd.h */
|
||||
|
||||
/*
|
||||
* Set the default wal_sync_method to fdatasync. xlogdefs.h's normal rules
|
||||
* would prefer open_datasync on FreeBSD 13+, but that is not a good choice on
|
||||
* many systems.
|
||||
*/
|
||||
#ifdef HAVE_FDATASYNC
|
||||
#define PLATFORM_DEFAULT_SYNC_METHOD SYNC_METHOD_FDATASYNC
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user