本次阅读时长:

.

.

引言 | Forward
PostgreSQL全球开发小组宣布,PostgreSQL 13的正式通用版本现已可供下载。该组织发布了对数据库系统所有受支持版本的更新,包括 12.4、11.9、10.14、9.6.19、9.5.23(国际社区支持维护5个最近主要版本)。

PostgreSQL全球开发小组每年会发布一个主要版本,同时支持维护5个最近主要版本。PostgreSQL全球开发人员有500多位,分散在世界各地,彰显了社区强大、稳健的发展节奏和自由、活跃的社区氛围。
回忆之前写过一篇文章提及PG国际社区参与贡献的人员列表中几乎很难看到中国开发者,随着PostgreSQL在国内发展越来越受欢迎,有越来越多的国内开发者在默默的参与贡献。
在PostgreSQL 13正式发布通告的贡献者列表中,看到了不少国人姓氏的名字(据统计有30位左右)。故此,中国PG分会向PG13国内贡献者提出了几个问题,来了解他们参与PG 13贡献的具体情况和心路历程。
目前,已收到四位参与贡献者的回复,后续会根据其它贡献者的反馈情况向大家报道,希望PG中国的每位贡献者与我们取得联系,让您的贡献通过我们能够激励更多的人。
贡献者专访 | Q&A
以下是四位位资深用户和开发者朋友针对我们得问题给出的回复,希望对大家参与PG源码贡献有所帮助,在此向四位朋友表示感谢!
陈华军 | 苏宁数据库技术主管
Q1:请问您或您的团队在PG 13中主要贡献了什么?
陈华军:我们主要是PostgreSQL的使用者,在使用过程中如果遇到Bug会报告给社区,过去一年中我们向PostgreSQL社区报告了两件Bug。
Q2:您的团队有几个人在参与贡献,是出于什么考虑主动参与PG的功能完善?
陈华军:我们生产上大量使用了PostgreSQL,当然希望PostgreSQL这个开源产品越来越可靠,越来越好用,并且有更多的人使用它。这就是我们参与PostgreSQL功能完善的初衷。
Q3:您一般会怎么参与贡献,或者参与贡献的基本方式是什么?
陈华军:我们团队在发现开源软件Bug后一般都会报告给社区,当然在报告之前我们也会进行一些调查,尽可能把复现方法甚至问题原因都调查出来。这些开源软件并不限于PostgreSQL,也包括PostgreSQL生态中周边软件,比如Citus,PostGIS,pg_pathman等。
另外,我们也会把使用PostgreSQL的过程中遇到的问题和我们的解决方案分享出来,这有利于PostgreSQL的推广。我本人多次分享过我们基于Citus搭建的分布式PostgreSQL集群的使用经验,我们还计划开源我们自己开发的Citus平滑扩缩容工具,目前这项工作正在积极推进中。
Q4:可否为大家分享一下您在参与贡献过程中的心得体会,比如怎么做才能发现一个问题并得到社区相关人员的确认为bug?
陈华军:贡献PostgreSQL社区有很多种方式,对于大多数使用者来说报告自己遇到的Bug是一种很有价值又比较容易实施的方式。当然报告Bug前首先需要确认是否是已知问题,这可以查看PostgreSQL官网上的归档邮件列表。
在报告Bug时,我们需要讲清楚PostgreSQL的行为哪一点和你的期待不一致,为什么你期望的行为是合理的,更重要是要给出复现故障所必须要的材料,比如环境,SQL,操作步骤等等。
对于无法复现的故障,需要能提供一些方便其他人分析的材料,比如错误日志,堆栈等等。PostgreSQL手册的开头专门有一章讲怎么提交Bug报告,建议大家看一下。
李传成 | 瀚高软件研发工程师
Q1:请问您或您的团队在PG 13中主要贡献了什么?
李传成:我们团队主要是在进行一些开源贡献方面的工作,在PG13中完成commit的主要是一些bug修复。比如bytea类型长度超过256M之后的读取错误,逻辑备份恢复时因为触发器导致的bug等。进行了很多patch审阅的工作,提高每一个patch的可靠性。
主要做了很多功能行patch,比如内置sharding(原生分布式),并行备份等,不过这些不是PG13要发布的内容,后续如果被接受,可能会在PG 14中发布,也可以访问postgreshub.cn获得我们发布的开放源码包。
Q2:您的团队有几个人在参与贡献,是出于什么考虑主动参与PG的功能完善?
李传成:我们团队很多人都在积极关注社区的动态,不仅仅是PG社区还有比较流行的pgpool等社区都有人在参与贡献。主要是想回馈社区,为PG的发展尽一份力。
Q3:您一般会怎么参与贡献,或者参与贡献的基本方式是什么?
李传成:社区贡献方式多种,包括代码提交、bug修复、代码review等等,重点突出代码提交,作为瀚高软件的主要研发力量,会集中精力参与到原生分布式功能的开发中,目前主要推动build-in sharding(原生分布式)等工作。
最简单的可以参与审阅patch,从代码层面上判断patch是否可靠,另外可以跑一下测试,从效果层面看一下patch是否达到了作者的预期效果,然后把结果反馈给社区。
另外可以搜索bug邮件列表,找一些pg未解决的bug,去修复这些bug,并提交给社区。自己发现bug并提交bug本身也是贡献的一种方式。
Q4:可否为大家分享一下您在参与贡献过程中的心得体会,比如怎么做才能发现一个问题并得到社区相关人员的确认为bug?
李传成:PG社区是开放的大家庭,参与门坎很低。发现任何问题只要发个邮件就能把你的问题传达给社区大佬。据我观察一封描述清晰的邮件,基本可以在一天内收到回复,比如是一个需要修复的bug,是一个PG的限制,还是使用方法不正确等等。
李建平 | 成都熙雍科技研发工程师
Q1:请问您或您的团队在PG 13中主要贡献了什么?
李建平:我们团队针对 PG 13 的主要贡献是修复部分内置连接池,SELinux 相关的 Bug 以及一些代码优化。
Q2:您的团队有几个人在参与贡献,是出于什么考虑主动参与PG的功能完善?
李建平:目前我们团队有 2 个人在参与贡献,出于公司业务需要以及个人兴趣而参与 PG 的功能完善。
Q3:您一般会怎么参与贡献,或者参与贡献的基本方式是什么?
李建平:通常,我们在遇到问题的时候,首先会确认这是否是 BUG,然后通过修改并进行回归测试,如果一切正常,则向 PG 邮件列表发送相关的Patch 文件,并参数社区讨论。
此外,我们可以订阅 PG 的邮件列表来关注我们感兴趣的内容来参与相关的讨论,或者参与 Code Review。
Q4:可否为大家分享一下您在参与贡献过程中的心得体会,比如怎么做才能发现一个问题并得到社区相关人员的确认为bug?
李建平:在参与贡献的过程中,我发现社区的人员都非常热心,对待问题非常严谨。比如说,我之前在发现关于时间相关的一处可以优化的地方,随后通过修改向社区发送 Patch,而 Tom Lane 大神在这个 Patch 的基础之上发现了一处 Bug 并添加了回归测试。
骆政丞 | 成都文武信息技术研发工程师
Q1:请问您或您的团队在PG 13中主要贡献了什么?
骆政丞:我们主要在pg13版本中报告bug以及提供了bug fix的patch。
Q2:您的团队有几个人在参与贡献,是出于什么考虑主动参与PG的功能完善?
骆政丞:当前有2人在参与贡献。因为我们公司有自己release的数据库版本,在开源PostgreSQL的基础上,增加了一些企业版的安全功能,增加了一些常见的oracle语法兼容,以及高可用集群。这些功能的开发都需要对pg内核代码进行深入研究,在研究过程中就会发现一些bug,就顺便提交给社区。
Q3:您一般会怎么参与贡献,或者参与贡献的基本方式是什么?
骆政丞:在pg版本正式发布前,会有alfa版,beta版,我们一般都会预先使用并测试一下新增的功能,在使用中,提出改进建议以及发现的bug。一般都是用邮件方式沟通交流,将发现的问题与建议发送到邮件列表中。
Q4:可否为大家分享一下您在参与贡献过程中的心得体会,比如怎么做才能发现一个问题并得到社区相关人员的确认为bug?
骆政丞:bug提交其实很容易,我们只要在新版本发布前多参与测试工作,或多或少都会发现一些问题,多使用邮件列表和社区里的人交流,能使我们学到更多东西。至于提交bug fix的patch,我们先要对Postgres的内核代码熟悉,修改完后需要运行回归测试,确保没有引入新问题,再将patch提交到邮件列表中,最后在与社区人员以及核心提交者之间的反复沟通交流,并修改代码后,他们就会接受提交。
后记|Afterword
PostgreSQL稳健发展30多年,主要依靠社区组织、生态用户、开发者的力量,是开源让大家联系在一起,是大家让PostgreSQL变得越来越好,变得越来越有价值。
作为一个PostgreSQL数据库从业者,再次由衷的向每一位参与贡献的PG工程师、推动PG发展的用户致敬!
最后,欢迎大家积极参与中国PG分会的工作,给予我们鼓励和支持,携手共同推动PostgreSQL在中国更好的发展!
I Love PG
关于我们
中国开源软件推进联盟PostgreSQL分会(简称:中国PG分会)于2017年成立,由国内多家PostgreSQL生态企业所共同发起,业务上接受工信部中国电子信息产业发展研究院指导。中国PG分会是一个非盈利行业协会组织。我们致力于在中国构建PostgreSQL产业生态,推动PostgreSQL产学研用发展。
活动成就
PostgresConf.CN & PGConf.Asia2020大会预告
经典文章
PostgreSQL与Oracle:成本、易用性和功能上的差异
精彩专辑






