我不确定HEAP_XMAX_COMMITTED对应什么样的真实情况。[1] 中没有关于 HEAP_XMAX_COMMITTED 的测试用例。
两个会话,如何重现元组标记为 HEAP_XMAX_COMMITTED 的情况?
[1] https://git.postgresql.org/cgit/postgresql.git/plain/contrib/pageinspect/expected/page.out
我不确定HEAP_XMAX_COMMITTED对应什么样的真实情况。[1] 中没有关于 HEAP_XMAX_COMMITTED 的测试用例。
两个会话,如何重现元组标记为 HEAP_XMAX_COMMITTED 的情况?
[1] https://git.postgresql.org/cgit/postgresql.git/plain/contrib/pageinspect/expected/page.out
HEAP_XMAX_COMMITTED
是一个提示位,表示该行已被删除或更新(设置xmax
),并且执行此操作的事务已提交。这是一个例子:
行指针为 1 的第一行已更新(
xmax
不为 0),但尚未有人读取该行,因此未设置提示位。第一个读者出现了:
现在提示位已设置,下一个读者不必查阅提交日志来确定行指针为 1 的元组是否可见。