Re: BUG #5915: OldSerXidAdd inflates pg_serial too much - Mailing list pgsql-bugs

From Heikki Linnakangas
Subject Re: BUG #5915: OldSerXidAdd inflates pg_serial too much
Date
Msg-id 4D714EBD.9020409@enterprisedb.com
Whole thread Raw
In response to Re: BUG #5915: OldSerXidAdd inflates pg_serial too much  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
Responses Re: BUG #5915: OldSerXidAdd inflates pg_serial too much  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
List pgsql-bugs
On 04.03.2011 22:33, Kevin Grittner wrote:
> Heikki Linnakangas<heikki.linnakangas@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

pgsql-bugs by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Re: BUG #5915: OldSerXidAdd inflates pg_serial too much
Next
From: Robert Haas
Date:
Subject: Re: BUG #5869: postgresql corrupts unquoted non-ascii chars in column aliases