专访阿里资深研发工程师窦贤明:PG与商业数据库差距并不明显

导语:窦贤明,花名执白,阿里资深研发工程师,参与过PostgreSQL与Greenplum的内核源码维护、开发,以及云上自动化服务之类的工作。

 

窦贤明认为, 支持类型、功能和语法丰富,性能优良

9月24日,窦贤明将参加在北京举办的线下活动,并做主题为《Greenplum分片案例分析》的分享。值此,他分享了PG、工作上的一些经历和经验。

9月24日开源数据库企业应用实践PostgreSQL、Greenplum专场培训,点击这里>>>免费报名

 

正文:

 

和大部分人一样,窦贤明也是被PG吸引过去的。有点特别的是,他之前完全不是做数据库的,“云计算刚刚兴起,分布式方兴未艾时,我一头扎了进去。”而和PG的结缘,也很巧合,“后来分布式数据库有紧急的工作需要去支持一下,然后就接触到了PostgreSQL。”

 

“接触之后发现,代码看起来挺漂亮的嘛,挺像我处女座的风格,然后玩着玩着就进来了。” 窦贤明对PG很是有感觉。

 

而后,他加入阿里,彻底扑入PG的怀抱,负责ApsaraDB For PostgreSQL / Greenplum的内核源码开发与维护工作。

 

这份工作挑战挺多。比如某个特性本来在正常环境没什么问题的,但在云环境中就出问题了;比如针对云环境的优化之外,客户群体的复杂性也带来更高的自动化程度的要求;再者,就是功能上的需求和问题的修复。

 

解决各种挑战的背后,也加深了对PG的认识,积累下许多经验。比如对“为什么CPU满了?”、“为什么IO又满了?”、“为什么执行时间变长了?”等问题的认识,他说,这类问题的原因有很多,除了一些特殊场景以外,大部分是可以通过某些方法去解决的,比如索引、冗余数据的清理等。

 

对于PG性能,窦贤明说,在同台机器未做任何优化的情况下测试TPCC,PG与商业数据库的差距并不明显。如果不是极端或特殊的应用场景,性能上差距是比较小的,“这还是原生的,不算我们内部做的性能优化。”他指出。

 

对于9月24日PG线下的活动,这个直率的专家说:“希望大家能够玩得开心、能给大家带一点帮助就好。”

 

当然,他也讲述了ApsaraDB For PostgreSQL / Greenplum的内核源码开发与维护工作中的挑战是如何应对的、这位资深工程师眼中的PG究竟什么样……等等。

更为具体的内容,请查看以下完整采访:

:请介绍下你以及所从事的工作


窦贤明:我是窦贤明,研发工程师一枚。现在在阿里云数据库内核服务组里,参与PostgreSQL与Greenplum的内核源码维护、开发,以及云上自动化服务之类的工作。最近我们刚刚完成了Greenplum在云上的部署,大家可以很方便地来把玩一下,而不用自己费心费力地去搭建。


:说说你和PG结缘的过程


窦贤明:我之前不是做数据库的,主要接触内核、驱动、文件系统之类的东西。在几年前,到了一家公司做分布式存储。那个时候云计算刚刚兴起,分布式方兴未艾,有大行其道之势,于是就一头扎了进去。到了之后,分布式数据库这边有些紧急的工作需要我去支持一下,然后就接触到了PostgreSQL。接触之后发现,代码看起来挺漂亮的嘛,挺像我处女座的风格,然后玩着玩着就进来了。

后来就到了阿里这边专门搞这个,还挺巧合的。


:你在做ApsaraDB For PostgreSQL / Greenplum的内核源码开发与维护工作中,有没有遇到什么挑战?都是如何解决的?


窦贤明:其实挑战还是挺多的,尤其是我们所支持的云计算环境中。比如某个特性本来在正常环境没什么问题的,但在云环境中就出问题了。这个对我们来说是出现比较多的挑战的地方,需要针对云环境做很多内核上的定制和优化。

