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

+7-3
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)