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

[EMAIL PROTECTED]:~> 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.  


Attachment: test_sync1.c
Description: test_sync1.c

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to