On Fri, Jan 13, 2012 at 8:02 PM, Noah Misch <n...@leadboat.com> wrote:
> Simon spoke to the FPI side of the question.  For heap pages, the
> XLOG_HEAP_NEWPAGE consumers are CLUSTER, VACUUM FULL and ALTER TABLE SET
> TABLESPACE.  For the last, we will have already logged any PD_ALL_VISIBLE bits
> through normal channels.  CLUSTER and VACUUM FULL never set PD_ALL_VISIBLE or
> visibility map bits.  When, someday, they do, we might emit a separate WAL
> record to force the recovery conflict.  However, CLUSTER/VACUUM FULL already
> remove tuples still-visible to standby snapshots without provoking a recovery
> conflict.  (Again only with hot_standby_feedback=off.)

Is the big about CLUSTER/VACUUM FULL a preexisting bug?  If not, why not?

Other than that, it seems like we might be converging on a workable
solution: if hot_standby_feedback=off, disable index-only scans for
snapshots taken during recovery; if hot_standby_feedback=on, generate
recovery conflicts when a snapshot's xmin precedes the youngest xmin
on a page marked all-visible, but allow the use of index-only scans,
and allow sequential scans to trust PD_ALL_VISIBLE.  Off the top of my
head, I don't see a hole in that logic...

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to