On Thu, 2008-11-20 at 10:33 -0500, Tom Lane wrote: > "Pavan Deolasee" <[EMAIL PROTECTED]> writes: > > I wonder if we should refactor lazy_scan_heap() so that *all* the real work > > of collecting information about dead tuples happens only in > > heap_page_prune(). Frankly, there is only a rare chance that a tuple may > > become DEAD after the pruning happened on the page. We can ignore such > > tuples; they will be vacuumed/pruned in the next cycle. > > > This would save us a second check of HeapTupleSatisfiesVacuum on the tuples > > which are just now checked in heap_page_prune(). In addition, the following > > additional WAL records are then not necessary because heap_page_prune() must > > have already logged the latestRemovedXid. > > I don't think you can do that. Couldn't someone else have run > heap_page_prune between vacuum's first and second visit to the page?
I just looked at that in more detail and decided it was more difficult than it first appeared. So I've left it for now. -- Simon Riggs www.2ndQuadrant.com PostgreSQL Training, Services and Support -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers