Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> Tatsuo Ishii wrote:
>> Can someone tell me why we need sync() here?
> As part of checkpoint, we discard some WAL files. To do that, we must
> first be sure that all the dirty buffers we have written to the kernel
> are actually on the disk. That is why the sync() is required.
What we really need is something better than sync(), viz flush all dirty
buffers to disk *and* wait till they're written. But sync() and sleep
for awhile is the closest portable approximation.
regards, tom lane