pgsql: Force default wal_sync_method to be fdatasync on Linux.
От | Tom Lane |
---|---|
Тема | pgsql: Force default wal_sync_method to be fdatasync on Linux. |
Дата | |
Msg-id | E1PQUtx-0006yF-Ce@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Force default wal_sync_method to be fdatasync on Linux. Recent versions of the Linux system header files cause xlogdefs.h to believe that open_datasync should be the default sync method, whereas formerly fdatasync was the default on Linux. open_datasync is a bad choice, first because it doesn't actually outperform fdatasync (in fact the reverse), and second because we try to use O_DIRECT with it, causing failures on certain filesystems (e.g., ext4 with data=journal option). This part of the patch is largely per a proposal from Marti Raudsepp. More extensive changes are likely to follow in HEAD, but this is as much change as we want to back-patch. Also clean up confusing code and incorrect documentation surrounding the fsync_writethrough option. Those changes shouldn't result in any actual behavioral change, but I chose to back-patch them anyway to keep the branches looking similar in this area. In 9.0 and HEAD, also do some copy-editing on the WAL Reliability documentation section. Back-patch to all supported branches, since any of them might get used on modern Linux versions. Branch ------ REL9_0_STABLE Details ------- http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=87eadd7e3d6f5581d5b4cb8083212a323050e388 Modified Files -------------- doc/src/sgml/config.sgml | 22 +++--- doc/src/sgml/wal.sgml | 120 ++++++++++++++++--------- src/backend/storage/file/fd.c | 9 +- src/backend/utils/misc/postgresql.conf.sample | 2 +- src/include/access/xlogdefs.h | 6 +- src/include/port/linux.h | 8 ++ src/include/port/win32.h | 14 ++- 7 files changed, 114 insertions(+), 67 deletions(-)
В списке pgsql-committers по дате отправления: