PostgreSQL 19 Beta 里值得关注的几处变化
Craig Kerstiens 梳理了 PostgreSQL 19 Beta:REPACK CONCURRENTLY 把不加排他锁的表重组做进内核,不必再依赖 pg_repack;ALTER TABLE 新增分区的合并与拆分;逻辑复制补上序列值同步与 ALL SEQUENCES 发布;autovacuum 支持并行 worker,并新增 pg_stat_autovacuum_scores 视图;SQL/PGQ 让关系数据直接跑图查询。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 32 条。
Craig Kerstiens 梳理了 PostgreSQL 19 Beta:REPACK CONCURRENTLY 把不加排他锁的表重组做进内核,不必再依赖 pg_repack;ALTER TABLE 新增分区的合并与拆分;逻辑复制补上序列值同步与 ALL SEQUENCES 发布;autovacuum 支持并行 worker,并新增 pg_stat_autovacuum_scores 视图;SQL/PGQ 让关系数据直接跑图查询。
Warda Bibi 复盘了一次事故:checkpointer 卡了几个小时。原因是 fsync 请求队列没有上限,在大 shared_buffers 和重写入负载下越涨越大,超过 1 GB 的内部分配上限后申请内存失败;checkpointer 捕获错误后不断重试,而两次尝试之间队列毫无变化,于是陷入死循环。13 到 16.9 都受影响,16.10 给队列加了一千万条的硬上限。临时办法是调小 shared_buffers。
Zhang Chen 从一次勒索软件事故讲起:PostgreSQL 每张表一个文件,加密整个数据目录时所有系统表文件同时受损,没有冗余可用。pg_class、pg_attribute、pg_type、pg_namespace 四张核心目录表加起来通常不到 50 MB,很容易被完整加密,恢复的第一步重建库结构就走不下去。客户那份 100 GB 的二进制备份文件头也被加密,取出的数据无法对应回具体的表。
pgEdge 的 Ahsan Hadi 开源了 pg-healthcheck,一个直接查询 PostgreSQL 系统视图的诊断工具,分 14 组共 180 多项检查,覆盖 vacuum 与膨胀、WAL 与复制槽、事务 ID 回卷、数据完整性、可见性映射不一致以及 Spock 集群指标。下载预编译二进制或自行构建,带上连接参数即可运行。项目采用 PostgreSQL 许可证,可用于商业场景。
PlanetScale 发布 Database Traffic Control,把治理能力放到数据库的访问路径上。数据库故障常常来自突发请求、写坏的查询或批处理任务,流量治理要解决的就是让数据库从被动承压变成主动防护。PostgreSQL 这边可以对照的是连接池与 pgBouncer、查询限流、角色级别的资源隔离,以及慢查询熔断这几类能力。
NVIDIA 介绍了 GPU 加速查询引擎的设计思路和 GQE 的相关能力。AI 让 GPU 普及之后,分析型数据库和查询引擎会继续尝试复用这些算力,真正的难点不在写 kernel,而在执行计划、数据布局和传输成本。做分析数据库选型时值得区分有 GPU 支持和端到端查询路径真的受益;对 PostgreSQL 生态来说,GPU 加速更可能先出现在外部引擎、FDW 和 ETL 路径上。
AWS 宣布 RDS 的 IAM 数据库认证支持更高的连接速率。很多团队想用 IAM 和短期凭证替换静态数据库密码,但认证路径的吞吐一旦不足,扩容、故障切换或连接池抖动时它就会变成瓶颈。在云上设计 PostgreSQL 或 MySQL 的 IAM 认证时,值得重新核对连接池配置、冷启动、failover 行为和认证速率配额;自建发行版也应该把认证面的容量纳入可用性模型。
Álvaro Herrera 认为补丁逻辑不够直观、极端情况下有风险,建议留出更多审查与测试时间。
Dean Rasheed 还计划把全局临时表上 TRUNCATE 的锁级别降到 RowExclusiveLock,避免阻塞。
Fujii Masao 推送了该补丁,使用 MD5 加密口令做密码认证时会发出警告。
文章展示了完整的工程过程,讨论集中在运行边界,这类沙盒适合做培训、文档和问题复现。