From: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> |
---|---|
To: | Bruce Momjian <bruce(at)momjian(dot)us>, Craig Ringer <craig(at)2ndquadrant(dot)com> |
Cc: | Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Tianzhou Chen <tianzhouchen(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Challenges preventing us moving to 64 bit transaction id (XID)? |
Date: | 2017-06-06 13:05:03 |
Message-ID: | f90808e1-be96-af6e-6b49-80535683c223@2ndquadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 6/6/17 08:29, Bruce Momjian wrote:
> On Tue, Jun 6, 2017 at 06:00:54PM +0800, Craig Ringer wrote:
>> Tom's point is, I think, that we'll want to stay pg_upgrade
>> compatible. So when we see a pg10 tuple and want to add a new page
>> with a new page header that has an epoch, but the whole page is full
>> so there isn't 32 bits left to move tuples "down" the page, what do we
>> do?
>
> I guess I am missing something. If you see an old page version number,
> you know none of the tuples are from running transactions so you can
> just freeze them all, after consulting the pg_clog. What am I missing?
> If the page is full, why are you trying to add to the page?
The problem is if you want to delete from such a page. Then you need to
update the tuple's xmax and stick the new xid epoch somewhere.
We had an unconference session at PGCon about this. These issues were
all discussed and some ideas were thrown around. We can expect a patch
to appear soon, I think.
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2017-06-06 13:07:19 | Re: inconsistent application_name use in logical workers |
Previous Message | Peter Eisentraut | 2017-06-06 12:59:58 | Re: Use of non-restart-safe storage by temp_tablespaces |