Greg Stark <gsstark@mit.edu> writes:
> Tom Lane <tgl@sss.pgh.pa.us> writes:
>> The main problem with this is knowing which files need to be fsync'd.
> Why could the postmaster not just fsync *every* file?
You want to find, open, and fsync() every file in the database cluster
for every checkpoint? Sounds like a non-starter to me. In typical
situations I'd expect there to be lots of files that have no writes
during any given checkpoint interval (system catalogs for instance).
> I'm assuming fsync syncs writes issued by other processes on the same file,
> which isn't necessarily true though.
It was already pointed out that we can't rely on that assumption.
> Or using aio write ahead as much as you want and then just make checkpoint
> block until all the writes are completed. You don't actually need to rush them
> at all, just know when they're done.
If the objective is to avoid an i/o storm, I don't think this does it.
The system could easily delay most of the writes until the next syncer()
pass.
regards, tom lane