Re: Confused about TransactionIdSetTreeStatus

Japin Li <japinli@hotmail.com>

From: Japin Li <japinli@hotmail.com>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-10-25T15:09:03Z
Lists: pgsql-hackers

Attachments

On Tue, 25 Oct 2022 at 22:46, Heikki Linnakangas <hlinnaka@iki.fi> wrote:
> On 25/10/2022 12:02, Japin Li wrote:
>> However, the code marks the main transaction and subtransactions directly
>> to the committed.
>
> Hmm, yeah, step 2 in this example doesn't match reality. We actually
> set t and t1 directly as committed. The explanation above that comment
> is correct, but the example is not. It used to work the way the
> example says, but that was changed in commit
> 06da3c570f21394003fc392d80f54862f7dec19f. Ironically, that commit also
> added the outdated comment.
>
> The correct example would be:
>
> TransactionId t commits and has subxids t1, t2, t3, t4 t is on page
> p1, t1 is also on p1, t2 and t3 are on p2, t4 is on p3
> 1. update pages2-3:
>       page2: set t2,t3 as sub-committed
>       page3: set t4 as sub-committed
> 2. update page1:
>       page1: set t,t1 as committed,
> 3. update pages2-3:
>       page2: set t2,t3 as committed
>       page3: set t4 as committed
>

Thanks for your explanation.  Attach a patch to remove the outdated comment.

-- 
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.

Commits

  1. Update outdated comment for TransactionIdSetTreeStatus

  2. Rework subtransaction commit protocol for hot standby.