Re: Is this a problem in GenericXLogFinish()?

Поиск
Список
Период
Сортировка
От Amit Kapila
Тема Re: Is this a problem in GenericXLogFinish()?
Дата
Msg-id CAA4eK1JkPSKETkczt7mhy0=D3RpViKyaoRpoxNCmESjs1AG-vw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Is this a problem in GenericXLogFinish()?  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
On Mon, Nov 13, 2023 at 10:51 PM Robert Haas <robertmhaas@gmail.com> wrote:
>
> On Mon, Nov 13, 2023 at 12:47 AM Hayato Kuroda (Fujitsu)
> <kuroda.hayato@fujitsu.com> wrote:
> > Moved.
>
> I see that this patch was committed, but I'm not very convinced that
> the approach is correct. The comment says this:
>
> +           /*
> +            * A write buffer needs to be registered even if no tuples are
> +            * added to it to ensure that we can acquire a cleanup lock on it
> +            * if it is the same as primary bucket buffer or update the
> +            * nextblkno if it is same as the previous bucket buffer.
> +            */
>
> But surely if the buffer is the same as one of those others, then it's
> registered anyway,

I don't think for others it's registered. For example, consider the
case when prevpage and the writepage are the same (aka
xlrec.is_prev_bucket_same_wrt is true), it won't be registered in
another code path (see comment [1]).

>
> and if it isn't, then it doesn't need to be.
>

In the previous example, we need it to update the nextblockno during replay.

I am not sure if I understand the scenario you are worried about, so
if my response doesn't address your concern, can you please explain a
bit more about the scenario you have in mind?

[1] -
/*
 * If prevpage and the writepage (block in which we are moving tuples
 * from overflow) are same, then no need to separately register
 * prevpage.  During replay, we can directly update the nextblock in
 * writepage.
 */

--
With Regards,
Amit Kapila.



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Merlin Moncure
Дата:
Сообщение: Re: Re: How to solve the problem of one backend process crashing and causing other processes to restart?
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: pg_upgrade and logical replication[