Re: Primary keepalive message not appearing in Logical Streaming Replication

From: Michael Loftis <mloftis(at)wgops(dot)com>
To: Virendra Negi <viren(dot)negi(at)teliax(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Primary keepalive message not appearing in Logical Streaming Replication
Date: 2019-09-15 15:44:14
Message-ID: CAHDg04tMzU=NRSEJ9QuzNfiy4VnUJFLMTy44vNqi3QUF=WdPyw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sun, Sep 15, 2019 at 08:36 Virendra Negi <viren(dot)negi(at)teliax(dot)com> wrote:

> Oh I miss the documentation link there you go
> https://www.postgresql.org/docs/9.5/protocol-replication.html
>
> On Sun, Sep 15, 2019 at 8:05 PM Virendra Negi <viren(dot)negi(at)teliax(dot)com>
> wrote:
>
>> Agreed but why is there a message specification for it describe in the
>> documentation and it ask to client reply back if a particular *bit* is
>> set.(1 means that the client should reply to this message as soon as
>> possible, to avoid a timeout disconnect. 0 otherwise)
>>
>
This is unrelated to TCP keepalive. I honestly don't know where the knob is
to turn these on but the configuration variables you quoted earlier I am
familiar with and they are not it. Perhaps someone else can chime in with
how to enable the protocol level keepalive in replication.

>>
>> Primary keepalive message (B)
>> Byte1('k')
>>
>> Identifies the message as a sender keepalive.
>> Int64
>>
>> The current end of WAL on the server.
>> Int64
>>
>> The server's system clock at the time of transmission, as microseconds
>> since midnight on 2000-01-01.
>> Byte1
>>
>> 1 means that the client should reply to this message as soon as possible,
>> to avoid a timeout disconnect. 0 otherwise.
>>
>> The receiving process can send replies back to the sender at any time,
>> using one of the following message formats (also in the payload of a
>> CopyData message):
>>
>>
>> On Sun, Sep 15, 2019 at 7:39 PM Michael Loftis <mloftis(at)wgops(dot)com> wrote:
>>
>>>
>>>
>>> On Fri, Sep 13, 2019 at 07:12 Virendra Negi <viren(dot)negi(at)teliax(dot)com>
>>> wrote:
>>>
>>>> Implemented the Logical Streaming Replication thing are working fine I
>>>> see the XLogData message appearing and I'm able to parse them.
>>>>
>>>> But I haven't see any "Primary Keepalive message" yet. I had tried
>>>> setting the *tcp_keepalive_interval*, *tcp_keepalives_idle* both from
>>>> client runtime paramter and well as from postgresql.conf still no clue of
>>>> it.
>>>>
>>>> Any information around it?
>>>>
>>>
>>> Both of these options are not in the Pg protocol. They are within the OS
>>> TCP stack and are not visible to the applications at all.
>>>
>>>>
>>>>
>>>>
>>>> --
>>>
>>> "Genius might be described as a supreme capacity for getting its
>>> possessors
>>> into trouble of all kinds."
>>> -- Samuel Butler
>>>
>> --

"Genius might be described as a supreme capacity for getting its possessors
into trouble of all kinds."
-- Samuel Butler

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2019-09-15 16:01:29 Re: Primary keepalive message not appearing in Logical Streaming Replication
Previous Message Tom Lane 2019-09-15 15:14:30 Re: log spam with postgres_fdw