在PG 16致谢清单的文章中我们汇集整理了参与PG 16贡献的华人名单,进而向参与贡献的社区朋友进行了线上问答专访,希望通过这个问答专访,可以让大家对参与PG社区贡献能有更具体的认知,希望可以带动更多PGFans参与PG贡献,也欢迎更多有兴趣的PG贡献者参与专访活动。
本期人物:David Zhang(张化好)
专访问题:
1.请简单介绍自己,以及来自哪里?
大家好,我是张化好,目前是瀚高北美研究院的一员,负责PostgreSQL内核调研。
2. 您是什么时候开始接触PostgreSQL,为什么会选择使用它呢?
我是从2019年底开始接触PG,之前一直从事C语言相关的开发工作,加入瀚高后就转为研究PG的内核设计及相关知识。
3. 请说明一下在PG版本中主要做了哪些贡献?
在当前PG版本中的贡献主要是帮助社区审核补丁,比如关于复制部分文档描述的修复,外部数据包装器远程子任务的并行提交,哈希索引性能提升的测试验证等。
4. 请问您是如何向PG社区进行贡献的(描述一下大概的流程或个人的想法)?
个人觉得对PG的贡献大致分两部分:一部分是定期输出的,比如针对某些话题写个博客,还有就是时不时到PG commitfest逛逛,看看对某个补丁是否可以提供一点帮助和反馈意见;另一部分是随机输出的,比如工作中遇到某个问题怀疑可能与PG内核有关,就深挖一下原生PG的代码,如果原始PG确实存在同样的问题就会发email报告bug,有时顺便把补丁也提交了,大部分情况下补丁被接收通常需要经过一个较长的讨论期,有时也会列外,记得有一次提交了一个关于圆输入错误的问题,结果当天就被接收了。
5. 您比较看重PG 16的哪些新特性,简要说明为什么?
我觉得允许用户从备节点执行逻辑复制是一个比较重要的功能。逻辑复制一般对数据复制的即时性要求不是特别高,备节点通常可以满足这个要求。允许从备节点进行逻辑复制可以降低对主节点的压力,同时为不同的高可用设计提供了更多的选择。
6. 您现在从事的工作与PostgreSQL相关吗?具体是从事哪一方面呢?
现在的工作与PG紧密相关,比如计算和存储分离,无服务数据库等等。
7. 您还使用过其他的数据库吗?您最喜欢哪种数据库?
其他的数据库主要是应用层面,比如MySQL,SQLite,SQL Server等,但最喜欢用的还是PG。
8. 您目前正在从事哪些与PostgreSQL相关的项目?
目前在主要在调研如何实现计算和存储分离,计算和存储分离后如何实现无服务计算部署,以及数据负载平衡和高度数据一致性等。
9. 在工作中是否有基于PostgreSQL 开发出了相关工具或产品,可以介绍一下它的特性吗?
平时有参与开发一些基于PG的开源项目,比如为IvorySQL增加在分区表上不适用分区键的情况下构建全局唯一索引,这个功能可以满足一些基于PG的项目既需要分区表又要求能够建立不依赖分区键的跨所有分区的全局索引,从而提高查询效率。
10. 您有其他感兴趣的开源计划吗?会尝试着参与进去吗?
我对开源非常感兴趣,这也是喜欢PG的一个主要原因,平时一直有参与贡献像PG,IvorySQL这类开源数据库的开发工作。
11. 您最喜欢PostgreSQL的(功能等)是什么?
我比较喜欢PG提供FDW插件功能,通过这个插件接口可以用SQL的形式访问其他的数据源。这个数据源不仅限于数据库,还可以是各种格式的文件,比如CSV, XML, JSON等,以及各种数据接口。有了这个接口,可以很方便的将其他数据的访问集成到一个统一的PostgreSQL平台上。
12. 您认为从事PostgreSQL 的门槛高吗?需要做哪些准备,具备什么样的知识储备呢?
我觉得从事PostgreSQL开发的难易程度,主要取决于每个人希望从事的研发方向和个人的背景知识。如果是打算参与算法优化,但又没相关算法的基本知识就会相对比较难。通常从事一些接口类的开发就会相对比较容易,比如,通过逻辑复制接口解决一个数据复制问题。从事PG开发首先必须要熟悉C语言,了解SQL的基本知识,以及基本的GDB调试方法。PG开发是一个从初级到高级的积累过程,动手参与一个实际项目是比较高效的学习方法。
13. 您是否正在阅读PostgreSQL黑客邮件列表?是否有参与讨论?
我有注册PostgreSQL黑客邮件列表,虽然不会去仔细阅读每份邮件,但还是会习惯性的看一看邮件标题,碰到自己感兴趣的就会打开了解一下社区在讨论什么,如果觉得自己需要这个知识点就会把关于这个主题的邮件从头阅读一遍,有时顺带也提供一些自己的反馈意见,尤其是当邮件中已经有一个初期的补丁时。
14. 您如何度过您的空闲时间?您的爱好是什么?
参加一些体育运动,比如网球,足球等,尽量做到劳逸结合。
15. 您最近读的书?还是您想推荐给读者的书?
对于准备从事PG开发或者对PG内核有兴趣的朋友,我推荐去读一读 The Internals of PostgreSQL,这是一本免费的书,虽然没有概括所有PG知识点,但是讲到都很详细且比较容易懂,通过网址https://www.interdb.jp/pg/ 可以在线阅读。
16. 您有经常写博客吗,可以分享一下您的个人站点?
基本上每个月会写上1~2篇,主要是发表到公司网站上
https://www.highgo.ca/author/david-z/
最后,希望以上的分享对大家有所帮助,祝大家生活愉快,工作顺利!
本文分享自微信公众号 - 开源软件联盟PostgreSQL分会(kaiyuanlianmeng)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。