Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data

From: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
To: Noah Misch <noah(at)leadboat(dot)com>
Cc: Michael Paquier <michael(at)paquier(dot)xyz>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data
Date: 2021-07-20 19:25:29
Message-ID: BE8DC41F-0FA5-4F45-B096-9B87C392E45D@yandex-team.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

> 19 июля 2021 г., в 23:41, Andrey Borodin <x4mmm(at)yandex-team(dot)ru> написал(а):
>
>
> We are looking for transaction that was only VXID during GetLockConflicts(). In conflicts array we may have each VXID only once.
> Other 2PCs with same VXID may be older or newer than target 2PC.
> Older 2PCs must be with XID in conflicts array. So we might wait for all 2PC with known XIDs. Then for each ambiguous VXID->XID mapping choose oldest XID.
>
> But this logic seem to me overly complicated. Or isn’t it?

Here's the PoC to asses complexity of this solution.

Best regards, Andrey Borodin.

Attachment Content-Type Size
v3-0001-Wait-for-vxids-in-CIC.patch application/octet-stream 6.6 KB
v3-0002-Partition-2PCs-first-during-wait.patch application/octet-stream 2.7 KB

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message PG Bug reporting form 2021-07-20 19:34:05 BUG #17115: psqlODBC Unicode(x64) driver treats a boolean field as text
Previous Message Heikki Linnakangas 2021-07-20 15:34:57 Re: IRe: BUG #16792: silent corruption of GIN index resulting in SELECTs returning non-matching rows