逻辑复制溢写会按订阅数量放大发布端磁盘压力
逻辑复制的磁盘告警未必来自 WAL 保留。多订阅实验显示,大事务超过解码内存预算后,会在每个复制槽的 pg_replslot 目录各写一份溢出数据,提交后文件又迅速消失。开启 streaming 可将这部分压力转移至订阅端;parallel 模式有空闲工作进程时还能减少订阅端临时文件。PostgreSQL 18 虽已将新订阅默认值改为 parallel,旧设置和 TOAST 数据仍需关注,排查时应同时观察溢写与流式传输计数。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 20 条。
逻辑复制的磁盘告警未必来自 WAL 保留。多订阅实验显示,大事务超过解码内存预算后,会在每个复制槽的 pg_replslot 目录各写一份溢出数据,提交后文件又迅速消失。开启 streaming 可将这部分压力转移至订阅端;parallel 模式有空闲工作进程时还能减少订阅端临时文件。PostgreSQL 18 虽已将新订阅默认值改为 parallel,旧设置和 TOAST 数据仍需关注,排查时应同时观察溢写与流式传输计数。
Christophe Pettus 将 max_connections 解释为资源预算与过载保护,而非吞吐量旋钮。该参数会影响启动时分配的共享结构,真正繁忙的连接还会叠加算子内存和锁竞争;仅按实例内存给出数千连接的云端默认值,可能把连接池问题拖成数据库故障。文章建议用事务连接池吸收应用连接,结合实际活跃量、角色连接限制及运维余量定额,并强调调高时先改备库、调低时先改主库,避免备库因参数不足暂停恢复。
自动生成的 SQL 可能在求和时附带无效排序,浪费执行时间。pgEdge 演示 PostgreSQL 19 测试版的聚合规划支持钩子,借助扩展在规划阶段改写适用类型的 SUM,移除冗余 ORDER BY。pgEdge 称,千万行实验由约 5.7 秒缩短至 3.7 秒,同时解释了 DISTINCT、排序集聚合与依赖关系的边界。目前为聚合绑定支持函数的 DDL 尚未合入,示例仍需修改系统目录,绑定关系也不能随备份恢复或大版本升级自动保留。
ClickHouse 开源 WalShadow,将 PostgreSQL 物理 WAL 在源库之外解码,再写成分析库原生数据块。它用影子实例跟踪目录变化,覆盖初始装载、持续复制与表结构演进。厂商称,在同区单表测试中,提交到可查询约需 200 毫秒,吞吐接近源库。项目仍为开发预览,要求 PostgreSQL 16 以上且源库与影子实例同大版本;接入前还须确认部署环境开放物理 WAL。
在 PostgreSQL 三十周年访谈中,Tom Lane 从进程模型、共享内存与 WAL 恢复,讲到 MVCC、规划器和扩展边界。他强调独立进程带来的代码简洁性,也解释会话目录缓存为何使连接复用与线程化成为棘手问题;后端崩溃后,为保护共享内存仍须重启其他后端。对未来,他支持继续探索线程化,同时倾向把能由扩展承担的功能留在内核之外。这些取舍有助于理解连接池、故障恢复与扩展设计背后的约束。
重复运行的分析查询常受复杂连接与聚合拖累,业务 SQL 又未必方便修改。AWS 展示了 Spark 自动匹配 Iceberg 物化视图的过程:优化器可替换整条查询或局部子树,按结构或精确形式匹配,并在视图过期时跳过改写。该功能从 EMR 7.12.0、Glue 5.1 起提供,需要显式启用。文章比较预聚合、预连接及完整结果三种设计,说明查询加速与存储、刷新成本和复用范围之间的取舍,适合据此检查真实执行计划。
并发分离被中断后,即使没有发布对象,UPDATE 或 DELETE 也可能崩溃;已提交修复将此类分区按独立表处理。
索引与被引用列的排序规则不一致时,快速检查可能放过无效引用;修复改为回退 SPI,并补齐 ICU 回归用例。
已撤回扩大内嵌对象类型和改变子命令排序的两项改动,保留符合 SQL 标准的外键约束延后执行行为。
ALTER PUBLICATION 现先加锁再重读状态,避免并发切换 ALL TABLES 时触发断言或混入互斥的包含、排除记录。
已提交修复阻止错误地回退主键,因为逻辑解码在这种状态下无法提供可用的行标识;补丁标记回移 PostgreSQL 19。
新一期围绕 hot_standby_feedback、备库查询取消与相关超时设置展开,并附 PostgreSQL 17 实验材料。
新版本同步 Python、Node、Android 等包的许可证,并把基准改为文件数据库,明确区分进程内存与操作系统页缓存。
零 ETL 副本默认每 15 分钟刷新至 S3 Tables,再由 Lambda 中的 DuckDB 查询,入口使用 IAM 认证。
OpenSharing 可共享联邦接入的外部表;普通外部表与模式会在提供方物化,产生计算和存储开销。
高优先级 Pod 扩容被延后时,调度器可驱逐同节点的低优先级负载腾出资源;Alpha 功能需显式启用。
工作流或任务可选择只读、读写、只写或禁用缓存,低信任事件默认只读,减少缓存投毒风险。
Radim Marek 的实测显示,热点表上的索引组合会放大 WAL 并破坏 HOT 更新,单条读查询变快不足以证明整体收益。
会话可自行修改 USERSET 参数;作者实测建议依靠对象授权、登录限制和独立监控连接约束代理,而非只设超时与只读默认值。