pgsql: Set all_visible_according_to_vm correctly with DISABLE_PAGE_SKIP

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема pgsql: Set all_visible_according_to_vm correctly with DISABLE_PAGE_SKIP
Дата
Msg-id E1rjbpv-003D0D-F1@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Set all_visible_according_to_vm correctly with DISABLE_PAGE_SKIPPING

It's important for 'all_visible_according_to_vm' to correctly reflect
whether the VM bit is set or not, even when we are not trusting the VM
to skip pages, because contrary to what the comment said,
lazy_scan_prune() relies on it.

If it's incorrectly set to 'false', when the VM bit is in fact set,
lazy_scan_prune() will try to set the VM bit again and dirty the page
unnecessarily. As a result, if you used DISABLE_PAGE_SKIPPING, all
heap pages were dirtied, even if there were no changes. We would also
fail to clear any VM bits that were set incorrectly.

This was broken in commit 980ae17310, so backpatch to v16.

Backpatch-through: 16
Reviewed-by: Melanie Plageman, Peter Geoghegan
Discussion: https://www.postgresql.org/message-id/3df2b582-dc1c-46b6-99b6-38eddd1b2784@iki.fi

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/674e49c73c1c442d05a46388fcc1431fbd59ca44

Modified Files
--------------
src/backend/access/heap/vacuumlazy.c | 4 ----
1 file changed, 4 deletions(-)


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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Don't destroy SMgrRelations at relcache invalidation
Следующее
От: Nathan Bossart
Дата:
Сообщение: pgsql: vacuumdb: Allow specifying objects to process in all databases.