On Fri, Oct 30, 2020 at 11:24 AM PG Doc comments form <nore...@postgresql.org> wrote: > The following documentation comment has been logged on the website: > > Page: https://www.postgresql.org/docs/13/runtime-config-resource.html > Description: > > https://www.postgresql.org/docs/13/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-BACKGROUND-WRITER > > says: > > "There is a separate server process called the background writer, whose > function is to issue writes of “dirty” (new or modified) shared buffers. It > writes shared buffers so server processes handling user queries seldom or > never need to wait for a write to occur." > > It's not clear what "wait for a write to occur" means: a write() syscall or > an fsync() syscall?
It means pwrite(). That could block if your kernel cache is swamped, but hopefully it just copies the data into the kernel and returns. There is an fsync() call, but it's usually queued up for handling by the checkpointer process some time later.