微软 2026 年 Postgres 内核代码贡献

John Doe 六月 24, 2026

Linux 的背后是 IBM 和 Google,而 Postgres 的身后也有微软和 EDB 这样的企业。

image

目录

微软参与 PostgreSQL 内核开发

微软持续投入旗下 PostgreSQL 开源贡献团队,并重申对开源事业的承诺。该团队持续为上游 PostgreSQL 推进大型、高目标开发项目,让所有 Postgres 用户都能用上这些新增功能。

团队成员覆盖多领域专业技术,我们对 Postgres 的贡献几乎涉及数据库全部核心模块,包括查询规划器、执行器、存储 / IO 子系统、安全能力、运维与可管理性优化、全新 SQL 语法特性等诸多方向。

微软支持 Postgres 开发的初心和承诺始终未变:

开源生态想要蓬勃发展,既离不开志愿者的自发付出,也少不了商业厂商的资金支撑。开源开发者同样需要谋生!想要让 Postgres 开源生态持续繁荣,微软这类企业就必须出资扶持 PostgreSQL 内核开发,而我们也一直在践行这件事。

PostgreSQL 是一套复杂软件,全球大量核心业务系统都依托它运行。为了在 Azure 云平台提供极致使用体验,我们必须吃透它底层运行原理。团队内部拥有 PostgreSQL 代码提交者与核心贡献者,既能在公司各业务部门内部共享技术知识,也能直接解答线上故障、扩展插件开发相关的各类内部问题。

当下云平台的业务规模,是绝大多数本地自建数据库从未接触过的,由此催生了大量独有的云数据中心难题,其中性能相关问题尤为突出,亟待专项优化。微软内部深耕 Postgres 的专家团队,选择直接在上游 PostgreSQL 内核中解决这类云规模场景痛点。除此之外,团队深厚的 Postgres 技术储备,也能让 Azure 云数据库客户更加信赖我们的云服务。

企业出资资助 PostgreSQL 开发者还有另一重价值:让开发者拥有长期稳定的工作保障,得以攻坚具备长远价值的重大架构革新、突破性代码改造。尤其是微软 Postgres 贡献团队,目前正攻坚多项大型底层架构调整(例如异步 IO),这类工作周期长达数年、需要全职人力持续投入,若无商业资金扶持根本无法落地。

团队 PostgreSQL 19 版本代码贡献亮点

图 1:该信息图梳理了截至 2026 年 6 月微软 Postgres 相关业务的几大核心工作线,涵盖 Azure 托管数据库服务、VS Code 与 Cursor 开发工具,以及对 PostgreSQL 开源上游项目的代码贡献。绝大多数开源相关工作中,我们在 PostgreSQL 上的开发都会与全球 PostgreSQL 社区的各方人员协作,合作对象包含微软内部及外部开发者。

重磅消息:PostgreSQL 19 首个测试版已正式发布,PG19 预计将于 2026 年 9 月左右推出正式商用版本。

以下为微软团队独立或联合他人提交至 PostgreSQL 19 的约 440 次代码提交核心亮点。

开源项目重视每一位贡献者的署名,在此需要说明:下文所有 PG19 相关开发工作,均是微软与全球各地 Postgres 开发者、贡献者协作完成,其中包含大量微软外部人员。这正是 PostgreSQL 开源项目的协作模式,我们也十分荣幸能成为其中一员。

性能优化

  1. 元组解包提速

    该优化大幅提升宽表(多固定长度字段表)的扫描效率。补丁新增专用快速循环逻辑,可基于预计算偏移量读取字段;同时精简属性结构体,降低内存占用。(附对应提交链接:元组解包优化提交、CompactAttribute 精简结构体提交)

  2. 外键校验快速路径

    整套合入补丁为外键校验新增高速执行逻辑:不再通过 SPI 接口,直接检索关联索引;触发器批量执行时复用执行上下文;采用数组式索引检索减少初始化开销。针对单列、无分区主键表批量插入这类高频场景,性能最高可提升约 2.9 倍。

  3. 基于 SIMD 指令的 COPY 分隔符高速匹配

    优化COPY FROM文本 / CSV 解析逻辑:借助 SIMD 单指令多数据流技术,批量处理输入数据,快速跳过不含分隔符、换行、转义符的字节,替代原状态机逐字节校验逻辑。特定场景下性能提升最高可达 60%,且无任何性能退化。

  4. 并行 TID 区间扫描

    支持多并行工作进程执行基于 ctid 区间过滤的查询,对逻辑复制初始化、数据迁移、自定义 ETL 脚本场景增益显著。

  5. 低开销 EXPLAIN 时序计数器优化

    直接调用 x86 平台 RDTSC 硬件计时指令,大幅降低EXPLAIN ANALYZE的计时开销。原计时逻辑会造成流水线阻塞,优化后 EXPLAIN 分析速度显著提升。

  6. 访问时可见性地图即时更新

    支持 SELECT 查询执行过程中同步标记页面为全可见状态。优化后可触发更多仅索引扫描(此前必须等待 VACUUM 清理完成),同时减少 VACUUM 流程的 IO 读写量。

  7. 降低 VACUUM 产生的预写日志 (WAL) 量

    多组补丁优化 VACUUM 与COPY FREEZE的 WAL 日志生成逻辑:不再单独生成堆表可见性 WAL 记录,将相关信息整合进现有日志条目,堆表清理、批量冻结拷贝两种场景下,单数据块产生的 WAL 日志数量直接减半。既加快清理与批量导入速度,也节省磁盘存储空间。(附提交编号:d96f87332b3、add323da40a、1252a4ee286)

