【重磅】Greenplum内核升级至PostgreSQL 12,众多新特性惊喜不断

​Greenplum 基于 PostgreSQL,但针对大数据的场景和用户对性能的极致追求开发了大量的特性和做了极致甚至苛刻的优化。此外,Greenplum紧密拥抱Postgres社区,以敏捷的方式快速升级Postgres内核。

2005年研发之初,Greenplum的内核版本是PostgreSQL 8,在2017年发布的Greenplum 5之前一直是PostgreSQL 8.2版本。2015年Greenplum完成了开源,启动内核升级的项目,并在近几年逐步完成了8.3、9.0、9.1、9.2、9.3、9.4、9.5和9.6版本的升级。其中9.1花费了70天时间,9.2用时约72天,而9.3的升级仅用了16天,具体请点击”阅读原文”前往Greenplum中文社区网站(cn.greenplum.org)查看。

2020年9月22日,Greenplum内核研发团队历时半年多完成了PostgreSQL内核跨越三个大版本,从9.6到 12的升级。此次升级包含很多重量级特性,大大加强了 Greenplum 的总体能力,继续弥合与上游PostgreSQL的差异,持续吸收上游的新功能、优化和增强,同时做了大量的重构和清理工作,为Greenplum的持续稳定创新奠定基础。

psql (12beta2)
Type "help" for help.
​
gpadmin=# select version();
                                                                                                                    version
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 12beta2 (Greenplum Database 7.0.0-alpha.0+dev.13880.ga8eb84a23a build dev) on x86_64-apple-darwin19.6.0, compiled by Apple clang version 12.0.0 (clang-1200.0.32.2), 64-bit compiled on Sep 23 2020 08:55:33 (with assert checking)
(1 row)

PostgreSQL 9.6至12间包含6527个提交,涉及代码修改约200万行,Greenplum内核团队在此次升级中通过四千五百多次修改解决了5263个代码冲突、几百个测试报错和代码重构,工作量之大难以想象。之所以此次内核升级挑战如此大的难度,直接跨越三个版本,主要是因为上游的分区表实现在版本12时才基本完善,我们希望Greenplum 7能为社区带来更多激动人心的新功能和性能提升。

Greenplum在此次升级中最激动人心的新特性有两个:

1. 基于上游的分区表实现

之前Greenplum的分区表实现代码已经全部被替换为上游PostgreSQL的实现,同时实现了一个中间层以同时支持原来的和上游的分区表语法。

2. Access method API

PostgreSQL借这套API极大地提升了存储扩展能力,实现一个新的存储方法会变得更规范、方便和清晰。Greenplum在此次升级中也和上游一致,全部转换为此API,包括特有的Append-only行存和列存。

其他上游带来的主要特性还有:

  • 性能和稳定性的提升
  • Generated columns语句的支持
  • Index-only scan的增强
  • 哈希索引的日志支持
  • SQL/JSON的增强
  • GSSAPI验证
  • LDAP服务支持
  • 多重要素验证的支持
  • CREATE PROCEDURE和CALL语句
  • COPY FROM … WHERE
  • FDW下推的增强……

有关 PostgreSQL 内核的更多更新,请参考官方文档。

接下来,Greenplum团队会继续进行合并之后的后续整理工作,逐步对稳定性和性能进行更多的测试和优化,并将内核版本升级至上游PostgreSQL 12的稳定分支,而不是停留在目前的12beta2,相信这一次的升级会给Greenplum带来更加强大的内核“骨架”。

分享本博文:

2020 Greenplum峰会

点击了解更多信息

《Data Warehousing with Greenplum》

Greenplum官方书籍《Data Warehousing with Greenplum》。阅读它,以了解如何充分利用Greenplum的功能。

关注微信公众号

Greenplum中文社区

Greenplum官方微信群

扫码加入我们的技术讨论,请备注“网站”