PostgreSQL ACE 深度访谈 | 第六期 杨向博

08/14 17:38
阅读数 65
AI总结
导语

由PG分会发起的“PostgreSQL ACE深度访谈”栏目,旨在挖掘ACE们对数据库行业的深度洞察,分享他们对行业发展的思考和个人感悟,对广大PGer们具有实际借鉴意义。


以下正文,转载请注明出处,并获得作者允许。



正文





01

请简单介绍一下自己,您的爱好或您的家乡。


我还算一个比较有意思的人,在工作和生活中总能充当一个段子手,给大家带来一点欢声笑语。


说起爱好,以前喜欢打乒乓球、打篮球,吃饭、睡觉、唱歌(自称小许巍)。我曾以为我会成为美食家,后来发现只是单纯的爱吃而已,球是不打了,不过吃饭的爱好一直在坚持,所以我逐渐成为了一个比较有趣的胖子。不过,最近几年我最大的爱好就是学习研究PG了,对PG很着迷(这么讲吧,刷美女短视频和研究PG我会选择后者),经常研究PG问题或者代码不知不觉就到凌晨了。


我的家乡是陕西省首批公布的省级历史文化名城-凤翔,也称西府凤翔,古称雍,是周、秦发祥之地、嬴秦创霸之区、华夏九州之一。相传秦穆公之女弄玉善于吹笛,引来善于吹箫的华山隐士萧史,知音相遇,终成眷属,后乘凤凰飞翔而去,唐时取此意更名凤翔。凤翔历史悠久,先秦19位王公在此建都294年,是秦始皇加冕、苏轼初仕之地。千年园林东湖,西府“三绝”,是民间工艺美术之乡,享有“青铜器之乡”和“西凤酒乡”的美誉。 


东湖胜景(图片来自网络)


对家乡的这段介绍来自某百科,我觉得整体还是不错的。补充一些,当地特色美食有擀面皮、豆花泡馍、腊驴肉等。非物质文化遗产有泥塑、木版年画、皮影、剪纸等。当然还得再介绍下有着四大名酒之称的西凤酒,西凤酒属凤香型大曲酒的典型代表,其主要原料为高粱和泉水。制曲原料是大麦和豌豆。其酿制方法不同于一般白酒,西凤酒利用土窖和大型容器-酒海。西凤酒色泽清澈透明,香气清芬,酒味醇厚、清洌。1952年第一届全国评酒会将陕西省西凤酒厂生产的西凤酒评选为中国四大名酒之一。欢迎大家去我的家乡打卡。


02

我们能从哪些渠道了解到您?


我目前没有个人公众号,不过我定期会在PGfans问答社区,和开源软件联盟PostgreSQL分会公众号发布一些文章。


03

您最近读过的一本书是什么?或者您想推荐给读者的一本书是什么?


最近想给大家推荐《快速掌握PostgreSQL版本新特性》这本书。以前我们查看版本新特性主要是去阅读Release Notes,不过信息不够全面且比较零散。这本书全面总结了10-16各个版本的新特性,并且给出了一些详细的验证示例。我觉得无论是DBA还是业务开发人员都值得学习下这本书。


04

您是什么时候开始接触PostgreSQL,为什么会选择使用它?


和大多数人相比,我算是比较幸运吧,完成学业后第一份工作开始就是PG相关的,直到现在一直是与PG相关,快要10个年头了。当然中途也接触到了Oracle,以及常见的几种NoSQL,不过重心一直在PG。


这里讲个有趣的故事,当初差点和PG无缘了。毕业后去公司报道的第一天,leader让导师给我们制定下学习和工作计划。您猜怎么着,导师直接甩给我一本《PostgreSQL数据库内核分析》,我翻了几页直接就懵了,当时心里一万个XXX。当然导师是太忙,想着先随意给我一本书看看。但是这对于当时的我来说难于登天啊,心想我还爬不利索呢,您就让我去跑个1000米试试,这不是劝退吗。我就硬着头皮看了一下午,最后我的leader看到了,调侃了下我导师,安排好了合适的计划和内容。同时leader给我多安排了几位导师,有擅长SQL的,有擅长C代码的,从此我的PG生涯拉开序幕了。


所以算是一种缘分吧,从开始工作就使用PG了。


05

您的学生时代接触过PostgreSQL吗?您大学中所学的知识是否帮助到了现在的工作?


没使用过,当时有同学研究过数据库,数据库方面的书籍不少。我看到过《PostgreSQL9.0性能调校》这本书,只是听同学说PGSQL是一个不错的关系型数据库。当时我并没有专门学习,那个时候还热衷于学习专业相关的单片机嵌入式这些内容。


虽然不是从事专业的内核开发,但我认为作为DBA还是要具备读懂代码的能力的。


