↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

WAL 压缩补丁漏掉 PageSetLSN,崩溃后会丢提示位 RSS

Surya Poondla 审查 WAL 记录压缩补丁时发现违反 WAL-before-data 规则的问题:补丁为纯提示位变更写紧凑记录时没有更新页面 LSN,而 FlushBuffer() 完全靠页面 LSN 保证顺序,跳过 PageSetLSN() 会让 XLogFlush() 变成空操作,页面可能先于对应的 WAL 记录落盘。一旦崩溃,页面上已有的提示位无法通过 WAL 恢复。

发布于 2026-09-10T10:59:48.503326Z · Surya Poondla · PostgreSQL hackers
WAL 压缩 正确性

Surya Poondla 审查 WAL 记录压缩补丁时发现违反 WAL-before-data 规则的问题:补丁为纯提示位变更写紧凑记录时没有更新页面 LSN,而 FlushBuffer() 完全靠页面 LSN 保证顺序,跳过 PageSetLSN() 会让 XLogFlush() 变成空操作,页面可能先于对应的 WAL 记录落盘。一旦崩溃,页面上已有的提示位无法通过 WAL 恢复。

Surya Poondla 审查 WAL 记录压缩补丁时发现违反 WAL-before-data 规则的问题:补丁为纯提示位变更写紧凑记录时没有更新页面 LSN,而 FlushBuffer() 完全靠页面 LSN 保证顺序,跳过 PageSetLSN() 会让 XLogFlush() 变成空操作,页面可能先于对应的 WAL 记录落盘。一旦崩溃,页面上已有的提示位无法通过 WAL 恢复。

原始来源 ↗

来源记录
  • center.info_item · 074a8f04d229e48f · 2026-10-03T04:08:35.169032Z
  • pgweb.info_item · 074a8f04d229e48f · 2026-10-03T04:08:55.967155Z