首页 纸飞机账号批发内容详情

PostgreSQL 技术日报 (3月16日)|如何减少 WAL?PG 社区提出最新思路

2026-03-22 2 飞机号购买网站

近期,PostgreSQL社区于复制监控方向,持续推出一系列技术改进,方向还涉及数据校验、性能优化,以及逻辑复制等,这些更新关联底层WAL机制,关联集群运维便利性,还关联AI时代数据库的落地实践,为数据库管理员提供了更精细的控制手段,为开发者提供了性能提升空间。

复制监控新增传输指标

在PostgreSQL复制的情形里,管理员长时间都没有对真正发送到下游的字节数量以及事务数量的直接观测办法。Ashutosh Sharma提出借助增添新列去呈现这些关键指标,并且规划把补丁划分成文档修正和新字段增添这两个部分,用以降低合并的难度。Michael Paquier回应时着重指出,鉴于版本发布日程很紧张,要尽快推进,同时提议在实施之前征求Ashutosh Bapat的看法,保证方案在架构层面已得到充分验证。此项改进会让复制延迟分析,从那种关于“是否卡住” 的定性化判断,转变为依据数据量的定量性评估,如此一来便利于去定位网络瓶颈这个问题,或者下游消费能力不够的问题。

探讨之中还关联着补丁的达成途径:究竟是运用单个补丁开展统一提交,还是进行分步合并呢。Michael更倾向于迅速迭代,然而却规定设计务必经由多位核心开发者予以审核。当下社区正在评定新增列对于系统视图所产生的影响,以及是不是需要在历史统计与实时监控之间予以区分。倘若该特性最终被合并进去的话,用户便能够借助pg_stat_replication等视图直接获取发送字节数以及事务数的精准值,从而极大地提升复制链路的可观测性。

在线调整数据校验和状态

由Daniel Gustafsson提交的补丁集,其目的在于,让用户能够在正在运行的PostgreSQL集群当中,实现启用或者禁用数据校验和的操作,并且不需要重启数据库。此补丁把相关代码,从xlog.c进行了重构工作,转移到专门的datachecksumsworker文件里,对信号处理机制予以了优化,还新增了针对PITR和full_page_writes的测试套件,以此保证状态转换是由检查点安全驱动的。在审查期间,Tomas Vondra指出了几个关键缺陷,其中包括注入点具备致使数据库列表遭遇修改异常的可能性,ProcessAllDatabases函数于进度追踪方面存在差错,还有当某个数据库校验出现失败状况时,应当立刻中止全局处理,以此来防止数据不一致现象进行扩散。

该补丁的推进,还依靠可见性映射以及FSM的WAL日志修复,这两项前置工作要单独去解决。另外,因为d774072f0040提交之后XLR_INFO位出现了限制,添加新的XLOG记录类型得引入第二个xlog资源管理器。这体现出在线校验和调整不只是功能得到增强,还关联到PostgreSQL内核的WAL机制与资源管理架构的发展,一旦落实会明显降低运维人员在数据完整性管理方面的停机成本。

减少WAL写入的堆可见性优化

Melanie Plageman不断推进一项优化工作,该工作目标是消除xl_heap_visible WAL记录,其核心思路是在访问之际再去设置可见性映射,凭借此来减少不必要的WAL生成量。她运用渐进式提交策略,把庞大的补丁集拆分成多个易于审查的小型提交,当下已 push 多批预备补丁,还发布了剩余部分的第 38 版。这种拆分方式明显减轻了核心开发者的审查压力,也让功能迭代更为稳健。

在于减少WAL写入量,此为该优化的根本价值,之于高并发写入场景的性能改善格外显著,通过规避每次堆可见性变化时皆写入WAL,系统于维护可见性映射时的IO开销得以控制,同时,Melanie于推动进程里着重与现有代码的兼容性,确保最终达成不会破坏原有的事务一致性保证,若该系列补丁全部并入,OLTP场景下的WAL生成效率将取得可量化的提升。

