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