> > You are going to kernel call/yield anyway to fsync, so why > > not try and if someone does the fsync, we don't need to do it. > > I am suggesting re-checking the need for fsync after the return > > from sleep(0). > > It might make more sense to keep a private copy of the last time > the file was modified per-backend by that particular backend and > a timestamp of the last fsync shared globally so one can forgo the > fsync if "it hasn't been dirtied by me since the last fsync" > > This would provide a rendevous point for the fsync call although > cost more as one would need to periodically call gettimeofday to > set the modified by me timestamp as well as the post-fsync shared > timestamp. Already made, but without timestamps. WAL maintains last byte of log written/fsynced in shmem, so XLogFlush(_last_byte_to_be_flushed_) will do nothing if data are already on disk. Vadim