From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Could not finish anti-wraparound VACUUM when stop limit is reached |
Date: | 2014-06-03 22:19:09 |
Message-ID: | CAMkU=1x4ii=0R4GRAFEENKBFbfOXncex9uJoANs_MM+bqGHP_g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, May 25, 2014 at 8:53 AM, Andres Freund <andres(at)2ndquadrant(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Josh Berkus | 2014-06-03 23:38:52 | Re: idle_in_transaction_timeout |
Previous Message | Andrew Dunstan | 2014-06-03 21:58:08 | Re: idle_in_transaction_timeout |