> On Sun, Jan 22, 2023 at 07:47:07PM +0100, Pavel Stehule wrote:
> pá 20. 1. 2023 v 21:35 odesílatel Dmitry Dolgov <9erthalion6@gmail.com>
> napsal:
>
> > * I think it was already mentioned in the thread, there seems to be not a
> > single usage of CHECK_FOR_INTERRUPTS in session_variable.c . But some
> > number
> > of loops over the sessionvars are implemented, are they always going to
> > be
> > small enough to not make any troubles?
> >
>
> The longest cycle is a cycle that rechecks actively used variables against
> system catalog. No cycle depends on the content of variables.
Right, but what about the cases with huge number of variables? Not
saying it could be in any sense common, but possible to do.
> > * sync_sessionvars_all explains why is it necessary to copy
> > xact_recheck_varids:
> >
> > When we check the variables, the system cache can be
> > invalidated,
> > and xact_recheck_varids can be enhanced.
> >
> > I'm not quite following what the "enhancement" part is about? Is
> > xact_recheck_varids could be somehow updated concurrently with the loop?
> >
>
> Yes. pg_variable_cache_callback can be called when
> is_session_variable_valid is executed.
>
> Maybe "extended" can be a better word instead of "enhanced"? I reformulated
> this comment
Yeah, "extended" sounds better. But I was mostly confused about the
mechanism, if the cache callback can interrupt the execution at any
moment when called, that would explain it.