>> 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

Reply via email to