RE: logical replication empty transactions
От | osumi.takamichi@fujitsu.com |
---|---|
Тема | RE: logical replication empty transactions |
Дата | |
Msg-id | OSBPR01MB4888B1045EFAC9117C60ABBAED129@OSBPR01MB4888.jpnprd01.prod.outlook.com обсуждение исходный текст |
Ответ на | Re: logical replication empty transactions (Ajin Cherian <itsajin@gmail.com>) |
Ответы |
Re: logical replication empty transactions
Re: logical replication empty transactions |
Список | pgsql-hackers |
On Wednesday, July 14, 2021 9:30 PM Ajin Cherian <itsajin@gmail.com> wrote: > I've had to rebase the patch after a recent commit by Amit Kapila of supporting > two-phase commits in pub-sub [1]. > Also I've modified the patch to also skip replicating empty prepared > transactions. Do let me know if you have any comments. Hi I started to test this patch but will give you some really minor quick feedbacks. (1) pg_logical_slot_get_binary_changes() params. Technically, looks better to have proto_version 3 & two_phase option for the function to test empty prepare ? I felt proto_version 1 doesn't support 2PC. [1] says "The following messages (Begin Prepare, Prepare, Commit Prepared, Rollback Prepared) are available since protocol version 3." Then, if the test wants to skip empty *prepares*, I suggest to update the proto_version and set two_phase 'on'. +############################## +# Test empty prepares +############################## ... +# peek at the contents of the slot +$result = $node_publisher->safe_psql( + 'postgres', qq( + SELECT get_byte(data, 0) + FROM pg_logical_slot_get_binary_changes('tap_sub', NULL, NULL, + 'proto_version', '1', + 'publication_names', 'tap_pub') +)); (2) The following sentences may start with a lowercase letter. There are other similar codes for this. + elog(DEBUG1, "Skipping replication of an empty transaction"); [1] - https://www.postgresql.org/docs/devel/protocol-logicalrep-message-formats.html Best Regards, Takamichi Osumi
В списке pgsql-hackers по дате отправления: