On Fri, Feb 18, 2022 at 9:27 PM Amit Kapila <amit.kapil...@gmail.com> wrote: > > > Yeah, I think there could be multiple ways (a) We can send such a keep > alive in WalSndUpdateProgress() itself by using ctx->write_location. > For this, we need to modify WalSndKeepalive() to take sentPtr as > input. (b) set some flag in WalSndUpdateProgress() and then do it > somewhere in WalSndLoop probably in WalSndKeepaliveIfNecessary, or > maybe there is another better way. >
Thanks for the suggestion Amit and Osumi-san, I experimented with both the suggestions but finally decided to use (a)Modifying WalSndKeepalive() to take an LSN optionally as input and passed in the ctx->write_location. I also verified that if I block the WalSndKeepalive() in WalSndWaitForWal, then my new code sends the keepalive when skipping transactions and the syncrep gets back feedback.. I will address comments from Peter and Wang in my next patch update. regards, Ajin Cherian Fujitsu Australia
v20-0001-Skip-empty-transactions-for-logical-replication.patch
Description: Binary data