> > So seems we can use O_DSYNC without losing log write performance
> > comparing with write() + fsync. Though, we didn't tested write() +
> > fdatasync() yet...
>
> Good point, we should check fdatasync() too --- although I have no
> machines where it's different from fsync().
I've tested it on Solaris - not better than O_DSYNC (expected, taking
in account that O_DSYNC results don't depend on block counts).
Ok, I've made changes in xlog.c and run tests: 50 clients inserted
(int4, text[1-256]) into 50 tables,
-B 16384, -wal_buffers 256, -wal_files 0.
FSYNC: 257tps
O_DSYNC: 333tps
Just(?) 30% faster, -:(
But I had no ability to place log on separate disk, yet...
Vadim