Force streaming every change in logical decoding
Yu Shi (Fujitsu) <shiy.fnst@fujitsu.com>
From: "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-12-06T06:23:43Z
Lists: pgsql-hackers
Attachments
- v1-0001-Allow-streaming-every-change-without-waiting-till.patch (application/octet-stream) patch v1-0001
Hi hackers, In logical decoding, when logical_decoding_work_mem is exceeded, the changes are sent to output plugin in streaming mode. But there is a restriction that the minimum value of logical_decoding_work_mem is 64kB. I tried to add a GUC to allow sending every change to output plugin without waiting until logical_decoding_work_mem is exceeded. This helps to test streaming mode. For example, to test "Avoid streaming the transaction which are skipped" [1], it needs many XLOG_XACT_INVALIDATIONS messages. With the new option, it can be tested with fewer changes and in less time. Also, this new option helps to test more scenarios for "Perform streaming logical transactions by background workers" [2]. [1] https://www.postgresql.org/message-id/CAFiTN-tHK=7LzfrPs8fbT2ksrOJGQbzywcgXst2bM9-rJJAAUg@mail.gmail.com [2] https://www.postgresql.org/message-id/flat/CAA4eK1%2BwyN6zpaHUkCLorEWNx75MG0xhMwcFhvjqm2KURZEAGw%40mail.gmail.com Regards, Shi yu
Commits
-
Add 'logical_decoding_mode' GUC.
- 5de94a041ed7 16.0 landed
-
Clean up some inconsistencies with GUC declarations
- d9d873bac670 16.0 cited