Re: Introduce XID age and inactive timeout based replication slot invalidation
От | shveta malik |
---|---|
Тема | Re: Introduce XID age and inactive timeout based replication slot invalidation |
Дата | |
Msg-id | CAJpy0uDYQVmtQQF__tgGTiUe7UcvPOOr6C9=mnrD1Bktsw4e0w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Introduce XID age and inactive timeout based replication slot invalidation (shveta malik <shveta.malik@gmail.com>) |
Ответы |
Re: Introduce XID age and inactive timeout based replication slot invalidation
Re: Introduce XID age and inactive timeout based replication slot invalidation |
Список | pgsql-hackers |
On Tue, Sep 3, 2024 at 3:01 PM shveta malik <shveta.malik@gmail.com> wrote: > > > 1) > I see that ReplicationSlotAlter() will error out if the slot is > invalidated due to timeout. I have not tested it myself, but do you > know if slot-alter errors out for other invalidation causes as well? > Just wanted to confirm that the behaviour is consistent for all > invalidation causes. I was able to test this and as anticipated behavior is different. When slot is invalidated due to say 'wal_removed', I am still able to do 'alter' of that slot. Please see: Pub: slot_name | failover | synced | inactive_since | invalidation_reason -------------+----------+--------+----------------------------------+--------------------- mysubnew1_1 | t | f | 2024-09-04 08:58:12.802278+05:30 | wal_removed Sub: newdb1=# alter subscription mysubnew1_1 disable; ALTER SUBSCRIPTION newdb1=# alter subscription mysubnew1_1 set (failover=false); ALTER SUBSCRIPTION Pub: (failover altered) slot_name | failover | synced | inactive_since | invalidation_reason -------------+----------+--------+----------------------------------+--------------------- mysubnew1_1 | f | f | 2024-09-04 08:58:47.824471+05:30 | wal_removed while when invalidation_reason is 'inactive_timeout', it fails: Pub: slot_name | failover | synced | inactive_since | invalidation_reason -------------+----------+--------+----------------------------------+--------------------- mysubnew1_1 | t | f | 2024-09-03 14:30:57.532206+05:30 | inactive_timeout Sub: newdb1=# alter subscription mysubnew1_1 disable; ALTER SUBSCRIPTION newdb1=# alter subscription mysubnew1_1 set (failover=false); ERROR: could not alter replication slot "mysubnew1_1": ERROR: can no longer get changes from replication slot "mysubnew1_1" DETAIL: The slot became invalid because it was inactive since 2024-09-04 08:54:20.308996+05:30, which is more than 0 seconds ago. HINT: You might need to increase "replication_slot_inactive_timeout.". I think the behavior should be same. thanks Shveta
В списке pgsql-hackers по дате отправления: