pgsql: Revise BTP_HAS_GARBAGE nbtree VACUUM comments.

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема pgsql: Revise BTP_HAS_GARBAGE nbtree VACUUM comments.
Дата
Msg-id E1impJf-0006b2-La@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Revise BTP_HAS_GARBAGE nbtree VACUUM comments.

_bt_delitems_vacuum() comments claimed that it isn't worth another scan
of the page to avoid falsely unsetting the BTP_HAS_GARBAGE page flag
hint (this happens to be the same wording that was removed from
_bt_delitems_delete() by my recent commit fe97c61c).  The comments made
little sense, though.  The issue can't have much to do with performing a
second scan of the target leaf page, since an LP_DEAD test could easily
be performed in the first scan of the page anyway (the scan that takes
place in btvacuumpage() caller).

Revise the explanation.  It makes much more sense to frame this as an
issue about recovery conflicts.  _bt_delitems_vacuum() cannot easily
generate an XID cutoff in the same way that _bt_delitems_delete() is
designed to.

Falsely unsetting the page flag is not ideal, and is likely to happen
more often than was supposed by the original comments.  Explain why it
usually isn't a problem in practice.  There may be an argument for
_bt_delitems_vacuum() not clearing the BTP_HAS_GARBAGE bit, removing the
question of it being falsely unset by VACUUM (there may even be an
argument for not using a page level hint at all).  This can be revisited
later.

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4b25f5d0ba0197af80e3af0de7441ca9c88c1e24

Modified Files
--------------
src/backend/access/nbtree/nbtpage.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Test GROUP BY matching of join columns that are type-coerced by
Следующее
От: Amit Kapila
Дата:
Сообщение: pgsql: Fix running out of file descriptors for spill files.