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

news/2024/7/9 22:18:31 标签: 大数据, 数据库, postgresql, 内核

了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站

​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带来更加强大的内核“骨架”。


http://www.niftyadmin.cn/n/1446739.html

相关文章

2017-02-22

今天给一台服务器上的服务扩容,添加软连接,顺便打算把原来二进制启动的docker重新用yum的方法安装一遍,但还是遇到了以前遇到过的错误,一开始是各种 乱七八糟的rpm过低,无法升级,于是手动加载了一遍&#x…

CDMA无线定位技术及其应用(转)

摘要 描述了CDMA系统的主要定位技术及其特点,对各种定位技术进行了比较和分析,提出了选择方案,并在此基础上介绍了其承载的应用。关键词 CDMA 定位技术 1引言无线定位服务是从美国开始启动和发展起来的。1996年,美国联邦通信委员会…

hdu 4897 Little Devil I(树链剖分+线段树)

题目链接:hdu 4897 Little Devil I 题目大意:给定一棵树,每条边有黑白两种颜色,初始都是白色,现在有三种操作: 1 u v:u到v路径上的边都取成相反的颜色2 u v:u到v路径上相邻的边都取…

python机器学习——欠拟合与过拟合

欠拟合与过拟合欠拟合和过拟合(1)泛化能力(2)欠拟合(3)过拟合(4)机器学习中好的拟合(5)两个例子(6)如何判断一个模型是欠拟合还是过拟…

巧用复合索引,优化查询性能

了解更多Greenplum技术干货,欢迎访问Greenplum中文社区网站 ​复合索引,也称作多字段索引,是指建立在表的多个字段上的索引,它是数据库系统中广泛支持的索引使用方式,Greenplum也不例外。在之前的文章中,我…

滴滴出行技术总监杜欢:技术选型那些事儿丨今晚直播送机械键盘!

技术的日新月异, 程序员的接收学习, 二者永远无法做到完美契合。 这也时刻影响着各大公司的技术选型: 成功的,改变了游戏规则。 失败的,坑掉大型的团队。 外企、国内大厂以及一些创业公司是怎么做的? 今晚八…

web项目经理手册-Code Review (转)

web项目经理手册-Code ReviewCode Review是保证项目中代码质量非常重要的一个环节,其主要工作是:1、发现代码中的bug;2、从代码的易维护性、可扩展性角度考察代码的质量,提出修改建议。1、代码中的bug主要会出现在下列两个地方&am…

python机器学习——欠拟合,过拟合实例

欠拟合,过拟合实例 以“比萨饼价格预测”问题为例,分别用 1 次, 2 次和 4 次函数去拟合,然后看看在测试数据上的表现。 如表 3-1 所示,美国一家披萨店出手不同尺寸的比萨,其中每种直径( Diameter )都对应一…