Re: switch UNLOGGED to LOGGED

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Leonardo Francalanci <m_lists@yahoo.it>, pgsql-hackers@postgresql.org
Date: 2011-05-29T08:29:38Z
Lists: pgsql-hackers
On Sat, May 28, 2011 at 09:33:09PM -0400, Robert Haas wrote:
> On Fri, May 27, 2011 at 6:19 AM, Noah Misch <noah@leadboat.com> wrote:
> >> So, it's ok to have a log item that is replayed only if
> >>
> >> WalRcvInProgress()
> >>
> >> is true?
> >
> > No, that checks for WAL streaming in particular. ?A log-shipping standby needs
> > the same treatment.
> >
> >> Is it a correct approach? I couldn't find any other way to
> >> find out if we are in a standby or a master...
> >
> > InArchiveRecovery looks like the right thing, but it's currently static to
> > xlog.c. ?Perhaps exporting that is the way to go.
> 
> Why is it necessary to replay the operation only on the slave?  Can we
> just use XLOG_HEAP_NEWPAGE?

I don't think it is *necessary*.  If we're replaying WAL on a master, we'll also
be resetting unlogged relations after recovery; what we write or do not write to
them in the mean time has no functional impact.  Seemed like a sensible
optimization, but maybe it's premature.

nm