Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)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.
I'll look at this some more to see if I can spot something I'm
missing, but if you see something to indicate it's not working as I
describe above, please point me in the right direction.
-Kevin