On Fri, 2013-04-05 at 15:09 +0200, Andres Freund wrote:
> How does the attached version look? I verified that it survives
> recovery, but not more.
Comments:
* Regarding full page writes, we can: - always write full pages (as in your current patch), regardless of
the current settings - take WALInsertLock briefly to get the current settings from XLogCtl - always calculate the full
pagerecord, but in XLogInsert, if it
happens to be a HINT record, and full page writes are not necessary,
then discard it (right now I somewhat favor this option but I haven't
looked at the details)
* typo in "Backup blocks are not used in **xlog xlog** records"
* To get the appropriate setting for buffer_std, we should pass it down
through MarkBufferDirty as an extra flag, I think.
* I'm a bit worried that we'll need a cleanup lock when restoring an FSM
page. What do you think?
* In xlog_redo, it seemed slightly awkward to call XLogRecGetData twice.
Merely a matter of preference but I thought I would mention it.
> Jeff, any chance you can run this for a round with your suite?
Yes. I don't have a rigorous test suite, but I'll do some manual tests
and walk through it with gdb.
Regards,Jeff Davis