postgresql/src/include/port
Tom Lane 44dfc9cd71 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.
2010-12-08 20:01:24 -05:00
..
win32 pgindent run for 8.2. 2006-10-04 00:30:14 +00:00
win32_msvc pgindent run for 8.2. 2006-10-04 00:30:14 +00:00
aix.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
bsdi.h Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
cygwin.h Rename DLLIMPORT macro to PGDLLIMPORT to avoid conflict with 2007-07-25 12:22:54 +00:00
darwin.h pgindent run for 8.2. 2006-10-04 00:30:14 +00:00
dgux.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
freebsd.h Add CVS tag lines to files that were lacking them. 2006-03-11 04:38:42 +00:00
hpux.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
irix.h Work around buggy strtod on (some versions of?) IRIX. Combination of 2006-10-05 01:40:45 +00:00
linux.h Force default wal_sync_method to be fdatasync on Linux. 2010-12-08 20:01:24 -05:00
netbsd.h pgindent run for 8.2. 2006-10-04 00:30:14 +00:00
nextstep.h Add CVS tag lines to files that were lacking them. 2006-03-11 04:38:42 +00:00
openbsd.h Add CVS tag lines to files that were lacking them. 2006-03-11 04:38:42 +00:00
osf.h Add CVS tag lines to files that were lacking them. 2006-03-11 04:38:42 +00:00
sco.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
solaris.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
sunos4.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
svr4.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
ultrix4.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
univel.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
unixware.h Now that core functionality is depending on autoconf's AC_C_BIGENDIAN to be 2007-04-06 05:36:51 +00:00
win32.h Force default wal_sync_method to be fdatasync on Linux. 2010-12-08 20:01:24 -05:00