On 04.03.2011 22:33, Kevin Grittner wrote:
Heikki Linnakangas<heikki.linnakan...@enterprisedb.com>  wrote:

Hmm, if I'm reading that function correctly, it makes sure that
when headPage<  0 (which implies that the SLRU has not been used
since startup, right? )

No, look at the bottom of OldSerXidSetActiveSerXmin() -- cleanup of
segments is done incrementally, but when it finds it has cleaned up
*everything* it sets headPage = -1.  I believe that should only
happen when the xmin has moved past the end of the segment.

it zeroes out the whole SLRU file, not only the currently active
region.

That's not the intent.  If it's doing that, it's accidental.  It is
trying to zero from the start of a segment, if a new one is needed.

Sorry, I was not entirely clear. It clears all pages from the start of the segment, up to the last currently active page, even if the active region from tailXid to headXid only spans a couple of pages somewhere in the middle of the segment. It seems pointless to clear the pages in the beginning of the segment in that case.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

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

Reply via email to