PostgreSQL 19 拟把 JIT 默认关掉
把 jit 的默认值从 on 改成 off,在邮件列表上获得了一致支持。理由有两条:JIT 刚引入时分区表还不普遍,如今分区用得多了,被误伤的查询也多了;LLVM 自身的编译性能这些年在退步,默认开启的收益越来越薄。Jelte Fennema-Nio 已把提案标记为可供提交者处理,Tomas Vondra 表示若无人反对就在几天内提交,Tom Lane 也表态支持。时机上大家倾向于现在就动手而不是等到测试版中期,好让负面反馈尽早暴露。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 17 条。
把 jit 的默认值从 on 改成 off,在邮件列表上获得了一致支持。理由有两条:JIT 刚引入时分区表还不普遍,如今分区用得多了,被误伤的查询也多了;LLVM 自身的编译性能这些年在退步,默认开启的收益越来越薄。Jelte Fennema-Nio 已把提案标记为可供提交者处理,Tomas Vondra 表示若无人反对就在几天内提交,Tom Lane 也表态支持。时机上大家倾向于现在就动手而不是等到测试版中期,好让负面反馈尽早暴露。
问题出在事务状态检查上:SELECT 期间 pgfdw_reject_incomplete_xact_state_change() 会销毁连接并把缓存条目置空,但扫描状态里那份指针仍指向已释放的内存,随后执行 close c1 之类的命令就会访问野指针而崩溃。Etsuro Fujita 的补丁把 PGconn 的释放推迟到事务回滚清理时进行,复测确认崩溃消失。该缺陷影响 14 及以后版本,需要回迁到各稳定分支。
Matty Stratton 算了一笔账:MVCC 让读写互不阻塞,代价是每行都带 23 字节的事务可见性头部,算上对齐填充是 28 到 30 字节。IoT 管道、金融流水、可观测性这类只追加的负载并不修改已写入的行,却照样承担全部成本:高频写入下写放大到 3 至 5 倍,autovacuum 为设置提示位和冻结事务号持续运转,WAL 也随之膨胀。解法是让存储形态匹配负载,例如用列式存储把行批量打包,摊薄 MVCC 的固定开销。
Shaun Thomas 的 Patroni 高可用系列走到第三篇,前两篇搭起 etcd 与 Patroni 本体,这篇补上入口。HAProxy 以裸 TCP 转发连接,用 HTTP 检查打 Patroni 的 REST 接口判断角色:6543 端口只连主库,根路径返回 200 者为主;6544 端口连只读副本,用 /replica?lag=1MB 排除延迟过大的节点。三节点同在一个后端池,默认三次检查失败即摘除,并断开其上会话防脑裂。
pg_clickhouse 是把 PostgreSQL 接到 ClickHouse 的扩展,由 ClickHouse 赞助开发。David E. Wheeler 发布的 0.1.5 是一次维护更新,修掉了渗透测试和一份社区安全报告中发现的崩溃与漏洞,文章没有展开具体的技术细节。安装渠道有三条:PGXN 包仓库、GitHub 的发行页和 Docker 镜像。作者说明自己近期主要精力在公司内部项目上,这个版本是针对已报告问题的响应。
v67 修好文档措辞与失效处理后由 Amit Kapila 提交,历时数周的语法之争暂告段落。
Andrew Dunstan 已提交,修掉位置参数会让 --path 失效的问题,临时目录改为按需创建。
部分备库槽不可用时逻辑复制仍可推进,按 FIRST N 或 ALL 语义判断,源于客户的实际诉求。
Tomas Vondra 追问是否该扩展到单个后端做负载均衡,以及消息是否携带断连截止时间。
含量词边界、栈深度保护与中断检查,并试验单槽 PREV/NEXT 以消除改写计划缓存的隐患。