当前位置:

首页 > 硬件相关 > 谷歌云:投资于PostgreSQL的未来

谷歌云:投资于PostgreSQL的未来

谷歌云持续投入PostgreSQL开源项目,聚焦逻辑复制、升级韧性与系统稳定性三大方向。近期工作包括为逻辑复制引入自动冲突检测框架、实现序列数据自动同步,并修复订阅僵局问题。升级流程方面,优化了大型对象处理与逻辑复制槽保留机制,修复了约束迁移错误。此外,还解决了扩展加载异常和WAL刷新。

在数据库技术的演进中,开源社区的协作是创新的核心引擎。作为这一生态的重要参与者,谷歌云始终将PostgreSQL视为其托管数据库服务(如Cloud SQL和AlloyDB)的基石,并持续投入资源回馈上游项目。过去半年,团队的工作重心清晰聚焦于几个关键领域:提升逻辑复制的成熟度、增强数据库升级的韧性,以及修复影响稳定性的底层问题。这些努力并非孤立的技术迭代,而是为了构建一个更可靠、更易用的基础,最终惠及全球范围内依赖PostgreSQL的每一位开发者和企业。

技术贡献:2025年7月 – 2025年12月

从2025年7月到12月,谷歌云工程师在PostgreSQL开源项目中的贡献,主要围绕逻辑复制、升级流程和系统稳定性三大方向展开。具体的技术改进和修复如下。

逻辑复制增强

逻辑复制堪称PostgreSQL的“瑞士军刀”,它能实现近乎零停机的版本升级、数据选择性同步,乃至构建主动-主动式架构。然而,一些长期存在的功能缺口限制了其潜力。近期社区的几项关键工作,正是为了填补这些空白。

自动冲突检测

构建主动-主动式PostgreSQL集群,最大的挑战之一就是处理行级数据冲突。当两个节点同时修改同一行数据时,传统的逻辑复制会因此卡住,不得不等待人工干预。这无疑成了高可用架构的绊脚石。好消息是,社区现已实现了自动冲突检测的基础框架——这是迈向自动化冲突解决的第一步。该机制使得复制工作进程能够自动识别出传入的数据变更(插入、更新或删除)与本地数据状态存在冲突,为后续的自动化处理铺平了道路。目前,相关工作正推进至第二阶段,旨在将冲突记录写入专用的日志表,为更智能的解决策略提供数据基础。

序列的逻辑复制

长期以来,PostgreSQL的逻辑复制只“关心”表数据,却将序列(Sequence)置之度外。这导致在迁移或大版本升级时,数据库管理员必须手动同步序列的当前值,否则极易在新主库上引发“重复键值”错误。考虑到序列在生成主键等场景中的普遍应用,这无疑是一个重大的使用障碍。现在,社区正在攻克这一难题,致力于让序列也能通过逻辑复制自动同步,从而消除这一手动操作风险,使逻辑复制方案更加完整。

修复DROP SUBSCRIPTION订阅僵局

此前,执行DROP SUBSCRIPTION命令删除订阅时,它会持有一个访问发布者的排他锁,以清理对应的复制槽。但如果发布者恰好位于同一台服务器的另一个数据库中,就可能引发一个有趣的“自我僵局”:该命令在等待自己持有的另一把锁,导致进程挂起。这个缺陷已被分析并修复,消除了这一潜在的运维陷阱。

升级韧性

平滑、无忧的升级体验,是数据库产品成熟度的试金石。为了提升PostgreSQL的升级韧性,团队针对几个关键痛点进行了优化。

大型对象的pg_upgrade优化

对于存储了大量大型对象(如图片、文档)的数据库,使用pg_upgrade进行跨版本升级可能耗时数天,令人难以忍受。性能瓶颈在于旧版本逐个处理大对象的低效方式。通过优化,改为直接导出底层数据表,升级速度得到了数量级的提升,将漫长的等待变成了分钟级的操作。

防止升级过程中的逻辑复制槽失效

在升级至PostgreSQL 17时,如果max_slot_wal_keep_size参数未设置为-1,升级过程可能会失败。这个修复增强了pg_upgrade的健壮性,用户无需再手动调整参数。服务器现在会自动保留逻辑复制槽所需的WAL日志数据,简化了升级流程,降低了因配置疏忽而导致失败的风险。

修复pg_upgrade中与NULL约束相关的错误

在从PostgreSQL 17或更新版本进行升级时,pg_dump工具中存在一个漏洞,导致继承列上的非继承式NULL约束无法被正确保留。修复方案更新了底层查询逻辑,确保在升级过程中,这类特定的表结构约束能够被准确识别和迁移,保障了数据模型的完整性。

错误修复

除了功能增强,持续修复影响稳定性的底层错误也同样重要。以下是此周期内解决的几个典型问题。

