Hi,
On 11/18/23 11:45 AM, Amit Kapila wrote:
> On Fri, Nov 17, 2023 at 5:18 PM Drouvot, Bertrand
> <bertranddrouvot.pg@gmail.com> wrote:
>>
>> On 11/17/23 2:46 AM, Zhijie Hou (Fujitsu) wrote:
>>> On Tuesday, November 14, 2023 10:27 PM Drouvot, Bertrand <bertranddrouvot.pg@gmail.com> wrote:
>>>
>>> I feel the WaitForWALToBecomeAvailable may not be the best place to shutdown
>>> slotsync worker and drop slots. There could be other reasons(other than
>>> promotion) as mentioned in comments in case XLOG_FROM_STREAM to reach the code
>>> there. I thought if the intention is to stop slotsync workers on promotion,
>>> maybe FinishWalRecovery() is a better place to do it as it's indicating the end
>>> of recovery and XLogShutdownWalRcv is also called in it.
>>
>> I can see that slotsync_drop_initiated_slots() has been moved in FinishWalRecovery()
>> in v35. That looks ok.
>>>
>
> I was thinking what if we just ignore creating such slots (which
> require init state) in the first place? I think that can be
> time-consuming in some cases but it will reduce the complexity and we
> can always improve such cases later if we really encounter them in the
> real world. I am not very sure that added complexity is worth
> addressing this particular case, so I would like to know your and
> others' opinions.
>
I'm not sure I understand your point. Are you saying that we should not create
slots on the standby that are "currently" reported in a 'i' state? (so just keep
the 'r' and 'n' states?)
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com