Re: sync()
Kevin Brown <kevin@sysexperts.com>
From: Kevin Brown <kevin@sysexperts.com>
To: pgsql-hackers@postgresql.org
Date: 2003-02-01T16:15:17Z
Lists: pgsql-hackers
Kurt Roeckx wrote: > [SIO] [Option Start] If _POSIX_SYNCHRONIZED_IO is defined, the > fsync() function shall force all currently queued I/O operations > associated with the file indicated by file descriptor fildes to the > synchronized I/O completion state. All I/O operations shall be > completed as defined for synchronized I/O file integrity > completion. [Option End] Hmmm....so if I consistently want these semantics out of fsync() I have to #define _POSIX_SYNCHRONIZED_IO? Or does the above mean that you'll get those semantics if and only if the OS defines the above for you? I certainly hope the former is the case, because the newer semantics which you mentioned in the section I cut don't do us any good at all and we can't rely on the OS to define something like _POSIX_SYNCHRONIZED_IO for us... Being able to open a file, do an fsync(), and have the kernel actually write all the buffers associated with that file to disk could be, I think, a significant performance win compared with the "flush everything known to the kernel" approach we take now, at least on systems that do something other than PostgreSQL... -- Kevin Brown kevin@sysexperts.com