除了针对云环境的优化之外,客户群体的复杂性也带来更高的自动化程度的要求。因为不可能人去一个个解决客户的问题,那么如何把这些客户的问题通过自动化来解,是挑战我们去做的事情。

再者,就是功能上的需求和问题的修复。虽说“No silver bullet”,但对于我们客户来讲都是希望功能尽量去完善;另外一个就是内核本身会有一些问题,不管是Bug也好还是设计上、实现上的问题,这些都是要我们团队去处理的。

:你还为云数据库的良好运行保驾护航,保障用户在云数据库上的良好体验,能否介绍下当前用户遇到的最常见的问题,以及原因是什么?


窦贤明:在我接触到的问题当中,除了比较特别的使用上的问题外,我们遇到比较多的是性能问题。经常会被问到形如“为什么CPU满了?”、“为什么IO又满了?”、“为什么执行时间变长了?”之类的问题。这类问题的原因有很多,除了一些特殊场景以外,大部分是可以通过某些方法去解决的,比如索引、冗余数据的清理等。

但因为面向的云上客户群体比较复杂一点,对PG和数据库的熟悉程度多少有别,在针对这种问题方面我们团队也是花了很多精力去做这个事情。比如数据库的一键诊断,给用户一个诊断报告,用户看了之后对自己数据库的情况就一目了然了,哪条SQL该怎么做之类的。目前我们收到了比较多的正面评价。

:你眼中的PG是什么样的,请谈谈它的优缺点


窦贤明:很多人有一个相对比较一致的看法,认为PG属于比较学院派的。从实现上来讲,PG的代码实现上可圈可点、比较规范,符合数据库原理,甚至可以作为教学范例来看。包括其实现上模块的划分、运行时的架构设计、ACID的实现和用法上权限的设计、SQL标准的支持、数据类型的支持等方面,都是比较中规中矩的,所以第一个关键字就是标准。

第二个是丰富,丰富主要体现在两个方面:

1.支持的类型方面:PG支持非常丰富的数据类型,除了常见的数据类型外,还支持包括JSON、GIS(geography和geometry)、XML、枚举、二进制等,甚至还有数组类型(对,你没看错,就是与编程语言中很相近的数组类型,你肯定懂我在说什么)。除此之外,还可以自己定制类型,比如IP等;同时定制类型的相关操作,比如avg、sum等,而且是强类型。可能大家平常数据库用的比较随意,会比较喜欢弱类型或者自动类型转换,但这个其实有代价的,在云上我们就遇到过很多类似的问题。对于数据库数据类型的合理使用,应该是应用开发者和DBA的必修课,可以带来很多收益。

2.功能和语法的丰富:语法的丰富很好解释,PG支持几乎所有的SQL标准,而且在语法实现上也很规范,这意味着友好和健壮。再加上其所支持的丰富的函数和存储过程语言(你可以用SQL、C、Python、Java、Perl等来写存储过程),这意味着PG可以适应各种各样的功能需求。PostgreSQL天然地具有非常良好的扩展性,依托于PG的插件,你可以很容易地添加或者去除相应的功能。而且,在PG生态里,很多比较牛逼闪闪的功能都是插件所提供的,并且不是内核维护者来开发的。这意味着,你完全可以依据自己的需求做任意的定制。而且我了解的DBA中,很多都具有不错的开发能力,以定制功能需求。

3.优良的性能。我们内部做过一些测试对比,但这里不是太方便公布,只能大概地说,在同台机器上未做任何优化的情况下测试TPCC,PG与商业数据库的差距并不明显。如果不是极端或特殊的应用场景,性能上差距是比较小的,这还是原生的,不算我们内部做的性能优化。

不过也有几个缼点:

