• T
    Per previous discussions, get rid of use of sync(2) in favor of · 9b178555
    Tom Lane 提交于
    explicitly fsync'ing every (non-temp) file we have written since the
    last checkpoint.  In the vast majority of cases, the burden of the
    fsyncs should fall on the bgwriter process not on backends.  (To this
    end, we assume that an fsync issued by the bgwriter will force out
    blocks written to the same file by other processes using other file
    descriptors.  Anyone have a problem with that?)  This makes the world
    safe for WIN32, which ain't even got sync(2), and really makes the world
    safe for Unixen as well, because sync(2) never had the semantics we need:
    it offers no way to wait for the requested I/O to finish.
    
    Along the way, fix a bug I recently introduced in xlog recovery:
    file truncation replay failed to clear bufmgr buffers for the dropped
    blocks, which could result in 'PANIC:  heap_delete_redo: no block'
    later on in xlog replay.
    9b178555
fd.h 2.8 KB