Skip to content

Commit da9517f

Browse files
Reset btpo_cycleid in nbtree VACUUM's REDO routine.
Reset btpo_cycleid to 0 in btree_xlog_vacuum for consistency with _bt_delitems_vacuum (the corresponding original execution code). This makes things neater. There might be some performance benefit to being consistent like this. When btvacuumpage doesn't call _bt_delitems_vacuum, it can still proactively reset btpo_cycleid to 0 via a separate hint-like update mechanism (it does so whenever it sees that it isn't already set to 0). And so it's possible that being consistent about resetting btpo_cycleid like this will save work later on, after standby promotion: subsequent VACUUMs won't need to clear btpo_cycleid using the hint-like update mechanism as often as they otherwise would. Author: Peter Geoghegan <pg@bowt.ie> Reviewed-By: Andrey Borodin <x4mmm@yandex-team.ru> Discussion: https://postgr.es/m/CAH2-Wz=+LDFxn9NZyEsCo8ifcyKt6+n-VLyygySEHgMz+oynqw@mail.gmail.com
1 parent c431986 commit da9517f

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/backend/access/nbtree/nbtxlog.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -634,10 +634,11 @@ btree_xlog_vacuum(XLogReaderState *record)
634634
PageIndexMultiDelete(page, (OffsetNumber *) ptr, xlrec->ndeleted);
635635

636636
/*
637-
* Mark the page as not containing any LP_DEAD items --- see comments
638-
* in _bt_delitems_vacuum().
637+
* Clear the vacuum cycle ID, and mark the page as not containing any
638+
* LP_DEAD items
639639
*/
640640
opaque = BTPageGetOpaque(page);
641+
opaque->btpo_cycleid = 0;
641642
opaque->btpo_flags &= ~BTP_HAS_GARBAGE;
642643

643644
PageSetLSN(page, lsn);
@@ -698,7 +699,10 @@ btree_xlog_delete(XLogReaderState *record)
698699
if (xlrec->ndeleted > 0)
699700
PageIndexMultiDelete(page, (OffsetNumber *) ptr, xlrec->ndeleted);
700701

701-
/* Mark the page as not containing any LP_DEAD items */
702+
/*
703+
* Do *not* clear the vacuum cycle ID, but do mark the page as not
704+
* containing any LP_DEAD items
705+
*/
702706
opaque = BTPageGetOpaque(page);
703707
opaque->btpo_flags &= ~BTP_HAS_GARBAGE;
704708

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy