Re: Reducing the WAL overhead of freezing in VACUUM by deduplicating per-tuple freeze plans

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: Reducing the WAL overhead of freezing in VACUUM by deduplicating per-tuple freeze plans
Дата
Msg-id CAH2-Wzk57ciXvVRnNWPTnrqok5U+frEORzr7excSw+wGFTDdYg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Reducing the WAL overhead of freezing in VACUUM by deduplicating per-tuple freeze plans  (Andres Freund <andres@anarazel.de>)
Ответы Re: Reducing the WAL overhead of freezing in VACUUM by deduplicating per-tuple freeze plans
Список pgsql-hackers
On Mon, Jan 9, 2023 at 1:43 PM Andres Freund <andres@anarazel.de> wrote:
> ISTM that some of the page level freezing functions are misnamed. In heapam.c
> the heap_xlog* routines are for replay, afaict. However
> heap_xlog_freeze_plan() is used to WAL log the freeze
> plan. heap_xlog_freeze_page() is used to replay that WAL record. Probably your
> brain is too used to nbtree/ :).

Sometimes I wonder why other people stubbornly insist on not starting
every function name with an underscore.   :-)

> I think s/heap_xlog_freeze/heap_log_freeze/ would mostly do the trick, except
> that heap_xlog_new_freeze_plan() doesn't quite fit in the scheme.

> The routines then also should be moved a bit up, because right now they're
> inbetween other routines doing WAL replay, adding to the confusion.

I believe that I used this scheme because of the fact that the new
functions were conceptually related to REDO routines, even though they
run during original execution. I'm quite happy to revise the code
based on your suggestions, though.

> The memcpy in heap_xlog_freeze_page() seems a tad odd. I assume that the
> alignment guarantees for xl_heap_freeze_plan are too weak?

They're not too weak. I'm not sure why the memcpy() was used. I see
your point; it makes you wonder if it must be necessary, which then
seems to call into question why it's okay to access the main array as
an array. I can change this detail, too.

I'll try to get back to it this week.

--
Peter Geoghegan



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

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: BUG: Postgres 14 + vacuum_defer_cleanup_age + FOR UPDATE + UPDATE
Следующее
От: Andres Freund
Дата:
Сообщение: Re: WAL Insertion Lock Improvements (was: Re: Avoid LWLockWaitForVar() for currently held WAL insertion lock in WaitXLogInsertionsToFinish())