Re: BUG #5915: OldSerXidAdd inflates pg_serial too much
От | Heikki Linnakangas |
---|---|
Тема | Re: BUG #5915: OldSerXidAdd inflates pg_serial too much |
Дата | |
Msg-id | 4D714EBD.9020409@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: BUG #5915: OldSerXidAdd inflates pg_serial too much ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>) |
Ответы |
Re: BUG #5915: OldSerXidAdd inflates pg_serial too much
|
Список | 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 по дате отправления: