| 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: | Whole Thread | Raw Message | 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 |