mirror of
https://github.com/postgres/postgres.git
synced 2025-06-16 06:01:02 +03: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:
@ -2928,7 +2928,7 @@ include_dir 'conf.d'
|
|||||||
Not all of these choices are available on all platforms.
|
Not all of these choices are available on all platforms.
|
||||||
The default is the first method in the above list that is supported
|
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
|
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
|
necessary to change this setting or other aspects of your system
|
||||||
configuration in order to create a crash-safe configuration or
|
configuration in order to create a crash-safe configuration or
|
||||||
achieve optimal performance.
|
achieve optimal performance.
|
||||||
|
@ -206,7 +206,7 @@
|
|||||||
#wal_sync_method = fsync # the default is the first option
|
#wal_sync_method = fsync # the default is the first option
|
||||||
# supported by the operating system:
|
# supported by the operating system:
|
||||||
# open_datasync
|
# open_datasync
|
||||||
# fdatasync (default on Linux)
|
# fdatasync (default on Linux and FreeBSD)
|
||||||
# fsync
|
# fsync
|
||||||
# fsync_writethrough
|
# fsync_writethrough
|
||||||
# open_sync
|
# open_sync
|
||||||
|
@ -1 +1,10 @@
|
|||||||
/* src/include/port/freebsd.h */
|
/* 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
|
||||||
|
Reference in New Issue
Block a user