提升pgstattuple扩展对异常索引页的健壮性

pgstattuple扩展常用于分析表和索引的物理存储状况,以判断是否需要执行VACUUM或REINDEX等维护操作。然而,它在处理哈希索引和GiST索引中的空白或无效页面时,会引发错误。此次修复使其能够妥善处理这些异常页面,增强了工具的可靠性。

修复从嵌套路径加载扩展的问题

动态加载共享库(扩展)时存在一个错误:当库文件位于嵌套子目录时,系统错误地剥离了路径前缀,导致无法找到并加载这些扩展。修复后,系统仅对简单的文件名执行前缀剥离,从而确保能够正确加载位于复杂路径下的扩展模块。

硬化WAL刷新逻辑

XLogFlush()和XLogNeedsFlush()是PostgreSQL内部确保预写式日志(WAL)持久化的关键函数。但在某些边缘场景下(如恢复结束时的检查点),这些函数依赖的判断条件存在不一致性,可能导致选择错误的代码路径。这个问题不仅影响当前版本的稳定性,更对后续计划引入的异步I/O等新功能构成了潜在风险。此次修复硬化了相关逻辑,为未来更高级的I/O优化打下了坚实基础。

本文内容来源于网友投稿,如有侵权请联系删除。
作者最新文章
硬件相关 谷歌
相关文章 更多
显卡风扇不转怎么回事判断是否正常及解决方法
显卡风扇不转怎么回事判断是否正常及解决方法

发现显卡风扇不转先别慌,这很可能是正常的智能启停功能。本文详解如何区分待机静音与硬件故障,提供从软件检测到物理清理的完整解决思路。

笔记本加内存条后无法开机怎么办及解决方法
笔记本加内存条后无法开机怎么办及解决方法

笔记本加装新内存后遇到黑屏或无法开机?不要慌张,本文通过重新插拔、清洁金手指、单根测试等具体操作步骤,帮你快速判断是安装失误还是硬件不兼容,并给出相应解决办法。

电脑主机前置usb不能用怎么解决排查修复教程
电脑主机前置usb不能用怎么解决排查修复教程

针对电脑主机前置USB接口无法识别设备的问题,本文提供一套基于因果逻辑的排查流程。涵盖检查机箱内部USB针脚连接、验证BIOS中USB控制器状态、更新芯片组驱动以及排除供电不足等常见原因,帮助用户快速恢复接口功能。

无线鼠标充不进电解决办法及故障排查步骤
无线鼠标充不进电解决办法及故障排查步骤

遇到无线鼠标充不进电的问题,不要急于更换设备。本文详解从清理接口氧化层、更换数据线到检测电池电压的完整排查流程,帮助你判断是临时故障还是硬件损坏。

蓝牙游戏手柄连接教程吃鸡
蓝牙游戏手柄连接教程吃鸡

想知道如何用蓝牙手柄玩吃鸡游戏?本文详细讲解手机蓝牙手柄的连接步骤、主流映射软件的使用方法以及实战中的键位布局技巧,助你提升射击手感,同时解析外设玩家的匹配机制与注意事项。

游戏手柄蓝牙连接为何每次都要重连原因排查与解决方法
游戏手柄蓝牙连接为何每次都要重连原因排查与解决方法

本文深入分析游戏手柄蓝牙频繁断开且需重连的根本原因,涵盖电池电压检测、操作系统电源管理策略及驱动冲突。通过具体的系统设置调整和固件更新步骤,解决蓝牙握手失败问题,恢复手柄的稳定连接状态。

显示器画面模糊抖动怎么解决及排查方法教程
显示器画面模糊抖动怎么解决及排查方法教程

遇到显示器画面模糊或抖动时,可通过检查视频连接线、调整系统分辨率与刷新率、更新显卡驱动等步骤进行排查和修复。

小米智能门锁换电池后怎么开机
小米智能门锁换电池后怎么开机

小米智能门锁更换新电池后无法开机或屏幕不亮?本文详解电池极性检查、金属触点清洁及强制重启方法,帮你快速解决供电问题,让门锁恢复正常使用。

电视机声音怎么连接到外置音响
电视机声音怎么连接到外置音响

想让电视声音更震撼?本文详解如何通过HDMI ARC、光纤、蓝牙和3.5mm接口将电视连接至外置音响,包含具体设置步骤与常见问题排查,助你轻松打造家庭影院。

打印机加墨水后打印不出颜色的原因及解决方法
打印机加墨水后打印不出颜色的原因及解决方法

解决打印机加墨水后打印无色的问题,涵盖墨盒芯片计数器重置、喷头气锁排除方法以及驱动程序颜色设置检查,帮助用户快速恢复彩色打印功能。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。