> Running the attached test program shows on BSD/OS 4.3:
>
> write 0.000360
> write & fsync 0.001391
I think the "write & fsync" pays for the previous "write" test (same filename).
> write, close & fsync 0.001308
> open o_fsync, write 0.000924
I have tried to modify the program to more closely resemble WAL
writes (all writes to WAL are 8k), the file is usually already open,
and test larger (16k) transactions.
zeu@a82101002:~> test_sync1
write 0.000625
write & fsync 0.016748
write & fdatasync 0.006650
write, close & fsync 0.017084
write, close & fdatasync 0.006890
open o_dsync, write 0.015997
open o_dsync, one write 0.007128
For the last line xlog.c would need to be modified, but the measurements
seem to imply that it is only worth it on platforms that have O_DSYNC
but not fdatasync.
Andreas