第一个是知道的人太少了,生态比较脆弱。很多朋友抱怨找不到PG的DBA,想用,而又不敢用。生态脆弱也就导致中文资料比较匮乏,又导致大家学习成本的上升,从而没有形成正循环。而这个是我们一直在努力的,希望能够在云上让大家更方便、放心地使用PostgreSQL。

第二个就是PostgreSQL因为MVCC实现机制的原因,在特殊场景的使用和处理上对使用者有一定能力的要求。虽然现在常规场景也是即开即用,但出了问题,部分用户没有能够Hold住的能力——当然这个也与前面所说的生态有关系。对于这个问题,我们也在想办法处理,尽量地消除大家的后顾之忧,比如我们的数据库一键诊断和专家服务就是专门针对这类客户的。


:本期线下活动,你将分享什么议题?对与会者,有什么寄语?


窦贤明:分享的主题是《Greenplum分片案例分析》:通过简单的内核上的分析,给大家介绍一下GP的分片上的用法,和在云上如何快速的把玩起来。

没啥寄语,希望大家能够玩得开心、能给大家带一点帮助就好。

相关阅读:

阿里云Greenplum官方介绍:

https://www.aliyun.com/product/gpdb

阿里云PostgreSQL官方介绍:https://www.aliyun.com/product/rds/postgresql

阿里云PPAS官方介绍:https://www.aliyun.com/product/rds/ppas

时间: 2024-09-20 06:09:46

专访阿里资深研发工程师窦贤明:PG与商业数据库差距并不明显的相关文章

资深算法工程师眼中的深度学习:Ian Goodfellow 和Yoshua Bengio的「Deep Learning」读书分享

雷锋网 AI 科技评论按:英雄式的科技公司 Tesla 和 SpaceX 的 CEO 埃隆·马斯克对人工智能技术和研究保持批评态度已经不是一天两天了.今年5月份钢铁侠说"90%的学术论文都毫无价值"的时候就引起了学术界的抗议,上个月又说人工智能技术是"人类文明史上面临的最大威胁",又引起了 Facebook CEO 马克·扎克伯格在内众多人工智能支持者的声讨. 当然了,马斯克并不是反科技,他自己也是人工智能研究组织 OpenAI 的发起人之一,他只是不像别人那么乐观

在MySQL和PostgreSQL之外,为什么阿里要研发HybridDB数据库?

2016-12-09 来源:InfoQ 作者:萧少聪 阿里云为什么要做HybridDB?Pivotal么看待阿里云此举?Pivotal中国研发中心总经理冯雷(Ray Feng).阿里云数据库总负责人余锋(褚霸)于12月13日线上发布会剖析自己的想法.点击回顾视频:除了发布外,我们还想告诉你--阿里云为什么要做HybridDB? 编者按 在大数据火遍IT界之前,大家对数据信息的挖掘通常聚焦在BI(Business Intelligence)之上.BI具有着明确的分析需求,清晰地知道需要处理哪些信息

专访阿里云资深专家易立,Docker技术将改变现代软件供应链

4月26日的云栖大会·南京峰会上,阿里云资深专家汤子楠发布了飞天专有云敏捷版(Apsara Stack Agility),此前美国Docker公司首席执行官Ben Golub 在曾在DockerCon 2017上宣布过这个消息. 这是阿里云和Docker公司合作之后的产物,是国内第一个支持Docker官方企业版(Enterprise Edition, EE)的容器类产品,包含从容器的创建到运行以及镜像的全生命周期管理,可以部署在企业自有数据中心环境内,特别适用于企业专有云及混合云场景. 专访阿里

学生党如何拿到阿里技术offer: 《2016阿里巴巴校招内推offer之Java研发工程师(成功)》

