Re: Synchronizing slots from primary to standby
От | Amit Kapila |
---|---|
Тема | Re: Synchronizing slots from primary to standby |
Дата | |
Msg-id | CAA4eK1JhLLU8w-5Fbk8KmQ7n0M9psUXms-HeOUYfVOYdsNTV_Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Synchronizing slots from primary to standby (Amit Kapila <amit.kapila16@gmail.com>) |
Ответы |
Re: Synchronizing slots from primary to standby
|
Список | pgsql-hackers |
On Mon, Nov 6, 2023 at 1:57 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Mon, Nov 6, 2023 at 7:01 AM Zhijie Hou (Fujitsu) > <houzj.fnst@fujitsu.com> wrote: > > +static void +WalSndGetStandbySlots(List **standby_slots, bool force) +{ + if (!MyReplicationSlot->data.failover) + return; + + if (standby_slot_names_list == NIL && strcmp(standby_slot_names, "") != 0) + SlotSyncInitConfig(); + + if (force || StandbySlotNamesPreReload == NULL || + strcmp(StandbySlotNamesPreReload, standby_slot_names) != 0) + { + list_free(*standby_slots); + + if (StandbySlotNamesPreReload) + pfree(StandbySlotNamesPreReload); + + StandbySlotNamesPreReload = pstrdup(standby_slot_names); + *standby_slots = list_copy(standby_slot_names_list); + } +} I find this code bit difficult to understand. I think we don't need to maintain a global variable like StandbySlotNamesPreReload. We can use a local variable for it on the lines of what we do in StartupRereadConfig(). Then, can we think of maintaining standby_slot_names_list in something related to decoding like LogicalDecodingContext as this will be used during decoding only? -- With Regards, Amit Kapila.
В списке pgsql-hackers по дате отправления: