Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commiteca0f1d

Browse files
committed
Clear all-frozen visibilitymap status when locking tuples.
Sincea892234 &fd31cd2 the visibilitymap's freeze bit is used toavoid vacuuming the whole relation in anti-wraparound vacuums. Doing socorrectly relies on not adding xids to the heap without also unsettingthe visibilitymap flag. Tuple locking related code has not done so.To allow selectively resetting all-frozen - to avoid pessimizingheap_lock_tuple - allow to selectively reset the all-frozen withvisibilitymap_clear(). To avoid having to usevisibilitymap_get_status (e.g. via VM_ALL_FROZEN) inside a criticalsection, have visibilitymap_clear() return whether any bits have beenreset.There's a remaining issue (denoted by XXX): After the PageIsAllVisible()check in heap_lock_tuple() and heap_lock_updated_tuple_rec() the pagestatus could theoretically change. Practically that currently seemsimpossible, because updaters will hold a page level pin already. Due tothe next beta coming up, it seems better to get the required WAL magicbump done before resolving this issue.The added flags field fields to xl_heap_lock and xl_heap_lock_updatedrequire bumping the WAL magic. Since there's already been a catversionbump since the last beta, that's not an issue.Reviewed-By: Robert Haas, Amit Kapila and Andres FreundAuthor: Masahiko Sawada, heavily revised by Andres FreundDiscussion: CAEepm=3fWAbWryVW9swHyLTY4sXVf0xbLvXqOwUoDiNCx9mBjQ@mail.gmail.comBackpatch: -
1 parent6563208 commiteca0f1d

File tree

7 files changed

+194
-58
lines changed

7 files changed

+194
-58
lines changed

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp