PostgreSQL 修复增量备份遗留可见性位
PostgreSQL 合入增量备份修复:校验和与 wal_log_hints 均关闭时,VACUUM 截断表可能使备份沿用最后一个可见性映射页的旧内容。恢复后的表再次增长,错误位会让 VACUUM 漏冻结,甚至让仅索引扫描返回已删除行。补丁在汇总截断 WAL 时标记该页发生变化,提交注明回补至 17。已有 WAL summary 和旧备份不会自动修复,更新后须从健康服务器重新做全量备份。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 26 条。
PostgreSQL 合入增量备份修复:校验和与 wal_log_hints 均关闭时,VACUUM 截断表可能使备份沿用最后一个可见性映射页的旧内容。恢复后的表再次增长,错误位会让 VACUUM 漏冻结,甚至让仅索引扫描返回已删除行。补丁在汇总截断 WAL 时标记该页发生变化,提交注明回补至 17。已有 WAL summary 和旧备份不会自动修复,更新后须从健康服务器重新做全量备份。
PostgresAI 在 PostgreSQL 18.6 上用受控内存、16 个客户端和单行事务比较 UUIDv4 与有序键。随着表增长到一亿行,随机 UUID 的插入速率约为有序方案的 0.62–0.69,每行 WAL 约多 1.5–1.9 倍;作者将差异归因于 B-tree 叶页工作集更分散,以及 full-page image 写放大。文章还讨论 UUIDv4 与 UUIDv7 混用的迁移边界,但这部分不是同一组基准的结论。
pgEdge 在三写节点 Spock 集群中,用 pg_upgrade --link 将一个节点从 PostgreSQL 17.10 升至 18.6,其余节点继续接收写入。实测发现,Spock 的复制原点不会随升级迁移,须按发布端确认的 LSN 重建;Patroni 也要处理系统标识变化并重建备用节点。新旧集群还需匹配校验和和扩展设置。文章补充了原地升级特有的恢复步骤,单个节点在升级期间仍会停机。
Neon 公开 Lakebase 的生产样本:约 99.46% 的页访问由计算节点缓存提供,约 0.54% 由 pageserver 的本地 NVMe 提供,对象存储平均每秒约 39 次请求。读取缺层时,pageserver 会把 image layer 与 WAL delta layer 重建为指定 LSN 的页面。这个比例是厂商样本,不是所有查询的延迟或 SLA;旧时间点分支、恢复和长期休眠唤醒仍可能触发冷读。
GitHub 披露新 Git 存储架构的写入协议:先持久化对象,再由 Ref-CAS 原子提交引用和包清单,避免读者看到尚未落稳的数据。对象压缩交给独立集群,减少维护任务与在线写入争用资源。这篇文章补充此前架构介绍未展开的提交顺序和后台维护路径,说明如何在扩大存储规模时守住引用一致性。新系统仍处私有预览,文中扩展性数据来自内部验证。
Cloudflare 重做权威 DNS 构建流水线,按变更类型定向构建、合并同区域任务,并把 Kafka 确认与副本检查拆开。其内部数据中峰值工作内存从 79 GiB 降到 12 GiB,变更到构建完成的中位时间从约 7.7 秒降到 3.3 秒。这里的数字描述构建流程,不是全球 DNS 传播延迟;收益依赖其分区、队列和副本架构。
移除 oauth_validator_libraries 后,认证前会再次检查许可列表;错误写入服务器日志,并回补 PostgreSQL 18。
清除 SQL/JSON 跨行求值残留的 NULL 与兜底结果,避免前一行污染后续行;提交注明回补至 PG17。
重复设置 two_phase=on 不再把已启用订阅退回 pending,复制槽属性也必须与订阅配置一致。
新增去重计数、平均值和多列键,输入可包含 CTE、分区表及 RLS,并扩展分组后过滤与排序裁剪。
ReinDB 只用只读账户读取 pg_stat_statements,按小时学习基线并给出执行计划证据和可撤销修复脚本;首个数据库免费。
自定义表函数桥接 DataGrip 既有连接,让 DuckDB 联接多个数据库的查询结果;文件源仍属后续计划。
交易完成后计划共享 Iceberg 目录和访问控制,集成能力拟在第四季度陆续推出;公告中的路线图仍待具体产品落地。
异步任务可向在线表导入 S3 数据,并输出失败及跳过项目报告;取消操作不会回滚已经完成的写入。