↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 RSS 订阅

当天收录 26 条。

PostgreSQL 修复增量备份遗留可见性位

Ke、Fujii Masao、Shihao ZhongPostgreSQL 提交

PostgreSQL 合入增量备份修复:校验和与 wal_log_hints 均关闭时,VACUUM 截断表可能使备份沿用最后一个可见性映射页的旧内容。恢复后的表再次增长,错误位会让 VACUUM 漏冻结,甚至让仅索引扫描返回已删除行。补丁在汇总截断 WAL 时标记该页发生变化,提交注明回补至 17。已有 WAL summary 和旧备份不会自动修复,更新后须从健康服务器重新做全量备份。

UUID 随机主键的代价体现在缓存与 WAL

Nikolay SamokhvalovPostgresAI

PostgresAI 在 PostgreSQL 18.6 上用受控内存、16 个客户端和单行事务比较 UUIDv4 与有序键。随着表增长到一亿行,随机 UUID 的插入速率约为有序方案的 0.62–0.69,每行 WAL 约多 1.5–1.9 倍;作者将差异归因于 B-tree 叶页工作集更分散,以及 full-page image 写放大。文章还讨论 UUIDv4 与 UUIDv7 混用的迁移边界,但这部分不是同一组基准的结论。

pgEdge 原地升级实测揭示复制原点重建细节

Ahsan Hadi、Susan DouglaspgEdge

pgEdge 在三写节点 Spock 集群中,用 pg_upgrade --link 将一个节点从 PostgreSQL 17.10 升至 18.6,其余节点继续接收写入。实测发现,Spock 的复制原点不会随升级迁移,须按发布端确认的 LSN 重建;Patroni 也要处理系统标识变化并重建备用节点。新旧集群还需匹配校验和和扩展设置。文章补充了原地升级特有的恢复步骤,单个节点在升级期间仍会停机。

Neon 披露分层缓存的生产读分布

Carlota SotoNeon Engineering Blog

Neon 公开 Lakebase 的生产样本:约 99.46% 的页访问由计算节点缓存提供,约 0.54% 由 pageserver 的本地 NVMe 提供,对象存储平均每秒约 39 次请求。读取缺层时,pageserver 会把 image layer 与 WAL delta layer 重建为指定 LSN 的页面。这个比例是厂商样本,不是所有查询的延迟或 SLA;旧时间点分支、恢复和长期休眠唤醒仍可能触发冷读。

GitHub 介绍新的 Git 存储架构

Karthik Raman、Brian CelenzaGitHub

GitHub 披露新 Git 存储架构的写入协议:先持久化对象,再由 Ref-CAS 原子提交引用和包清单,避免读者看到尚未落稳的数据。对象压缩交给独立集群,减少维护任务与在线写入争用资源。这篇文章补充此前架构介绍未展开的提交顺序和后台维护路径,说明如何在扩大存储规模时守住引用一致性。新系统仍处私有预览,文中扩展性数据来自内部验证。

Cloudflare 将 DNS 构建内存从 79 GiB 降到 12 GiB

Alex FattoucheCloudflare

Cloudflare 重做权威 DNS 构建流水线,按变更类型定向构建、合并同区域任务,并把 Kafka 确认与副本检查拆开。其内部数据中峰值工作内存从 79 GiB 降到 12 GiB,变更到构建完成的中位时间从约 7.7 秒降到 3.3 秒。这里的数字描述构建流程,不是全球 DNS 传播延迟;收益依赖其分区、队列和副本架构。