Re: sync request forward function ForwardSyncRequest() might hang for some time in a corner case?

Поиск
Список
Период
Сортировка
От Julien Rouhaud
Тема Re: sync request forward function ForwardSyncRequest() might hang for some time in a corner case?
Дата
Msg-id CAOBaU_Y9miziVTYJJaBdYw=8sGN364psA-HS6NFuPi=tUvkYKg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: sync request forward function ForwardSyncRequest() might hang for some time in a corner case?  (Paul Guo <paulguo@gmail.com>)
Ответы Re: sync request forward function ForwardSyncRequest() might hang for some time in a corner case?  (Paul Guo <paulguo@gmail.com>)
Список pgsql-hackers
On Thu, May 27, 2021 at 10:05 PM Paul Guo <paulguo@gmail.com> wrote:
>
> Also note that ForwardSyncRequest() does wake up the checkpointer if
> it thinks the requests in shared memory are "too full", but does not
> wake up when the request is actually full. This does not seem to be reasonable.
> See below code in ForwardSyncRequest
>
>     /* If queue is more than half full, nudge the checkpointer to empty it */
>     too_full = (CheckpointerShmem->num_requests >=
>                 CheckpointerShmem->max_requests / 2);
>
>     /* ... but not till after we release the lock */
>     if (too_full && ProcGlobal->checkpointerLatch)
>         SetLatch(ProcGlobal->checkpointerLatch);

Ah indeed.  Well it means that the checkpointer it woken up early
enough to avoid reaching that point.  I'm not sure that it's actually
possible to reach a point where the list if full and the checkpointer
is sitting idle.



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

Предыдущее
От: Paul Guo
Дата:
Сообщение: Re: sync request forward function ForwardSyncRequest() might hang for some time in a corner case?
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Move pg_attribute.attcompression to earlier in struct for reduced size?