Re: old_snapshot_threshold's interaction with hash index - Mailing list pgsql-hackers

From Kevin Grittner
Subject Re: old_snapshot_threshold's interaction with hash index
Date
Msg-id CACjxUsOto8NCS_TC=wr=jHVtz6V46A9OuOrPBymYEg-6Dkhi9Q@mail.gmail.com
Whole thread Raw
In response to Re: old_snapshot_threshold's interaction with hash index  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: old_snapshot_threshold's interaction with hash index
Re: old_snapshot_threshold's interaction with hash index
List pgsql-hackers
On Tue, May 3, 2016 at 11:09 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Tue, May 3, 2016 at 11:46 AM, Kevin Grittner <kgrittn@gmail.com> wrote:
>>> Uh, I have no idea how this would be fixed if the PageLSN is zero.  Do
>>> you?
>>
>> Yes, I see three ways, the most obvious of which is what Amit
>> suggested -- don't do early vacuum on a table which has a hash index.
>
> What do you mean by "early VACUUM"?

Both vacuuming and hot-pruning adjust xmin based on calling
TransactionIdLimitedForOldSnapshots(TransactionId recentXmin,
Relation relation).  I'm talking about having that function, if all
other conditions for the override pass, checking for a hash index,
too.

> Amit suggested disabling
> HOT-pruning, but HOT-pruning happens completely outside of VACUUM.  It
> also happens inside VACUUM, so if we disabled HOT pruning, how could
> we VACUUM at all?  Sorry, I am confused.

I guess we were both talking a bit loosely since (as I mentioned
above) the function that adjusts the xmin is called for a vacuum or
pruning.  He mentioned one and I mentioned the other, but it's all
controlled by TransactionIdLimitedForOldSnapshots().

> Doesn't this issue also affected indexes on any unlogged table?

That's been covered all along.

--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Petr Jelinek
Date:
Subject: Re: Processes and caches in postgresql
Next
From: Andres Freund
Date:
Subject: Re: what to revert