大学里有这样一句话"现在流的泪,都是当初选专业是脑子进的水",从见闻中了解很多中学非常优秀的同学因为选择了自己不喜欢不感冒的专业,很多人不懂得为自己寻找方向,而是继续延续应试教育下的学习方式,这样,他们的学习便成为了"面向考试"的学习,当他们走出大学校门,往往会发现,自己出了成绩单上的几个数字之外收获甚少.   但其实学习的主动权就在自己手中,你不喜欢自己的专业,但是你可以为自己选择未来的路.在计算机互联网行业,不是科班出身但是取得辉煌成就的人大有人在,问及为什么不

资深后台研发工程师(转)

资深后台研发工程师 岗位职责: 1.负责搭建平台网络架构及技术架构: 2.把握平台开发方向和技术路线,解决关键技术问题: 3.负责与战略客户.合作伙伴的方案讨论,技术交流以及开发管理: 4.负责参与项目启动.项目计划.项目选型.项目实施.项目验收及项目内部总结等相关工作: 5.参与公司其它技术问题讨论与决策: 6.公司交办的其他事项. 任职要求: 1.5年以上互联网产品研发经验: 2.精通J2EE相关技术,编程基础扎实,熟悉io.多线程.集合等基础框架: 3.熟悉Spring, Spring M

专访阿里云高级专家赵林:从0到1,中间件的研发运维之路

中间件,英文名为Middleware,它提供应用层和系统层之间连接,是应用层实现系统资源集中调用的抽象逻辑,同时协调各个应用之间的沟通:并且自动处理分布式系统中的常见异常,最终简化大规模分布式应用的编写. 早期的中间件,起源于1968年IBM的CICS(Customer Information Control System )交易事务控制系统,是一个分布式的文件服务用来管理用户信息.伴随着互联网发展和分布式系统的兴起,中间件的概念也在发生演变.在分布式网络环境下,中间件面临更复杂的情况:如何解决

【沉淀】访阿里资深专家丁奇:他是如何一步步成为MySQL大牛的?

<沉淀>是品牌栏目,在品味技术人百味人生的同时,也能够帮助你沉淀技术,获得点拨.工作中,如果有不错的大牛让你受益匪浅,也欢迎通过电子邮件(lose.zy@alibaba-inc.com)推荐采访,让更多人受益.我们的想法是:"如果你觉得某个技术挺棒的,不妨品味这些技术人背后的沉淀." 丁奇认为,MySQL设计简单,非常适合初创公司使用 丁奇(真实姓名:林晓斌),阿里云关系数据库服务内核开发和运维团队负责人,活跃的MySQL社区贡献者.专注于数据存储系统.MySQL源码研究和

【揭秘】阿里资深专家:支撑双十一千万级流量的阿里技术到底有多牛

与阿里技术共同成长的八年 --专访阿里巴巴资深技术专家沈询 在阿里巴巴,源于崇尚武侠文化的传统,员工入职时都会选择一个武侠小说人物名字作为自己的花名.王晶昱选择了沈询.沈洵,在沧月的小说<剑歌>里,是名三十而立的剑客,身着一袭白衣,从容不迫,风度翩翩.今年正好是王晶昱三十岁,也是他入职阿里的第八年. 5月26日晚,沈公子主讲的<零点之战,双十一背后的分布式技术>在华南理工大学开讲,仅有一百个座位的会议室挤满了慕名而来的近四百名学生.在台下,他笑容和煦,耐心地解答同学的提问,与邻家大

专访阿里云异构计算负责人:异构计算,GPU、FPGA、ASIC芯片将三分天下

在IT界,异构计算并不是一个新兴的词. 近十年来,计算行业经历了从32bit."x86-64".多核心.通用GPGPU以及2010年"CPU-GPU"异构计算的变迁.而最近几年,随着人工智能.高性能数据分析和金融分析等计算密集型领域的兴起,异构计算才突然火了起来. 因为传统通用计算的方式已经无法满足我们对计算能力的需求,异构计算被认为是现阶段挑起计算大梁的关键技术,阿里云异构计算产品解决方案就在这样的大环境下诞生了,这支团队的掌舵人正是张献涛. 张献涛,花名旭卿,武