发布排除语法的语法选型

PostgreSQL的发布功能,在排除特定表或者模式之际,当下欠缺简洁的语法支持。社区正就两种主要的语法方案展开讨论:一种采用分组排除形式,像“EXCEPT (TABLE t1, t2, TABLES IN SCHEMA s1)”;另一种运用多个独立的EXCEPT子句,比如“EXCEPT TABLE (t1, t2), EXCEPT TABLES IN SCHEMA (s1, s2)”。Amit Kapila表明两种方式各自有着利弊,给出建议,在收集更多用户反馈之际,先去完成现有补丁的剩余有关工作。Vignesh汇报称新语法的代码实现仅需少量的改动,还提出倡议,在语法决策最终确立之前,先着手推进代码层面的兼容性准备工作。

有关PostgreSQL在逻辑复制领域持续追求便利使用特性的情况,通过这项讨论展示了出来。由于有着清晰明了的语法规则作用,能够助力进行维护操作的人员,更为精准地把控有哪些数据被公布出去,进而防止因出现操做失误致使敏感数据向外流出。当前所在团队偏向于维持灵活性的状态,与此同时,要求最终所形成的方案务必要维持解析器具备一致性以及向后兼容性,以此保证升级的路径是平稳顺畅的。

逻辑复制中walsender退出优化

Greg Sabino Mullane提出要去改进在逻辑复制场景之中walsender进程的关闭行为,这种行为是允许其在确认远程刷新操作已然完成之前就退出的,这样做的目的是闪避进程因为等待远程确认从而长时间挂着不动。Andrey Silitskiy针对于此增添了测试用例,通过使用一个正值然而却是较小的wal_sender_shutdown_timeout参数值去将相关代码路径给覆盖掉,与此同时还要避开引入有着时间敏感性的测试逻辑。特意进行这次改动,目的在于提高walsender于异常场景当中的鲁棒性,进而降低由于复制槽状态卡住所造成的资源占用情况。

对高可用环境而言,这一优化显得尤为重要,当下游订阅节点产生故障之际,源端的walsender切不可无限期等待确认,借助合理设置超时参数,系统能够更为快速地释放连接资源,并且让上层高可用组件得以更快完成主备切换或者故障检测,测试用例的设计同样展现出社区对可重复验证的重视程度,并非依赖具体的时间长度,而是从逻辑层面覆盖需要执行的代码分支。

企业AI落地与PostgreSQL实践

就全球两万多家客户的数据分析而言,研究得出这样的发现,即运用AI评估工具的企业,把AI项目投入生产的成功率,相较于不使用的企业,高出将近六倍。此类工具成 为保障AI输出质量的关键手段。与此同时,PostgreSQL正稳固其全球领先开源数据库的地位。在伦敦技术展上,CYBERTEC首席执行官汉斯 - 尤尔根·舍尼格强调,PostgreSQL在数据管理领域的优势地位促使全球组织的采用率持续提高的状况一直存在。

安联英国个人险业务线,借助从本地系统迁移至Databricks,达成了报价量、索赔模式以及定价绩效的近实时监控。早先本已存在的本地系统需耗费半天时间来刷新,数据延迟的时长最长可达两天。迁移之后处理速度得以提升60%,夜间的数据加载提前到凌晨5点之前就完成了,每月计算成本节省大约8万英镑。此案例彰显了,现代化数据基础设施同PostgreSQL生态的结合,能够给保险定价以及风险分析带来显著的效率提升。

由上述讨论能够瞧见,PostgreSQL社区于底层机制优化、运维便利性以及企业级场景落地等方面同时使劲发力,你觉得在数据库复制监控里,是传输字节数更为关键,还是事务数更能够展现真实负载情形呢?欢迎于评论区交流你的运维经验。

PostgreSQL 技术日报 (3月16日)|如何减少 WAL?PG 社区提出最新思路

相关标签: # PostgreSQL # WAL优化 # 逻辑复制 # 数据库性能 # AI应用