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 |
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 |