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-rjja...@mail.gmail.com [2] https://www.postgresql.org/message-id/flat/CAA4eK1%2BwyN6zpaHUkCLorEWNx75MG0xhMwcFhvjqm2KURZEAGw%40mail.gmail.com Regards, Shi yu
v1-0001-Allow-streaming-every-change-without-waiting-till.patch
Description: v1-0001-Allow-streaming-every-change-without-waiting-till.patch