前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >研一就成为Apache顶级项目的Committer,他们是这么做的

研一就成为Apache顶级项目的Committer,他们是这么做的

作者头像
Apache IoTDB
发布2022-09-02 09:05:39
8310
发布2022-09-02 09:05:39
举报
文章被收录于专栏:Apache IoTDBApache IoTDB

Welcome

New Committers

2022年5月24日,经 Apache IoTDB 社区投票,刘明辉、刘旭鑫成为 Apache IoTDB Committer 。今天,我们为大家带来“二刘同学”与 Apache IoTDB 的故事。

Committer 刘明辉

清华大学软件学院研一学生,本科就读于厦门大学计算机系,2021年7月开始参与 Apache IoTDB 开源贡献。

主要贡献有:

SQL 解析重构、降采样聚合查询功能扩展、查询资源优化、C++ 客户端维护、查询逻辑计划生成等。

目前已经向 master 分支贡献70余个 PR,累积贡献度排名第 18 。

关于

Apache IoTDB

初识

加入IoTDB的契机是什么?

最早是在选择研究方向的过程中了解到 Apache IoTDB。这款高校自研数据库系统软件被捐赠到 Apache 软件基金会成为顶级项目,这种情况在国内非常少见,也因此引起了我的兴趣。

在本科阶段,我接触到的更多是一些算法方面的学习,尤其是近几年比较火的人工智能。人工智能固然神奇瑰丽,但相对于“炼丹”,我发现我更享受解决实际工程问题带来的成就感、满足感。而 IoTDB 既符合了我的兴趣,又足够“硬核”,能给我带来广阔的成长空间,因此我最终选择参与到 Apache IoTDB 这个项目中。

我是在2021年7月开始接触 IoTDB,并在7月13号合并了我的第一个 PR,正式成为了一名社区贡献者,开启了我与 IoTDB 的故事。

参与

有记忆犹新的故事吗?

让我记忆比较深刻的可能是最近几次的新分布式版本联调。各个模块的开发同学被组织在一起,焦急等待测试结果。中途有 bug 出现,大家就随时顶上。在大家的思维碰撞中,可以学习到其他同学解决问题的思路方法,社区伙伴之间的感情也更加深厚了,总之是段很难忘的经历。

成长

主要负责的内容和收获?

我在 Apache IoTDB 中主要负责查询引擎方面的工作。最大的收获就是让我从一个连 Java 和设计模式都不懂的小白成长成一个能够熟练参与开发、解决问题的 Committer,这离不开社区的培养,尤其是田原、祥威、宇荣等社区前辈对我细致耐心的指导。或许这就是开源的魅力所在吧。

关于

开源社区

成长

对开源有了什么新的认识?

好的开源社区是源动力

最早我对开源的认识很简单,认为把代码公开到 Github 等代码托管平台就叫开源了。但在参与 Apache IoTDB 项目的过程中,我对开源也有了更深的认识——也就是常说的“社区大于代码”。在开源社区中,开发者可以接触到来自不同公司、高校,具有不同背景的同学,大家为了相同的目标共同努力、一起成长,这对开发者来说是很有吸引力的,也是一个开源软件能够持续健康发展的根本。我认为一个好的开源社区应该是开放透明的,社区的同学为了共同的目标进行平等的沟通协作,去感受社区乐于分享的氛围。

千里之行,始于足下

——《道德经》· 老子

寄语:

希望有更多的同学像我一样能加入开源社区,从小事开始做起,扎实牢靠的积累自己,一步步成长,和社区一同茁壮!

Committer 刘旭鑫

清华大学软件学院研一学生

主要贡献有:

在 0.13 版本中重新设计和实现了数据合并模块,并进行长期维护。

目前总共向项目贡献 70 余个 PR, 5 万余行代码,累积贡献度排名第 26 。

关于

Apache IoTDB

初识

加入IoTDB的契机是什么?

大概在 2021 年 1 月份左右,我当时大四做毕业设计的时候了解到这个项目。我毕业设计的主要内容是基于用户的查询负载优化 TsFile 中 Chunk 的大小以及排列。从那个时候开始就在乔嘉林学长和田原学长的帮助下,学习 TsFile 中的文件结构以及 IoTDB 的查询模式和执行流程。这个过程中我也和一些社区开发者有过交流,受到了他们的帮助,最终顺利地完成了我的毕业设计。

参与

有记忆犹新的故事吗?

印象最深的是有一个 PR 被 revert 掉了。因为原来 0.12 中并没有监控功能,每次合并有问题都需要从很多的日志里面去翻找,我就想在 0.12 里面写一套简单的监控功能。但是 PR 合进去以后,发现对 IoTDB 的性能造成了比较大的影响,后面就 revert 掉了。这个事情让我明白,写系统软件任何一个小的改动都有可能造成蝴蝶效应,所以任何改动都需要经过充分的测试之后再合进主仓库。

成长

主要负责的内容和收获?

我的主要工作就是数据合并模块,也就是 LSM 中的 Compaction 模块,收获主要有两个方面:

1

让我学会了写系统软件时对性能的把控要到位。合并模块比较消耗 IO、 CPU 和内存,如果性能没把控好的话就很容易影响写入和查询,甚至有时候会 OOM 。所以从算法、数据结构、JVM 的 GC 等等方面都要对性能有一个比较好的把控。

2

学会了很多 Debug 的技巧吧,之前合并模块总出 Bug,因此从浩如烟海的日志中寻找 Bug 的蛛丝马迹是必备的本领。之前最多的一次,为了找一个 Bug,打了几 GB 的日志,然后用 grep 一点点去排查。我应该也是 IoTDB 里第一个用 UDF 在线上系统不停机的情况下去查 Bug 的人,主要就是用 UDF 的动态加载特性,然后在里面写一些反射代码,来获取我们想知道的系统内部信息。

这两项能力我认为在本科都是比较难锻炼到的,以前写的代码主要是一些大作业,IO 多一点内存多一点 CPU 消耗多一点都无所谓,反正最后能交上去就行,现在写代码考虑的方面就会更多一些。

关于

开源社区

成长

对开源有了什么新的认识?

社区的交流与碰撞是意义所在

最开始认为的开源就是把软件的源代码交出来让大家免费用,现在觉得开源其实承载了更多东西。开源的意义不仅在于那些代码公开,更重要的是开源社区凝聚了不同背景的开发者,他们之间的交流和碰撞有着很大的意义。有些时候和别的开发者交流的时候,就会发现别人看问题的视角和我们的不一样,解决方案的思路也不一样。这些过程中都能给身处其中的人带来收获和成长,我认为这是开源对于开发者重要的意义所在。

非技术类——《三体》

技术类——《现代操作系统》· 陈海波

寄语:

每次看《三体》这套书都会让我觉得很震撼,《现代操作系统》是我在去年毕业前读的,读完之后我感觉像是把操作系统这门课重新学了一遍,里面有一些比较前沿的操作系统主题,还是值得一观的。

关于我们

Apache IoTDB——海量时序数据管理的最佳解决方案,一款高吞吐、高压缩、高可用、物联网原生的开源时序数据库。从0到1自研时序存储方案、物联网数据模型、低流量数据传输方案,使得纳秒级采样数据写入无压力、TB级数据查询毫秒级、数据存储无损压缩数十倍。核心技术源自清华、自主可控。目前已在国家电网、国家气象局、中航成飞、中核集团、长安汽车、金风科技等企业广泛应用。

本文参与?腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-06,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Apache IoTDB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com