大学中学习的C语言基础,以及嵌入式等这些知识,对我来说意义重大。有了这些基础知识储备,再加上工作中积累的一些经验,遇到疑难杂症需要深入原理分析时,大多时候可以分析源代码来解决问题,或者是优化内核逻辑。


06

您还记得您最开始使用的PostgreSQL版本吗?有没有令您印象深刻的地方?


最开始使用的是基于PG9.2.4的某国产数据库,接触原生PG是9.6版本。最让我印象深刻的地方是支持了wait_event等待事件的特性,在此之前,我们对于一条sql或者一个进程的执行状态并不能明确抓取到,这对于我们分析问题,以及整体性能调优来说是很不方便的。


有了等待事件之后,每个进程整个生命周期每个阶段都有对应的等待事件来表明当前进程所处的状态。只需要查询系统视图就可以跟踪完整的等待事件,无疑使用户的使用体验更友好,更白盒化,更方便快捷。


07

您目前正在从事哪些与 PostgreSQL 相关的工作或项目?


目前是一名PostgreSQL DBA,负责产品架构演进和运维管理相关工作。


08
您如何为 PostgreSQL 做出贡献(主题分享、发表文章、文档贡献、代码贡献等)?


1) 定期在pgfans、PostgreSQL分会公众号发表文章;


2) 基本每年都会参加中国PostgreSQL数据库生态大会进行分享;


3) 我没有直接给社区贡献代码,自己平时喜欢瞎琢磨,偶尔会改一些内核逻辑玩玩。


4) 不过巧合的是,修改过的代码中有一些社区后来都有修改:


PostgreSQL 14版本支持crash后清理临时文件;

pg_cron 1.6.1 当cron调度进程被终止后自动拉起。


09

您最喜欢PostgreSQL的功能或扩展是什么?


扩展是PG一个很大的优势,我目前最喜欢的是FDW。我可以通过FDW把其他PG实例或者MYSQL实例的数据输入到一个PG实例进行分析,目前我们一个运营分析系统就是这样的架构,有了各种FDW,我们系统这部分的应用代码就非常简单,只去处理一个PG实例就可以了。

10

PostgreSQL 最新版本中您最喜欢哪个功能?


PostgreSQL 17增量备份恢复功能。


11

您能描述一下您的 PostgreSQL 开发工具箱吗?


查看代码常用sourceinsight ,编辑vim vscode,调试gdb。


12
您认为从事PostgreSQL 技术工作的门槛高吗?需要做哪些准备,具备什么样的知识储备呢?


这个要针对性看待,当然是我个人看法。


对DBA而言,需要做好数据库架构设计,做好资源监控和管理,提升数据库系统稳定性。同时要对业务相对熟悉,要有扎实的PG理论基础,扎实的系统运维能力,较强的故障分析处理能力。当然最好可以读懂源代码。


从事业务开发,除了业务coding的能力,PG这里还要掌握好语法特性,做好库表设计,最好可以有一定的分析和优化SQL的能力。


从事产品设计,除了解PG数据库特性之外,还需要紧跟国内外PG生态以及社区发展来制定产品未来的发展方向,把控产品演进的节奏。


从事内核开发,在我看来门槛还是不低的。除了要精通数据库某些原理,C/Cpp等开发语言基础要硬,数据结构与算法,操作系统底层原理,网络协议,存储设备等等要非常熟悉。以及更底层cpu指令等这种level的知识储备。


当然要成为某个领域的专家,门槛还是比较高的。这里不太好描述,列举几位大家熟知的专家,从他们身上可以找到答案。


熊灿灿(灿神) 冯若航(冯董) 周正中(德哥) 吕海波(vage)


13

对于即将发布的PostgreSQL 新版本,您期待它有什么样的的新特性吗?


最期待64位XID


14

在工作中是否遇到了有关PostgreSQL的难题,都是如何解决的?


遇见难题先主动思考,尝试从原理层面分析解决问题。


超出能力范围的,很久都没自主解决的,向别人请教。沉淀下来对自己会有很大的提升。

15

你在阅读 -hackers 邮件列表吗?还有其他列表吗?


有空就会阅读,还关注pgsql-bugs


16

您认为身为PG ACE,应该具备那些技能或品质?


持续地学习,多参与分享,热衷于推动PostgreSQL的发展。


17

您还有其它想表达的观点吗?


目前发现在高校合作方面,一些商业化公司做的不错,几个比较知名的数据库厂商和部分高校有项目合作。但是开源PG不多,期待PG分会后期可以多进行校园宣传,成立兴趣小组,专项实验室,让学生在校园就可以接触到PG,为PG或者国产数据库做好人才储备。




本文分享自微信公众号 - 开源软件联盟PostgreSQL分会(kaiyuanlianmeng)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
AI总结
返回顶部
顶部