PostgreSQL 19 的 IO 指标解释预取效果
Franck Pachot 用执行计划示例解析 PostgreSQL 19 测试版的 EXPLAIN IO 选项:传统 BUFFERS 统计缓存命中与读取块数,新指标则展示预取深度、实际 I/O 请求数量、请求大小、并发度及未及时完成的读取次数。示例将约 2.9 万次块读取合并为 1825 次请求,扫描只在其中 7 次遭遇尚未完成的 I/O。分析慢扫描时应结合这些指标判断预取是否隐藏延迟,不能把等待次数直接当作等待时长。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 26 条。
Franck Pachot 用执行计划示例解析 PostgreSQL 19 测试版的 EXPLAIN IO 选项:传统 BUFFERS 统计缓存命中与读取块数,新指标则展示预取深度、实际 I/O 请求数量、请求大小、并发度及未及时完成的读取次数。示例将约 2.9 万次块读取合并为 1825 次请求,扫描只在其中 7 次遭遇尚未完成的 I/O。分析慢扫描时应结合这些指标判断预取是否隐藏延迟,不能把等待次数直接当作等待时长。
PgBouncer 1.26.0 修复三项拒绝服务漏洞:未认证客户端可触发进程崩溃或缓冲区增长死循环,恶意 PostgreSQL 服务端则可通过过大的 SCRAM 迭代次数拖住登录。新版本还默认跟踪搜索路径与事务只读状态,新增空闲连接池超时,并允许按用户和数据库设置查询排队超时。已弃用的在线重启选项 -R 被移除,维护连接池的团队需要同时核对认证风险、会话状态与升级时的重启方式。
安全研究者 Mehmet Ince 发布系列第二篇,称已向多家托管 PostgreSQL 厂商报告 76 项安全加固扩展漏洞。文章聚焦临时借用超级用户身份时的校验缺口:对象先按名称通过检查,切换身份后再次解析,却可能执行另一个对象;单纯屏蔽函数名也存在绕过路径。研究者称 Supabase 已修复其中四项问题。服务商审计需要覆盖对象身份、权限切换和底层危险能力,而不能只核对一份函数黑名单。
CloudNativePG 1.30.1 集中修复高可用控制流程:故障切换不再被已隔离实例拖住,待完成的切换持续推进,并在提升前重新检查仲裁安全;主节点启动 PostgreSQL 前必须先持有主租约,避免重启后过早接受写入。版本还修复扩展路径校验绕过,以及插件恢复将 WAL 写入错误卷导致空间耗尽的问题,同时补正备份与监控行为。同日发布的 1.29.3 是该分支最后维护版本,使用者需要安排迁往受支持分支。
Stefan Fercot 复现了备库在关闭归档时被提升的场景:即使让下游备库归档并成功生成新备份,也无法补回切换附近缺失的 WAL 和时间线历史文件,旧备份仍可能无法跨越该断点恢复。关闭归档模式检查并不会放行主库的归档关闭状态,修改工具绕过检查也不能证明恢复链完整。实验建议提前为候选主库启用归档并配置归档命令;若已进入错误配置,应通过计划重启或受控切换恢复,再验证跨时间线恢复能力。
FireTV 的观看进度原先把整个用户档案压成一个 DynamoDB 条目,档案增长后既逼近 400 KB 上限,也让每次小更新承担整块写入成本。团队改为按内容拆分小条目,再在排序键前加入哈希,将完整档案拆成多个范围并行读取,避开大结果集的串行分页。厂商称写成本下降 97%,平均读取约 8 毫秒;代价是读取字节增多,按内容提供方等条件查询还需额外索引。迁移通过双写、影子读取与全量比对逐步切换。
目标行并发删除后,缺少源行的操作不应转入插入分支;修复已回补至引入该功能的 PostgreSQL 17。
同步进程会在订阅锁内确认序列仍被订阅,避免并发移除序列导致整批回滚,甚至触发订阅禁用;修复回补至 19。
反向跨页读取曾错误递减剩余块数,可能过早结束扫描;这项结果正确性修复已回补至 PostgreSQL 14。
官方详解待发布版本的 GTID 候选筛选与脑裂恢复:只竞争领先历史,选择冲突分支须由运维显式确认且会丢失另一支事务。
本地 Python 可调用集群的 DataFrame 与 SQL 引擎;首版不支持 RDD、多主节点及 Lake Formation 细粒度授权。
新的期望状态协调引擎支持取消迁移和疏散节点,同时引入每流默认 1000 个消费者上限,现有消费者不受删除影响。
预览扩展用服务器变量控制只读查询、模式和表白名单,默认隐藏写工具,实际权限边界仍由专用数据库账户的授权决定。
工程团队将确定高度的代码行与动态评论分开索引,按视口延迟测量并保留滚动锚点,避免大规模审查时跳动和重复计算。