On Wed, 2013-09-04 at 17:00 +0200, Andres Freund wrote:
> On 2013-09-04 07:57:15 -0700, Jeff Davis wrote:
> > XLogSaveBufferForHint() calls XLogCheckBuffer() but doesn't also look at
> > the full page writes setting (like in XLogInsert()). That means, if
> > checksums are enabled and full_page_writes is off, we'll still write
> > some full page images for checksums. I'd like to remedy that.
>
> I don't think that's really as easy as it sounds without removing the
> ability to do base backups with full_page_writes = off. The interlocking
> that would require makes things complex...
I didn't dig into that part yet. I was mostly distracted by the code to
support changing full_page_writes with SIGHUP.
One option would be to have XLogInsert return early if full_page_writes
is off, it's an XLOG_FPI record, and forcePageWrites is off.
> Personally I'd rather forbid enabling checkpoints in the combination
> with full_page_writes = off. That doesn't seem like a good idea to me
> and I am far from convinced it's actually going to work in all corner cases.
Hmm. It's good to be cautious when deploying on a less-common
configuration. However, I don't think it's a good idea to reject
seemingly valid combinations that are supposed to work due to a lack of
confidence in the review/testing process.
Might be an area warranting some further review and testing; I'll take a
look, but feel free to tell me if you can think of specific problem
areas.
Regards,Jeff Davis