| From: | Ajin Cherian <itsajin(at)gmail(dot)com> | 
|---|---|
| To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> | 
| Cc: | Peter Smith <smithpb2250(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: [HACKERS] logical decoding of two-phase transactions | 
| Date: | 2020-12-08 08:31:15 | 
| Message-ID: | CAFPTHDYA8yE6tEmQ2USYS68kNt+kM=SwKgj=jy4AvFD5e9-UTQ@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Tue, Dec 1, 2020 at 6:26 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> To skip it, we need to send GID in begin message and then on
> subscriber-side, check if the prepared xact already exists, if so then
> set a flag. The flag needs to be set in begin/start_stream and reset
> in stop_stream/commit/abort. Using the flag, we can skip the entire
> contents of the prepared xact. In ReorderFuffer-side also, we need to
> get and set GID in txn even when we skip it because we need to send
> the same at commit time. In this solution, we won't be able to send it
> during normal start_stream because by that time we won't know GID and
> I think that won't be required. Note that this is only required when
> we skipped sending prepare, otherwise, we just need to send
> Commit-Prepared at commit time.
I have implemented these changes and tested the fix using the test
setup I had shared above and it seems to be working fine.
I have also tested restarts that simulate duplicate prepares being
sent by the publisher and verified that it is handled correctly by the
subscriber.
Do have a look at the changes and let me know if you have any comments.
regards,
Ajin Cherian
Fujitsu Australia
| Attachment | Content-Type | Size | 
|---|---|---|
| v30-0003-Support-2PC-txn-tests-for-test_decoding.patch | application/octet-stream | 30.2 KB | 
| v30-0005-Support-2PC-txn-spoolfile.patch | application/octet-stream | 3.4 KB | 
| v30-0004-Support-2PC-txn-tests-for-concurrent-aborts.patch | application/octet-stream | 16.6 KB | 
| v30-0001-Extend-the-output-plugin-API-to-allow-decoding-p.patch | application/octet-stream | 41.0 KB | 
| v30-0002-Allow-decoding-at-prepare-time-in-ReorderBuffer.patch | application/octet-stream | 37.4 KB | 
| v30-0006-Support-2PC-txn-pgoutput.patch | application/octet-stream | 28.2 KB | 
| v30-0008-Support-2PC-documentation.patch | application/octet-stream | 5.8 KB | 
| v30-0009-Support-2PC-txn-Subscription-option.patch | application/octet-stream | 35.2 KB | 
| v30-0007-Support-2PC-txn-subscriber-tests.patch | application/octet-stream | 60.4 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrey Borodin | 2020-12-08 08:42:12 | Re: PoC Refactor AM analyse API | 
| Previous Message | Hamid Akhtar | 2020-12-08 08:17:25 | Re: {CREATE INDEX, REINDEX} CONCURRENTLY improvements |