Re: vacuum verbose no longer reveals anything about pins

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: vacuum verbose no longer reveals anything about pins
Дата
Msg-id CAH2-WznQicOf8+3dYis6HbA70+oLuVN7n1ZO2S=Y+4h6WdY_=g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: vacuum verbose no longer reveals anything about pins  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
On Thu, Jun 30, 2022 at 8:43 AM Robert Haas <robertmhaas@gmail.com> wrote:
> Ah, I missed that. I think that in the test case I was using, there
> was a conflicting pin but there were no dead tuples, so that line
> wasn't present in the output.

Even if there was a DEAD tuple, your test would still have to account
for opportunistic pruning before the cursor acquires its blocking pin
(I'm guessing that you're using a cursor for this).  The earlier
pruning could turn the DEAD tuple into either an LP_UNUSED item (in
the case of a heap-only tuple) or an LP_DEAD stub line pointer.

As I said, any existing LP_DEAD items will get put in the dead_items
array by lazy_scan_noprune, very much like it would in the
cleanup-lock-acquired/lazy_scan_prune case.

> Maybe nothing. I just thought you'd completely removed all reporting
> on this, and I'm glad that's not so.

The important idea behind all this is that VACUUM now uses a slightly
more abstract definition of scanned_pages. This is far easier to work
with at a high level, especially in the instrumentation code used by
VACUUM VERBOSE.

You may have also noticed that VACUUM VERBOSE/autovacuum logging
actually shows the number of scanned pages in Postgres 15, for the
first time -- even though that's very basic information. The revised
definition of scanned_pages enabled that enhancement. We are no longer
encumbered by the existence of a no-cleanup-lock-page special case.

-- 
Peter Geoghegan



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

Предыдущее
От: Steve Chavez
Дата:
Сообщение: Re: Add red-black tree missing comparison searches
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Hardening PostgreSQL via (optional) ban on local file system access