选择 打开 改范围 完整检索页

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

PostgreSQL 博览 RSS 订阅

当天收录 37 条。

PostgreSQL 19 Beta 2 发布

PostgreSQL 全球开发组PostgreSQL 新闻

PostgreSQL 全球开发组发布了 PostgreSQL 19 的第二个 Beta。相比 Beta 1,这一版修掉了 vacuumdb --analyze-in-stages 在分区表上的回归、虚拟生成列的元组解构优化、FATAL 退出时 REPACK worker 未清理、逻辑解码激活时的竞态,以及 autovacuum 多事务年龄评分可能趋于无穷等问题。正式版预计 9 到 10 月发布。

CYBERTEC 开源备份工具 pg_hardstorage 1.0

Hans-Jürgen SchönigCYBERTEC

CYBERTEC 发布 pg_hardstorage v1.0,Apache 2.0 授权,没有企业版分层,也不要求签 CLA。它通过原生复制协议流式接收 WAL,不需要配置 archive_command,可以直接用于 RDS、Cloud SQL、Aiven、Supabase 这类托管服务。特性包括 Patroni 感知的故障切换、内容寻址去重、五种 KMS 与存储后端、按租户的加密擦除和哈希链式审计日志。

wal_compression = on 拟改为自动挑最优算法

Tomas VondraPostgreSQL hackers

目前 wal_compression = 'on' 固定映射到 pglz,那是 PostgreSQL 15 之前唯一支持的算法。提案要把 'on' 改成按 zstd、lz4、pglz 的优先级自动选择,默认值仍保持 'off'。Tomas Vondra、Andres Freund 和 Michael Paquier 都支持,Fujii Masao 反对。WAL 压缩数据不跨 pg_upgrade 保留,兼容风险比 TOAST 压缩低。

行模式识别匹配器经交叉验证查出三处缺陷

Henson ChoiPostgreSQL hackers

Henson Choi 用 Oracle 23ai 和 Trino 471 作参照,对约 1000 条 PATTERN 语句做了系统交叉验证。匹配器的优先级逻辑里查出三个正确性缺陷:循环守卫误判重复变量状态、空迭代停止规则处理不当、固定计数分组的快进顺序错误。上下文吸收优化里还发现两个错误结果和一处可能的规划期死循环。PostgreSQL 相比 Oracle 在解析阶段拒绝的 11 条查询都有记录在案的设计依据。

PG19 Beta 1 在 track_io_timing 开启时会断言失败

Andrey RachitskiyPostgreSQL hackers

PostgreSQL 19 Beta 1 有个由提交 999dec9ec6a 引入的崩溃:并行 worker 退出时 pgstat_bktype_io_stats_valid() 断言失败。复现条件是 track_io_timing=on,当 WaitReadBuffers() 等待别的 backend 发起的外部 IO 时,会以 cnt=0 调用计时函数,写入非零读取时间却不增加读取计数。目前的主要候选方案是跳过这段外部等待时间。

在线修改 wal_level 的两处后续修复已提交

Masahiko SawadaPostgreSQL hackers

Masahiko Sawada 审查在线修改 wal_level 的提交时发现两个问题。一是崩溃恢复期间的断言失败:实例在 wal_level='replica' 下建了逻辑槽,checkpointer 还没停用逻辑解码就崩溃,随后以 'minimal' 重启即触发。修复去掉了恢复结束时针对 minimal 的特殊处理,改为统一重算状态。二是 pg_controldata 没显示检查点记录里的逻辑解码状态。两个补丁都已提交。

join MCV 统计让 ANALYZE 从 36 秒涨到九分钟

Ilia EvdokimovPostgreSQL hackers

Ilia Evdokimov 在测试 join MCV 统计的 v8 补丁时发现严重性能问题:给一张 50 万行和一张 2 万行的表建立 join MCV 统计之后,ANALYZE 的执行时间从约 36 秒涨到九分钟以上。性能剖析显示瓶颈在索引扫描期间取堆元组的阶段,绝大部分时间花在为每条索引项申请和释放缓冲区锁上,真正的 btree 遍历只占极小比例。他暂时没有明显的优化方案。