>> One point that I no longer recall the reasoning behind is that xlog.c >> doesn't think O_SYNC is a preferable default over fsync. > >For larger (>8k) transactions O_SYNC|O_DIRECT is only good >with the recent >pending patch to group WAL writes together. The fsync method >gives the OS a >chance to do the grouping. (Of course it does not matter if >you have small >tx < 8k WAL)
This would be true for fdatasync() but not for fsync(), I think. On win32 (which started this discussion, fsync will sync the directory entry as well, which will lead to *at least* two seeks on the disk. Writing two blocks after each other to an O_SYNC opened file should give exactly two seeks. Of course, this only moves the breakpoint up to n blocks, where n > 2 (3 or 4 depending on how many seeks the filesystem will require). //Magnus ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org