diff options
-rw-r--r-- | doc/src/sgml/config.sgml | 2 | ||||
-rw-r--r-- | src/backend/utils/misc/postgresql.conf.sample | 2 | ||||
-rw-r--r-- | src/include/port/freebsd.h | 9 |
3 files changed, 11 insertions, 2 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index eaa7c26981a..ffe9f2d2877 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -2772,7 +2772,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. diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index 451dfca14f1..c7571ce0f65 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -200,7 +200,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 diff --git a/src/include/port/freebsd.h b/src/include/port/freebsd.h index 2e36d3da4f4..2e2e749a6b6 100644 --- a/src/include/port/freebsd.h +++ b/src/include/port/freebsd.h @@ -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 |