Re: Unexpected behavior when setting "idle_replication_slot_timeout" - Mailing list pgsql-bugs

From Fujii Masao
Subject Re: Unexpected behavior when setting "idle_replication_slot_timeout"
Date
Msg-id 70b183fb-f66e-40d8-b0de-be8c1052fa93@oss.nttdata.com
Whole thread Raw
In response to Unexpected behavior when setting "idle_replication_slot_timeout"  (Gunnar Morling <gunnar.morling@googlemail.com>)
Responses Re: Unexpected behavior when setting "idle_replication_slot_timeout"
List pgsql-bugs

On 2025/07/05 13:06, Amit Kapila wrote:
> On Fri, Jul 4, 2025 at 9:54 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote:
>>
>> On 2025/07/05 1:07, Laurenz Albe wrote:
>>> On Sat, 2025-07-05 at 00:22 +0900, Fujii Masao wrote:
>>>> On 2025/07/04 23:12, Fujii Masao wrote:
>>>>> But I wonder why the current unit of this GUC is minutes (GUC_UNIT_MIN).
>>>>> Since at least two users (including myself) tried to set it to a value
>>>>> less than 1 minute, it might worth considering changing the unit to seconds
>>>>> (GUC_UNIT_S). Also which would reduces the chance of the reported trouble.
>>>>
>>>> Attached patch changes unit of idle_replication_slot_timeout to seconds.
>>>
>>> -1
>>>
>>> I think that the reason that several users tried to set it it less than a minute
>>> is that they were trying to test the feature and didn't want to wait long.
>>> I cannot imagine that anybody will want to abandon a standby server just
>>> because it is idle for more than 30 seconds.
>>
>> Maybe. But changing the unit to seconds doesn't make things worse, does it?
>> It still allows users to set values greater than 1 minute, and also less than
>> 1 minute for debugging or testing purposes, if needed.
>>
> 
> We expect the value of this variable to be in hours or, in some cases,
> days. Specifying in seconds would be inconvenient for users. Now, I
> agree there is a value in testing/debugging to allow it to be seconds,
> but the same could be said for other variables whose units are in
> minutes, like log_rotation_age and wal_summary_keep_time.

Even if we change the unit to seconds (GUC_UNIT_S), it's still possible
to set the timeout values such as hours or days. For example, even with
the patch, we can set the timeout to 365 days:

   =# ALTER SYSTEM SET idle_replication_slot_timeout TO '365d';
   =# SELECT pg_reload_conf();
   =# SHOW idle_replication_slot_timeout ;
    idle_replication_slot_timeout
   -------------------------------
    365d
   (1 row)

Do you see any serious downside to switching the unit to seconds? I don't
think it introduces any serious issues. On the contrary, it gives users finer
control over the timeout, and additionally works around the issue
that we're discussing here.

Regards,

-- 
Fujii Masao
NTT DATA Japan Corporation




pgsql-bugs by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Unexpected behavior when setting "idle_replication_slot_timeout"
Next
From: "David G. Johnston"
Date:
Subject: Re: functional index search path issue.