From: | Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> |
---|---|
To: | Abbas Butt <abbas(dot)butt(at)enterprisedb(dot)com> |
Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Zahid Iqbal <zahid(dot)iqbal(at)enterprisedb(dot)com> |
Subject: | Re: Logical replication keepalive flood |
Date: | 2021-06-09 02:21:55 |
Message-ID: | 76b8b527-34f5-5061-e921-352bd5a2c298@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi.
On 2021/06/08 21:21, Abbas Butt wrote:
> 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.
Sorry for the bogus patch. I must have seen something impossible.
The keep-alive packet is immediately flushed explicitly, so Amit is
right that no additional
pq_flush_if_writable() is not needed.
> 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?
I'm afraid not. The same is done just after unconditionally.
The issue - if actually it is - we send a keep-alive packet before a
quite short sleep.
We really want to send it if the sleep gets long but we cannot predict
that before entering a sleep.
Let me think a little more on this..
regards.
From | Date | Subject | |
---|---|---|---|
Next Message | Masahiko Sawada | 2021-06-09 02:26:12 | Re: pg14b1 stuck in lazy_scan_prune/heap_page_prune of pg_statistic |
Previous Message | Michael Paquier | 2021-06-09 02:21:52 | Re: Adjust pg_regress output for new long test names |