Re: old_snapshot_threshold's interaction with hash index

From: Kevin Grittner <kgrittn(at)gmail(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Bruce Momjian <bruce(at)momjian(dot)us>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: old_snapshot_threshold's interaction with hash index
Date: 2016-05-03 16:17:52
Message-ID: CACjxUsOto8NCS_TC=wr=jHVtz6V46A9OuOrPBymYEg-6Dkhi9Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, May 3, 2016 at 11:09 AM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> On Tue, May 3, 2016 at 11:46 AM, Kevin Grittner <kgrittn(at)gmail(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2016-05-03 16:22:09 Re: what to revert
Previous Message Petr Jelinek 2016-05-03 16:16:38 Re: Processes and caches in postgresql