Re: Could not finish anti-wraparound VACUUM when stop limit is reached - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: Could not finish anti-wraparound VACUUM when stop limit is reached
Date
Msg-id CAMkU=1x4ii=0R4GRAFEENKBFbfOXncex9uJoANs_MM+bqGHP_g@mail.gmail.com
Whole thread Raw
In response to Re: Could not finish anti-wraparound VACUUM when stop limit is reached  (Andres Freund <andres@2ndquadrant.com>)
List pgsql-hackers
On Sun, May 25, 2014 at 8:53 AM, Andres Freund <andres@2ndquadrant.com> wrote:
On 2014-05-25 11:40:09 -0400, Heikki Linnakangas wrote:
> So, vac_truncate_clog() tries to get a new transaction ID, which fails
> because we've already reached the stop-limit. vac_truncate_clog() doesn't
> really need a new XID to be assigned, though, it only uses it to compare
> against datfrozenxid to see if wrap-around has already happened, so it could
> use ReadNewTransactionId() instead.

Right. But IIRC we need one in the vicinity anyway to write new
pg_database et al rows?

pg_database and pg_class are updated with heap_inplace_update in these cases.

The page gets a new LSN, but the tuples do not get a new transaction ID.

Cheers,

Jeff


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: idle_in_transaction_timeout
Next
From: Josh Berkus
Date:
Subject: Re: idle_in_transaction_timeout