From: | Stas Kelvich <s(dot)kelvich(at)postgrespro(dot)ru> |
---|---|
To: | PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>, Craig Ringer <craig(at)2ndquadrant(dot)com> |
Subject: | logical decoding of two-phase transactions |
Date: | 2016-12-31 08:36:10 |
Message-ID: | 02DA5F5E-CECE-4D9C-8B4B-418077E2C010@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Here is resubmission of patch to implement logical decoding of two-phase transactions (instead of treating them
as usual transaction when commit) [1] I’ve slightly polished things and used test_decoding output plugin as client.
General idea quite simple here:
* Write gid along with commit/prepare records in case of 2pc
* Add several routines to decode prepare records in the same way as it already happens in logical decoding.
I’ve also added explicit LOCK statement in test_decoding regression suit to check that it doesn’t break thing. If
somebody can create scenario that will block decoding because of existing dummy backend lock that will be great
help. Right now all my tests passing (including TAP tests to check recovery of twophase tx in case of failures from
adjacent mail thread).
If we will agree about current approach than I’m ready to add this stuff to proposed in-core logical replication.
[1] https://www.postgresql.org/message-id/EE7452CA-3C39-4A0E-97EC-17A414972884%40postgrespro.ru
Attachment | Content-Type | Size |
---|---|---|
logical_twophase.diff | application/octet-stream | 24.1 KB |
unknown_filename | text/plain | 100 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2016-12-31 09:09:33 | tab complete regress tests |
Previous Message | Pavel Stehule | 2016-12-31 07:09:06 | Re: proposal: session server side variables |