全新 SQL 特性

SQL/PGQ 属性图查询

该功能是 ISO SQL:2023 标准第 16 部分,支持在现有关系表之上定义图结构,并通过专用模式匹配语法执行图查询。本重磅功能由 Peter Eisentraut 主导,微软团队阿舒托什・巴帕特协同开发。

落地到 PostgreSQL 的实际价值:无需切换数据库、无需额外安装扩展、无需将数据同步至独立图数据库,仅依靠原生 Postgres,就能用简洁的图查询语法实现社交网络关系遍历、依赖关系图谱、欺诈路径识别、供应链链路分析等场景。

运维能力升级

  1. 异步 IO 工作线程自动扩缩容

    补丁重构 PostgreSQL 异步 IO 子系统的线程调度逻辑,废除固定io_workers静态配置:负载升高时自动扩容 IO 线程池,空闲超时后自动缩容,无需人工预估静态线程数量。

  2. 新增 EXPLAIN (IO) IO 可视化分析项

    为 EXPLAIN 命令新增 IO 参数,在EXPLAIN ANALYZE输出中为每一类扫描节点增加 IO 监控指标,适配基于 ReadStream 接口的执行节点,可展示预取队列指标(平均 / 最大预取距离、队列容量)与 IO 请求统计数据。运维人员可直观查看每一层扫描底层 ReadStream / 异步 IO 层的运行状态,不再只能依靠缓冲区指标间接判断。

安全与可靠性增强

  1. 漏洞 CVE-2026-2006 修复

    修改底层字符串长度计算函数,若输入字符串末尾存在不完整多字节字符,直接抛出错误。底层设计思路为即时校验编码异常:多字节长度底层函数主动识别并拒绝截断、残缺字符,而非静默忽略。

    加固 PostgreSQL 多字节编码处理逻辑:存储数据中出现残缺字符通常代表数据损坏或编码逻辑缺陷,主动抛出报错远比静默计算出错误字符长度更安全。

  2. 在线开启数据校验和

    此前如需开启校验和检测数据损坏,仅能在数据库初始化 initdb 阶段配置,或关停整个数据库集群、全量计算文件校验和。大型生产库停机成本极高,本次优化支持集群运行时后台异步计算并开启校验和,无需停机。

  3. 服务端 SNI(服务器名称指示)支持

    PostgreSQL 19 新增服务端 SNI 能力,新增配置文件$datadir/pg_hosts.conf,用于配置主机名、证书、私钥映射关系。数据库服务端在 SSL 握手阶段读取 TLS 主机名扩展字段,自动匹配对应连接使用的 SSL 证书、私钥与根证书。单套 PostgreSQL 实例可根据客户端连接的域名,动态下发不同 SSL 证书。

底层铺垫与未来规划

  1. 缓冲区管理器锁机制优化

    安德烈斯・弗伦德持续重构缓冲区管理与锁竞争逻辑,为写入操作接入异步 IO 铺平道路。优化实现缓冲区页面解锁、取消页钉住合并为单一原子操作,pgbench 基准测试显示性能最高提升 25%。

  2. 索引预取底层基础设施搭建

    索引预取功能虽未在 PG19 正式上线,但本版本周期已完成全部核心底层改造:包含完整设计方案、异步 IO 基础设施前置优化,同时规避各类潜在性能退化问题,该功能已具备在后续版本合入的完整基础。

  3. 共享内存弹性扩容前置开发

    阿舒托什与海基在 PG19 中优化共享内存管理框架,为未来版本实现无需重启数据库即可修改 shared_buffers 共享缓冲区参数做铺垫。PG19 版本已支持小型共享内存结构的扩展插件,可在数据库启动后动态加载创建,无需配置shared_preload_libraries、无需重启服务。

以上仅为微软团队向开源 PostgreSQL 贡献的部分核心功能,并非完整清单,更未涵盖补丁评审、社区新人指导等全部工程工作。以下为量化数据:

截至 2026 年 5 月 31 日 微软 PostgreSQL 19 版本代码贡献数据

统计项 数值
微软参与开发的 PG19 代码提交次数 440 次
含微软作者 / 联合作者的总提交量 3088 次
微软贡献提交占 PG19 全部提交比例 14.2%
微软完成的 PG19 补丁评审次数 907 次
经过微软团队评审的 PG19 总提交量 5603 次
微软评审覆盖提交占 PG18 总提交比例 16.2%

解读数据需注意三点:

  1. 提交次数不代表工作量均等:部分提交仅小幅修改,部分提交架构复杂、影响范围极大。提交次数可作为参考指标,但无法精准衡量投入人力与功能价值;尽管如此,该数据仍是行业普遍关注的维度,因此我们对外公开。
  2. 大量提交存在多名作者与评审者:PG19 中 440 次含微软署名的提交,由团队 19 名员工独立或联合完成,且大量提交联合了微软内外其他贡献者。这也是 Postgres 社区最珍贵的特质:开发者跨越企业、国家、大洲协同开发。
  3. 代码开发只是贡献的一部分:代码编写与补丁评审是 Postgres 项目的核心支撑,但并非全部。本文后续会介绍团队其他贡献方向,例如 Citus 等扩展插件开发、社区运营建设等。

参考

What’s new with Postgres at Microsoft, 2026 edition