Hi Kyotaro,
I have tried to test your patches. Unfortunately even after applying the
patches
the WAL Sender is still sending too frequent keepalive messages.
In my opinion the fix is to make sure that wal_sender_timeout/2 has passed
before sending
the keepalive message in the code fragment I had shared earlier.
In  other words we should replace the call to
WalSndKeepalive(false);
with
WalSndKeepaliveIfNecessary(false);

Do you agree with the suggested fix?

On Tue, Jun 8, 2021 at 10:09 AM Kyotaro Horiguchi <horikyota....@gmail.com>
wrote:

> At Tue, 08 Jun 2021 10:05:36 +0900 (JST), Kyotaro Horiguchi <
> horikyota....@gmail.com> wrote in
> > At Mon, 7 Jun 2021 15:26:05 +0500, Abbas Butt <
> abbas.b...@enterprisedb.com> wrote in
> > > On Mon, Jun 7, 2021 at 3:13 PM Amit Kapila <amit.kapil...@gmail.com>
> wrote:
> > > > I am not sure sending feedback every time before sleep is a good
> idea,
> > > > this might lead to unnecessarily sending more messages. Can we try by
> > > > using one-second interval with -s option to see how it behaves? As a
> > > > matter of comparison the similar logic in workers.c uses
> > > > wal_receiver_timeout to send such an update message rather than
> > > > sending it every time before sleep.
> >
> > Logical walreceiver sends a feedback when walrcv_eceive() doesn't
> > receive a byte.  If its' not good that pg_recvlogical does the same
> > thing, do we need to improve logical walsender's behavior as well?
>
> For the clarity, only the change in the walsender side can stop the
> flood.
>
> regards.
>
> --
> Kyotaro Horiguchi
> NTT Open Source Software Center
>


-- 
-- 
*Abbas*
Senior Architect


Ph: 92.334.5100153
Skype ID: gabbasb
edbpostgres.com

*Follow us on Twitter*
@EnterpriseDB

Reply via email to