Hi,
Fabien asked me to post a new version of the checkpoint flushing patch
series. While this isn't entirely ready for commit, I think we're
getting closer.
I don't want to post a full series right now, but my working state is
available on
http://git.postgresql.org/gitweb/?p=users/andresfreund/postgres.git;a=shortlog;h=refs/heads/checkpoint-flush
git://git.postgresql.org/git/users/andresfreund/postgres.git checkpoint-flush
The main changes are that:
1) the significant performance regressions I saw are addressed by changing the wal writer flushing logic
2) The flushing API moved up a couple layers, and now deals with buffer tags, rather than the physical files
3) Writes from checkpoints, bgwriter and files are flushed, configurable by individual GUCs. Without that I still saw
thespiked in a lot of circumstances.
There's also a more experimental reimplementation of bgwriter, but I'm
not sure it's realistic to polish that up within the constraints of 9.6.
Regards,
Andres