PG 修复分区索引校验与并行恢复的竞态
PostgreSQL 已合入分区索引校验的并发修复。旧实现将父索引标为有效后,过早释放父索引和父表上的锁;并行恢复 pg_dump 备份时,外键创建可能与其依赖的主键校验发生竞态,导致恢复失败。补丁将这些锁保留到事务提交,与常规 DDL 的处理保持一致。问题可追溯至 PostgreSQL 11,提交标注回补至 14。大量使用分区表与并行恢复的团队可重点回归相关场景,维护版本的发布仍需另行关注。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 26 条。
PostgreSQL 已合入分区索引校验的并发修复。旧实现将父索引标为有效后,过早释放父索引和父表上的锁;并行恢复 pg_dump 备份时,外键创建可能与其依赖的主键校验发生竞态,导致恢复失败。补丁将这些锁保留到事务提交,与常规 DDL 的处理保持一致。问题可追溯至 PostgreSQL 11,提交标注回补至 14。大量使用分区表与并行恢复的团队可重点回归相关场景,维护版本的发布仍需另行关注。
PostgreSQL 已修复 pg_listening_channels 的哈希扫描泄漏。此前该集合返回函数在多次调用之间保持扫描状态,若执行器因 LIMIT 等原因提前停止取行,扫描会一直登记到事务结束,产生资源泄漏报错,最终可能触发 PANIC。新实现先把结果物化到临时存储,在单次调用内完成扫描,避免清理依赖后续取行。补丁已合入,标注回补至 PostgreSQL 19;它处理的是频道枚举的资源生命周期,与此前通知队列推进修复不同。
Awide 介绍了将 CSN 多版本并发控制移植到 PostgreSQL 17 分支的工程细节。快照不再复制活跃事务列表,而是读取提交序列号,再通过 CSNLOG 判断事务可见性,减少对 ProcArray 锁的争用。实现还须保证最老事务边界与序列号之间的读取顺序,处理事务列表溢出,并在恢复期间避免错误信任页面的全可见标记。这些修正关系到快照正确性,不能只替换取号路径;该机制属于 Awide 的分支实现。
Awide 详解了 DataMax 日志存储节点:它接收、落盘并级联传输 WAL,不维护完整数据文件,也不执行日志回放。部署在主库同一可用区时,可承担同步提交的确认,让远端副本异步接收日志,降低跨区域确认延迟。节点利用主库系统标识初始化,无须先复制完整基础备份,同时还要协调日志保留边界。它提供的是轻量 WAL 持久化副本;实际恢复仍依赖可用的数据基线,同区部署也不能单独覆盖整个可用区失效。
Yugabyte 复盘了一起应用扩容引发的连接压力:两组服务各可扩到 64 个实例,应用连接池上限叠加后可达 1920 条,而数据库只有三个节点、每节点八个虚拟 CPU。案例通过 YSQL Connection Manager 将逻辑连接复用到较少的物理后端,同时保留应用侧连接池,避免仅为连接数量扩容数据库。厂商称该方案未增加硬件;文中的容量估算依赖工作负载,长事务和需要会话绑定的操作仍会削弱复用效果。
Starlake 梳理了将 DuckDB 暴露为多用户查询服务时的安全边界。共享进程可能同时持有文件访问权、凭据和全局配置,简单过滤 SQL 文本难以覆盖元数据与运行时查询路径。远端连接标为只读,也不能替代远端账户自身的权限约束:透传操作仍须按实际连接身份审视。文章建议为远端数据源使用最小权限角色,隔离工作目录与秘密文件,在启动阶段固定配置,并使用与引擎语义一致的解析方式约束查询。
旧代引用释放时可能遗留已删除条目,引发关闭断言或退出报错;补丁重做并发清理判断,标注回补至 PG15。
函数级 SET 会改变可见参数值,却不重设已经启动的语句超时;PostgREST 提前提升参数的行为需单独区分。
v26.47 的 TRY_CAST 只求值一次,转换失败返回 NULL,避免单个异常值导致物化视图整体查询报错。
从多数派共识、WAL 传输到 CRDT 合并,文章区分了可靠复制、恢复与多写者场景各自需要解决的问题。
10 月 20 日故障持续 6 小时 10 分钟,双路发电机控制器失效后,跨区控制调用和切换容量压力扩大影响;最终报告待发布。
Transit Gateway 与 Cloud WAN 可借区域私有 NAT 在连接附件上做双向地址转换,连接 CIDR 重叠的网络。
MagicRoute 为连接器排序,并尽量保持健康的首选路径,减少中继区域抖动造成的切换;公测面向 Premium 与 Enterprise。
修订调查指出,五月未撤销的主密钥导致后续令牌失窃,攻击者经 CI 发布恶意 1.107.0;团队更正了早期日志泄露解释。