From: | Peter Geoghegan <pg(at)bowt(dot)ie> |
---|---|
To: | "Wong, Yi Wen" <yiwong(at)amazon(dot)com> |
Cc: | "Wood, Dan" <hexpert(at)amazon(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: [COMMITTERS] pgsql: Fix freezing of a dead HOT-updated tuple |
Date: | 2017-10-04 15:40:32 |
Message-ID: | CAH2-WzmpuR3vF6+PW2nRh2+eHPTb-c3tAw+S8iBWPK8pwtnUpg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers pgsql-hackers |
On Tue, Oct 3, 2017 at 8:43 PM, Wong, Yi Wen <yiwong(at)amazon(dot)com> wrote:
> My interpretation of README.HOT is the check is just to ensure the chain is continuous; in which case the condition should be:
>
>> if (TransactionIdIsValid(priorXmax) &&
>> !TransactionIdEquals(priorXmax, HeapTupleHeaderGetRawXmin(htup)))
>> break;
>
> So the difference is GetRawXmin vs GetXmin, because otherwise we get the FreezeId instead of the Xmin when the transaction happened
I was thinking along similar lines.
> The interesting consequence of changing that is the prune seems to get the entire chain altogether with Dan's repro... I've run it a couple of times and have consistently gotten the following page
>
> lp | t_ctid | lp_off | lp_flags | t_infomask | t_infomask2
> ----+--------+--------+----------+------------+-------------
> 1 | (0,1) | 8152 | 1 | 2818 | 3
> 2 | | 7 | 2 | |
> 3 | | 0 | 0 | |
> 4 | | 0 | 0 | |
> 5 | | 0 | 0 | |
> 6 | | 0 | 0 | |
> 7 | (0,7) | 8112 | 1 | 11010 | 32771
> (7 rows)
That's also what I see. This is a good thing, I think; that's how we
ought to prune.
--
Peter Geoghegan
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2017-10-04 16:45:08 | pgsql: Attempt to adapt windows build for 212e6f34d55c. |
Previous Message | Alvaro Herrera | 2017-10-04 13:46:05 | Re: [COMMITTERS] pgsql: Fix freezing of a dead HOT-updated tuple |
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2017-10-04 16:00:18 | Re: Partition-wise join for join between (declaratively) partitioned tables |
Previous Message | Robert Haas | 2017-10-04 15:34:06 | Re: Partition-wise join for join between (declaratively) partitioned tables |