> Tatsuo Ishii wrote:
> > I noticed sync() is used in PostgreSQL.
> >
> > CHECKPOINT -> FlushBufferPool() -> smgrsync() -> mdsync() -> sync()
> >
> > 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.
?? I thought WAL files are synced by pg_fsync() (if needed).
--
Tatsuo Ishii