pgsql: Remove retry loop in heap_page_prune().

Поиск
Список
Период
Сортировка
От Robert Haas
Тема pgsql: Remove retry loop in heap_page_prune().
Дата
Msg-id E1qnLOz-0079Pa-JM@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Remove retry loop in heap_page_prune().

The retry loop is needed because heap_page_prune() calls
HeapTupleSatisfiesVacuum() and then lazy_scan_prune() does the same
thing again, and they might get different answers due to concurrent
clog updates.  But this patch makes heap_page_prune() return the
HeapTupleSatisfiesVacuum() results that it computed back to the
caller, which allows lazy_scan_prune() to avoid needing to recompute
those values in the first place. That's nice both because it eliminates
the need for a retry loop and also because it's cheaper.

Melanie Plageman, reviewed by David Geier, Andres Freund, and me.

Discussion: https://postgr.es/m/CAAKRu_br124qsGJieuYA0nGjywEukhK1dKBfRdby_4yY3E9SXA%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1ccc1e05ae8feabf444259234d34e1e32231604d

Modified Files
--------------
src/backend/access/heap/pruneheap.c  | 36 ++++++++++++++----------------
src/backend/access/heap/vacuumlazy.c | 43 +++++++++++-------------------------
src/include/access/heapam.h          | 25 +++++++++++++++++++++
3 files changed, 55 insertions(+), 49 deletions(-)


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

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: pgsql: Flush WAL stats in bgwriter
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Fix omission of column-level privileges in selective pg_restore.