PostgreSQL 19 的异步 I/O 学会自己伸缩
Christophe Pettus 回看异步 I/O 落地一年后的变化。PostgreSQL 19 新增四个参数,为 I/O 工作进程池设定上下限、空闲超时和启动间隔,让它像自动伸缩器:查询真的等 I/O 时扩容,闲下来就收缩。预读窗口随扫描规模放大,宽表扫描和索引范围扫描受益最明显;EXPLAIN ANALYZE 新增 IO 选项,可按节点查看异步 I/O 活动。他建议按 19 的默认值重新压测,把 18 上手调的进程数换成上下限。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 15 条。
Christophe Pettus 回看异步 I/O 落地一年后的变化。PostgreSQL 19 新增四个参数,为 I/O 工作进程池设定上下限、空闲超时和启动间隔,让它像自动伸缩器:查询真的等 I/O 时扩容,闲下来就收缩。预读窗口随扫描规模放大,宽表扫描和索引范围扫描受益最明显;EXPLAIN ANALYZE 新增 IO 选项,可按节点查看异步 I/O 活动。他建议按 19 的默认值重新压测,把 18 上手调的进程数换成上下限。
Linux 7.0 在多个架构上删掉了 PREEMPT_NONE 抢占模式,默认改为 PREEMPT_FULL 或 PREEMPT_LAZY。AWS 的压测显示特定条件下 PostgreSQL 吞吐掉到 6.x 的 0.51 倍。Christophe Pettus 指出触发条件很窄:巨大的共享内存以小页映射、高并行度、工作集不断拉入新页面。打开 huge_pages 后次要缺页从约 3100 万降到约 120 次,可以照常升级内核。
storage_engine 是提供两种表访问方法的 PostgreSQL 扩展:colcompress 走列式压缩存储,支持向量化执行、chunk 级 min/max 裁剪、并行扫描和 MergeTree 式排序;rowcompress 走行式批量压缩,用删除位图实现 DELETE 与 UPDATE。作者给出的百万行串行测试里,聚合最高快 10 倍,数据体积缩小 3 到 5 倍。当前版本兼容 PostgreSQL 16 到 18。
EMS 发布数据库管理工具 SQL Management Studio for PostgreSQL 2.0。界面侧加入深色主题,并改进高 DPI 与大字号显示,在高分辨率屏幕上保持正确缩放;平台侧原生支持 Windows 11 ARM。安全方面,出站邮件通知支持 SSL/TLS 与 STARTTLS。日常运维新增任务导入导出,迁移或备份时可保存与恢复任务和调度配置,日志文件名也能按自定义日期时间格式生成。
Embodied Carbon Observatory 要分清工厂是真的减排,还是沾了电网变干净的光。Andrew Stebbins 把 4 万份环境产品声明和 EPA 二十多年的电网数据对齐,追踪全美 1.5 万个制造设施的碳强度轨迹,难点是两套更新频率完全不同的时序数据:EPD 不定期更新,电网数据按年发布。原本归因查询要 6 到 8 秒,撑不起交互式地图;改用 TimescaleDB 的超表与连续聚合后降到 100 毫秒以内。
Nisha Moond 的审查补上了 replica_identity 列与文档措辞,Vignesh 又做了一次变基。
Fujii Masao 新增 EndCommandExtended(),让关闭流程边刷输出边处理回复并遵守超时设置。
Andres Freund 用 -ftrapv 编译时发现 slow_down 重试间隔累加溢出,改用带溢出检查的加法。
Mihail Nikalayeu 反对唤醒其他后端强制取消,主张检测到锁循环时由 REPACK 直接取消对方。
PARALLEL_APPLY 与 LOGICAL_REP 两种内部消息共用字节 i,路由逻辑因此变得难读。