On Fri, May 30, 2008 at 3:31 PM, Simon Riggs <[EMAIL PROTECTED]> wrote: > > > Perhaps we can start first scan, check xid after we scan each few > blocks. Once we find the xid is older, then we know the size of the > second scan can be limited to only those blocks already scanned. So the > two endpoints of behaviour are we skip the scan completely or we do the > whole scan, but at least there is a saving in many cases without > waiting. >
Hmm. Interesting. I was about to suggest that we use some heuristic such as size of the table to decide whether or not try the optimization. But what you just suggested makes more sense. So instead of waiting, we anyways start the first scan. If we are lucky, in some time all the old transactions would go away and then we can start marking the DEAD line pointers as DEAD_RECLAIMED. The second pass just needs to rescan the initial blocks to remove the DEAD line pointers. Thanks, Pavan -- Pavan Deolasee EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers