作者 | 鲁冬雪

审校 | 赵钰莹

陈现森,目前是一名华东师范大学在读研究生,曾参与 openGauss 数据库与 Spark 大数据项目的对接任务,实现了 openGauss 社区与 Spark 社区之间的联动,连接了 openGauss 社区重要的北向技术生态。近两年来,积极参与 openGauss 社区贡献,曾在社区任务打榜赛中获得 Top4 的排名。

作为学生开发者,这样的成绩让陈同学在 openGauss 社区众多贡献者中备受瞩目。近日,InfoQ 与陈同学进行了一次对话,聊了聊他眼中的 openGauss 社区。

一名在读研究生的自白:我为什么会沉迷于openGauss 社区?_spark

1“与 openGauss 的结缘始于课题,忠于社区氛围”

在与 openGauss 第一次正式合作之前,陈同学便在研究生导师的指导下接触到了 openGauss 社区。

陈同学所在实验室的研究方向偏向大数据、计算系统,技术研究更偏底层。2021 年暑期,陈同学报名参与了“ openGauss 数据库与 Spark 大数据项目的对接”工作,这算是陈同学与 openGauss 的第一次正式合作。

在这个项目中,陈同学完善了 openGauss JDBC Driver 的工作流程,输出了一些指导说明文档,基于 openGauss JDBC 提供了Spark DataSource V2。这一举措直接实现了 openGauss 社区与 Spark 社区之间的联动,成功连接 openGauss 社区重要的北向技术生态,开发者们可以直接从仓库中下载 openGauss JDBC Driver,使用更便捷。要知道,在这之前,openGauss 并没有尝试与 Spark DataSource 接口进行对接,只是通过 Spark 操作 openGauss 的数据。



在将该项目传到 openGauss 社区的官方代码托管仓库后,陈同学收到了不少来自其他开发者的正向反馈邮件,同时也获得了老师的肯定。他输出的“openGauss 对接 Spark”相关技术文章在开源领域广泛传播,吸引到了各个银行客户的关注,成为了学生参加 openGauss 社区贡献的标杆人物。

对于陈同学来说,该项目带来的成就感不仅仅是解决了技术问题,作为学生的他,还有额外收获,“我完整地体验了一次开源协同的流程,包括完善文档、贡献提案、输出技术博客、Bug 修复等,最重要的是结识了当时的项目导师,这位导师在技术研究层面给了我很多支持,对我影响很大。”

也正是从这个项目起,陈同学开始“沉迷”于 openGauss 社区,积极参与 openGauss 社区贡献,完善了许多 openGauss 社区的文档说明,而且在社区任务打榜赛中闯进 Top4。用陈同学自己的话说,“社区里的同学非常积极,我在学习中如果遇见问题,我会优先想到去 openGauss 的社区看看,通过社区找到了很多技术问题的解决方法,通过邮件与其他社区贡献者沟通交流,都能得到积极的回复,这样积极的社区氛围让我很喜欢。”

通过与社区伙伴的交流,陈同学对 openGauss 的内核代码了解加深,为研究生课题研究提供了很大助力。“在参与 openGauss 社区交流之前,在这方面我就是个小白,我现在研究的课题也与 openGauss 强相关——借助 openGauss 的插件化架构,自定义一些算子实现以加速 openGauss 的查询执行,比如优化 Hash Join、Aggregate 等算子。”

“对比国内其他数据库相关的开源社区,openGauss 的社区活跃度算是比较高的, openGauss 社区为开发者提供了许多技术指导,这很吸引人。”



2“openGauss 社区活动丰富,对学生开发者超有吸引力”

一个开发者社区活跃的标志,除了贡献者数量多,还要看用户社区活动参与热度是否高涨。陈同学提起 openGauss 社区最令学生党满意的地方,除了 SIG 小组组织的例会、交流会等活动外,还有专门针对大学生举办的“社区活动“。陈同学就曾参加过由 openGauss 社区与 Gauss 松鼠会、墨天轮联合举办的“知识问答竞赛"和“8 小时玩转 openGauss 训练营"两个活动。

陈同学参加了两次 openGauss 知识问答竞赛活动,分别拿了二等奖、特等奖。该竞赛的题目主要涉及数据库基础及 openGauss 相关的知识,连续参加两次知识问答竞赛,陈同学对 openGauss 的了解越来越全面、数据库基础知识的掌握越来越扎实。“openGauss 知识问答竞赛活动已经做了很多期,但能感知到,身边的同学都很喜欢参与。”陈同学在接受采访时有些兴奋地说道。

一名在读研究生的自白:我为什么会沉迷于openGauss 社区?_spark_02

“除了知识竞赛,8 小时玩转 openGauss 训练营活动让我的收获也很大。“ 陈同学这样形容 openGauss 社区举办的训练营活动。



由于 openGauss 正在成为国内主流的数据库核心技术路线,所以为了让更多的数据库技术爱好者、从业人员能够更深入地了解 openGauss、备考 OGCA,“8 小时玩转 openGauss 训练营”往往都会设置 2 天共计 8 个小时的课程,由业界资深专家共同授课,内容充实且深度结合实践。训练营时间都挑选在周末,且全部课程免费,由训练营专家讲师团亲自把关作业和考试,对学生开发者十分友好。

一名在读研究生的自白:我为什么会沉迷于openGauss 社区?_spark_03



陈同学参加的是第二届“8 小时玩转 openGauss 训练营”,结营时,陈同学输出了题目为《关于 MOT 这个学界与业界结合的产品》的训练营学习心得,明确表达了他对于训练营内容及讲师的认可:“初识 MOT 内存表开始看代码时,不太能理解 MOT 的具体原理,直到我在课上听到了 MOT 内存表的讲解,以及一篇相关学术论文的发表,我才发现这个引擎有多么新奇。另外,上课的王鹏博士也是论文作者之一。”

一名在读研究生的自白:我为什么会沉迷于openGauss 社区?_spark_04



其实,openGauss 社区为了让更多学生开发者参与进社区交流,做的不仅仅只有这两个活动。openGauss 社区多次走进高校,希望通过联合高校,打通产、学、研、用体系,让学生们将理论、实践与应用相结合,学生们掌握的基础理论可以很好地对接产业和市场需求,从而构建完整的知识体系,激发产业活力,推动数据库技术演进。

3“openGauss 社区基础设施建设真的越来越棒!”

已经参与 openGauss 社区贡献有 2 年多时间的陈同学对 openGauss 的社区治理表示高度认可,“首先就 openGauss 数据库来说,我最开始接触的时候是 2.0 版本,现在已经 3.0 了,可以看到发布的新特性,比如一些向量化引擎比较独立,其周边工具、维护工具也在完善,比如 OM 工具。社区基础设施的完善让社区贡献者的体验感不断提升,作为学生开发者的我还是很满意的。”



与此同时,陈同学也收获了许多新知识。比如插件化架构的 openGauss,添加了现代化引擎。想要自己开发插件的他,可以了解到 openGauss 内核代码是如何执行的,可以基于插件化架构去扩展 openGauss 的生态或做一些比较有意思的事。

对于 openGauss 社区最新上线的“TryMe 在线体验环境”和“社区贡献看板”两个功能,陈同学的满意度也比较高。

陈同学称“TryMe 在线体验环境”对于一些刚接触数据库、刚接触 openGauss 的同学来说比较方便,可以给学习 openGauss 以更低的门槛,对于他自己而言,他会在“TryMe 在线体验环境”中放一些 Demo 的数据,使他更快捷地参与社区贡献。这也实现了 openGauss 发布“TryMe 在线体验环境”的初衷,也是为了让开发者更快融入社区参与贡献,TryMe 开箱即用的实验环境,无需安装,打开浏览器即可使用,其中还有大量的操作示例,让开发者通过实时在线体验快速掌握基础技术能力。

至于“社区贡献看板”功能,陈同学有自己的一些看法。“openGauss 社区新上线的贡献看板功能可以直观地看出一些个人开发者的贡献量,是一个很棒的功能,可以调动贡献者的积极性,从而提高社区的活跃度。与此同时,看板的发布,包括我自己在内的 openGauss 社区贡献者应该做的是继续保持初心,以开放的心态积极去做交流。”目前开发者们可以通过 openGauss 社区的贡献看板清晰看到社区用户数、贡献者人数、单位会员数、SIG 小组数量等数据,这个功能是开发者们实时了解社区进展的重要途径。

一名在读研究生的自白:我为什么会沉迷于openGauss 社区?_数据库_05



4写在最后

目前陈同学已经加入了 4 个 openGauss SIG 小组。其中主要负责 openGauss 插件机制的规划、管理、开发的 Plugin SIG 小组帮陈同学的课题解决了不少难题。通过陈同学我们也了解到,他身边许多同学在遇到技术问题时,也会优先想到去 openGauss 社区相关的 SIG 小组去寻求解决方案。

在采访的最后,当下还是学生开发者的陈同学表示,openGauss 的社区生态面对多元的开发者角色表现出了极大的包容性,如今不断完善的社区基础设施建设和信息公开的生态环境,让他看到了 openGauss 社区活跃度只增不减的未来,也看到了 openGauss 数据库技术蓬勃发展的前景。所以当他毕业后,从一名学生转变为全职开发者的时候,他也将继续坚守自己的开源初心,继续在 openGauss 社区里与众多开发者一些研讨技术、贡献自己的技术力量。