Re: sync() - Mailing list pgsql-hackers

From Tom Lane
Subject Re: sync()
Date
Msg-id 1771.1042009366@sss.pgh.pa.us
Whole thread Raw
In response to Re: sync()  (Tatsuo Ishii <t-ishii@sra.co.jp>)
Responses Re: sync()  (Tatsuo Ishii <t-ishii@sra.co.jp>)
Re: sync()  (Kevin Brown <kevin@sysexperts.com>)
List pgsql-hackers
Tatsuo Ishii <t-ishii@sra.co.jp> writes:
> I'm just wondering why we do not use fsync() to flush data/index
> pages.

There isn't any efficient way to do that AFAICS.  The process that wants
to do the checkpoint hasn't got any way to know just which files need to
be sync'd.  Even if it did know, it's not clear to me that we can
portably assume that process A issuing an fsync on a file descriptor F
it's opened for file X will force to disk previous writes issued against
the same physical file X by a different process B using a different file
descriptor G.

sync() is surely overkill, in that it writes out dirty kernel buffers
that might have nothing at all to do with Postgres.  But I don't see how
to do better.
        regards, tom lane


pgsql-hackers by date:

Previous
From: "Christopher Kings-Lynne"
Date:
Subject: psql and readline
Next
From: Tatsuo Ishii
Date:
Subject: Re: sync()