新晋 Committer 也有 “产学研联动”?速来围观不同视角共建 IoTDB 社区的故事!
新 Committer 报道!
2022 年 12 月 15 日、19 日,2023 年 1 月 4 日,经 Apache IoTDB 社区投票,冯庆新、王俊清、陈荣钊成为 Apache IoTDB Committer。这三位贡献者来自产、学、研不同的领域,也以不同的角度投入到了 IoTDB 的研发迭代中。今天将和大家分享他们三位与 Apache IoTDB 的故事。
冯庆新自我介绍
我叫冯庆新,目前就职于大数据系统软件国家工程研究中心,负责研究中心软件研发流程制定、监督和改善,同时是清华数为框架测试平台开发,负责保障研究中心软件项目全生命周期产品质量。
关于 Apache IoTDB
1.最开始你是怎么了解到 Apache IoTDB 这个项目的?
我最初在参加实地项目中接触到 IoTDB,从而了解到 Apache IoTDB 项目并开始深入研究。当时面对的情况是 2019 年中车四方项目需要使用 IoTDB,在上线前有一些与旧系统数据库的对比工作,我受邀参加协助对比工作,在这个过程中开始摸索学习到 IoTDB 的具体技术与特性,并展开了我对 IoTDB 的后续工作。
2.是什么让你最终选择参与到 Apache IoTDB 这个项目中?
最初接触到 Apache IoTDB 项目是因为上面说的工作安排,我通过开发文档和介绍文件摸索学习,了解了 IoTDB 的作用与用途,对 IoTDB 开放的系统架构、卓越的读写性能等技术优势越来越感兴趣。之后逐渐从一些周边工作开始入手,例如辅助功能的脚本开发和问题修复、文档的纠错等等,参与工作的深度和难度也逐渐越来越高。
同时,在参与 Apache IoTDB 项目的过程中,我也接触了许多认真负责并且很有想法的人。我个人非常认可和欣赏黄向东,可以感受到他参与 IoTDB 时认真的态度,我认为团队里有这样的人,这个团队做的事是可以信任的,会有一个好的结果,从而更加希望自己可以和他们一起为 IoTDB 做出力所能及的贡献。
3.在 Apache IoTDB 中主要负责哪一部分的内容?
我目前主要负责对 IoTDB 的部分关键功能展开质量保障工作,例如测试流程和测试策略的优化、测试工具和测试平台的开发、IoTDB 功能和性能的持续测试等等。另外我也会参与到部分功能的需求讨论设计,这么做是希望在初期就能与开发这个功能的研发同学统一思路,进而在后续更好的对这个功能进行优化。
4.在参与 IoTDB 项目建设的过程中,有哪些收获?
首先在与人沟通和交流方面相较于之前有了比较大的提升,因为在参加项目的过程中与他人的交流是非常重要的,有任何问题都要及时的沟通解决,才能避免更大的信息误差或无用功。其次是我更加深入的了解了开源项目的生态和维护方式,增加了自己在时序数据库技术方向的知识储备量,提升了自身的综合能力。
5.有什么参与贡献过程中的故事分享?
其实我做的工作直接以代码的方式进入仓库的很少,反倒是开发测试和监控工具,以及平台监控仓库代码质量,从而帮助更好的维护 Apache IoTDB 核心功能这方面的工作,我参与得更多,印象也更深。
目前我开发和维护的 Atmos 平台经过了半年的开发和更新迭代,已经在 2022 年 5 月下旬正式上线,之后一直在持续的监控 IoTDB 的主分支功能和性能稳定性。在其运行的这 300 多天里,我曾经多次帮助开发及时发现功能失效和性能下降等问题,避免了这些问题长时间存在于主分支,从而被用户感知、获取到,甚至遗留到发布分支进入正式版本。这种当“无名英雄”,为大家“保驾护航”的感觉算是我在参与 IoTDB 社区建设中特别有成就感的时刻。
6.是什么让你能一直坚持参与 Apache IoTDB 项目,最终成为 Committer 呢?
首先我认为 Apache IoTDB 项目是一个有前景和很大成长空间的好项目,我相信这个项目未来的发展空间会是非常广阔的。其次,在参与过程中我也可以收获更多的经验和知识储备,更加了解开源,同时可以培养一些技术开发方向的新思路,并且有更多的机会去接触一些实地项目,帮助 IoTDB 在这些实地项目中落地。我在为 Apache IoTDB 项目贡献自己力量的同时也可以完成个人能力的提升和成就感的获得。
关于开源社区
7.之前有过参与开源社区的经验吗?对开源/开源社区有什么新的认识吗?
没有,IoTDB 是我第一次接触开源社区。在以往的工作中我负责的内容是代码内开源软件检测,但是没有涉及到参与社区活动。现在我认为开源和开源社区是一群来自不同公司、不同技术背景但兴趣相同、方向相同的人一起发挥自己的聪明才智,向着相同的目标努力,在这个过程中互相学习,共同进步和成长。
8.你觉得开源社区对 Apache IoTDB 的“加成”是?
我认为开源社区可以激发出更大的开发力量,IoTDB 的开源社区让一些兴趣相同、方向相同的人员聚在一起,可以一起投入到 Apache IoTDB 的研发中,大家可以发挥各自所长,提供更多的思路,可以互相学习和参考,人多力量大,同时也可以避免个人的思维局限,让产品“跑起来”,更高效的实现产品迭代。
9.有没有给想要参与 Apache IoTDB 开源社区贡献的小伙伴一点小建议?
Apache IoTDB 开源社区不仅仅需要编码这一个内容,而是需要不同领域的人才,这个过程中涉及产品、设计、质保等多领域的内容(比如我其实就是主要做测试和监控工具的)。擅长这些方面,或者对这些方面感兴趣的人也可以加入到 Apache IoTDB 开源社区中尝试贡献一份力量,相信在这个过程中大家都会有所收获和进步~
成为 Committer 的感言!
能够成为 Committer 是对我工作能力的一种肯定,同时也表明只要喜欢贡献、热爱贡献、多多参与社区活动,为 IoTDB 壮大提供力所能及的力量就会受到社区的认可。我很高兴可以加入到 IoTDB 社区这个大家庭,希望未来能够凭借自己的专业技能,在自己擅长的方面提供更多力量,帮助 Apache IoTDB 越变越好。
陈荣钊自我介绍
我叫陈荣钊,GitHub 的名称为 YongzaoDan(我名字的闽南语读音~)我本科毕业于清华大学软件学院软件工程专业,目前仍在清华大学软件学院就读工学硕士。我从 2020 年 9 月开始参与 Apache IoTDB 开源社区贡献。
关于 Apache IoTDB
1.最开始你是怎么了解到 Apache IoTDB 这个项目的?
我在本科就读期间的专业课上就听过 Apache IoTDB 的“大名”,同时在清华大学软院的官网上也看到有相关的信息,因此开始了对 Apache IoTDB 初步的接触和了解。因为想要了解更多,之后自己在 Google 搜索的时候,进一步看到了 IoTDB 的官网和 GitHub 开源社区,从而对 IoTDB 的技术内核和社区参与技术迭代产生了兴趣,于是开始投入到 Apache IoTDB 项目的研究中。
2.是什么让你最终选择参与到 Apache IoTDB 这个项目中?
说来爱好和爱好是会“联动”的,我的另一个爱好是中国式摔跤,因为这项运动结识了一位清华大学电子工程系毕业的硕士学长,在大二暑假的时候,他向我介绍了 Greenplum 数据库的系统架构。我本来就希望自己在研究生期间能参与大型工业软件的研发,和学长的交流坚定了我参与数据库研发的信念。后来我到 Apache IoTDB 实验室实习,切实被实验室同学们的热情和友善吸引,又发现了开源社区这一条能够参与 IoTDB 项目的“捷径”,于是最终选择通过开源社区进一步参与到 Apache IoTDB。
3.在 Apache IoTDB 中主要负责哪一部分的内容?
在 Apache IoTDB 中,我主要负责 Apache IoTDB 集群版 ConfigNode 的设计与开发这一部分的内容,这部分功能已经在 1.0 版本中和大家见面了。
4.在参与 IoTDB 项目建设的过程中,有哪些收获?
首先是软件工程能力的提升,不同于过去本科阶段完成的小组大作业,也不像自己开发的一个小型 app,每为 IoTDB 贡献一个新功能,我们都需要经过技术调研、方案设计、代码开发、代码审核、功能验证等阶段,使得这个新功能具有完备的设计文档、用户手册,合适的包、类结构和代码注释,以保证这个功能被开发人员理解,切实解决用户问题。
接着是软件项目团队协作的能力,在参与 IoTDB 建设的过程中,我既担任过小组成员,为攻克一个难题贡献过自己的力量;也担任过小组长,协调几位同学一起完成一个模块的框架搭建。无论是作为组员还是小组长,拥有良好的沟通表达能力都是非常关键,如果只专注于自身的代码水平而无法清晰的表述一个能解决实际问题的算法,因此没有被同学、用户所理解接受,这样一个好的算法也只能烂在自己大脑里,无法产生和发挥实际效果。
最后是良好的时间规划能力,IoTDB 项目组里各种会议的频率比较高,因而每个工作日的时间安排一般是需要精确到小时的。工作节奏固然很累,但也明显能让稍纵即逝的时光变得有意义起来,想到自己平衡课业时间留下的代码有机会在祖国大好河山的某处切实落地,我在学期内又可以挤出时间实现自己参与研发数据库的梦想,还是非常开心的!
5.有什么参与贡献过程中的故事分享?
我想分享 Apache IoTDB 集群版 ConfigNode 的开发故事。开始时我只是遵循组内师兄的规划搭建起一个能启动的基本 demo;为了让 ConfigNode 能用,接着就是与组内的同学们进行各类应用接口的对接;然后是给 ConfigNode 丰富功能的阶段,来自华为、东方国信、京东、360、中冶赛迪等各大公司的开源同事加入了我们的开发团队。最终,在整个开源社区的共同努力下,Apache IoTDB 集群版 ConfigNode 模块在 1.0 版本发布前,顺利交付所有基础功能。这也让我对 ConfigNode 的功能应用场景有了更深的认识,从而让我在后续思考技术框架时也可以从业务需求角度,重新审视这个技术框架的合理性和可用性。
6.是什么让你能一直坚持参与 Apache IoTDB 项目,最终成为 Committer 呢?
在参与 Apache IoTDB 的过程中,我了解到我们正与许多国内知名企业合作,我还参与了同其中几个企业的合作对接,包括我上面说的 ConfigNode 的开发也有这样的过程。这样的经历让我感受到,Apache IoTDB 在国内众多领域的关键节点上发挥着重要价值,Apache IoTDB 也真的是一款能用、管用、好用的国产开源工业软件,我有机会参与其中,能为这样的时序数据库软件尽一份绵薄之力,让我真切的感到一股自豪的时代使命感。
关于开源社区
7.之前有过参与开源社区的经验吗?对开源/开源社区有什么新的认识吗?
没有,这是我第一次接触开源社区。感受到开源社区是一群有相同兴趣爱好的的人共同进行技术的交流和讨论,有着浓厚的技术氛围。同时在这个过程中,大家都有着共同的目标,就是为 Apache IoTDB 的技术迭代和技术适用做出自己力所能及的贡献,因此也可以感受到大家热情的工作态度,也让自己的工作更加充满动力。
8.你觉得开源社区对 Apache IoTDB 的“加成”是?
开源社区在很大程度上提升了 Apache IoTDB 的知名度。因为 IoTDB 的开源社区为全球对 IoTDB 感兴趣的开发者成员提供了一个自由学习交流的平台,全世界不同技术专长的开发者可以在这里密集沟通 IoTDB 的主要技术发展方向与实现,这也就为 IoTDB 的全球化传播、应用奠定了一个好的基础,同时也打造了积极向上,技术氛围浓厚的开源社区。
9.有没有给想要参与 Apache IoTDB 开源社区贡献的小伙伴一点小建议?
欢迎感兴趣和想要做出自己贡献的小伙伴加入到 Apache IoTDB 开源社区的建设中来,这个过程中可能会遇到一些疑惑和不解,建议大家先仔细阅读张洪胤同学撰写的《入门指导》或在 IoTDB 的官网上找找你要的答案(就和当初的我一样),也可以与 IoTDB 社区的大家多多交流和讨论,相信在这个过程中你一定会有新的收获。
成为 Committer 的感言!
成为 Apache IoTDB 的 Committer,意味着我的工作得到了 Apache IoTDB 社区的认可,在未来将承载更多来自社区的期望,我深感荣幸!成为 Apache IoTDB 的 Commiter,是我学生时代所得到最具软件工程意义的成就。
王俊清自我介绍
我叫王俊清,从清华隔壁的学校硕士毕业后工作八年多了,待过国企和创业公司,目前在阿里云工作。阿里基于 Apache IoTDB 构建了物联网大数据计算解决方案,所以我的工作内容主要是建设 IoTDB 在阿里的发行版,也是因此开始的对 IoTDB 的社区贡献。
关于 Apache IoTDB
1.最开始你是怎么了解到 Apache IoTDB 这个项目的?
很有意思,第一次了解到 Apache IoTDB 这个项目是在面试我目前这份工作的过程中。当时几轮面试后正在等待消息,那时我将来的师兄金竹向我介绍了未来的工作重心,IoTDB 项目的基本情况,并问我,要不你试着向社区贡献一下代码?当时我还没有 Java 和数据库内核的相关经验,但最终还是成功的提交了第一个 PR 并被社区同学合入,有些误打误撞的运气成分,但也算是我跟 IoTDB 奇妙的缘分。
2.是什么让你最终选择参与到 Apache IoTDB 这个项目中?
这就还要说到我第一次向社区贡献代码的时候。虽然那时候没有相关经验,但为了更好的了解 IoTDB 项目,确定想要贡献代码后我开始废寝忘食的研究起来,寻找尚未解决的 issue,最终选定了一个对 SQL 语句异常情况的解析不正确的 bug。经过对报错信息的调试定位以及查阅参考了《ANTLR 4 权威指南》,最终我补充加入了几行关于词法分析器调用相关的修复代码,提交的第一个 PR 最终被社区的侯昊男同学合入,此时整个过程不到 24 小时。
在此过程中让我惊讶的是在不长的这段时间里,IoTDB 社区同学对于新 PR 的高度关注、快速核对,以及社区对于新 committer 参与的开放和包容,于是虽然是因为工作接触到 IoTDB 社区贡献,但在整个过程中我一直都非常喜欢 IoTDB 社区的专业性和氛围,并且非常享受 IoTDB 在社区的共同努力下变得越来越好的成就感。
3.在 Apache IoTDB 中主要负责哪一部分的内容?
目前我主要负责社区端到端的功能完整性测试框架的重构升级,让其更加适配 IoTDB 在阿里云发行版的技术需求与业务场景。
4.在参与 IoTDB 项目建设的过程中,有哪些收获?
在参与 Apache IoTDB 项目建设的过程中,我深入学习掌握了数据库内核的工作原理,增加了自身理论知识的储备,消除了以前在数据库内核这块的知识盲点,并在不断的开发中提高了自己的综合能力,培养了自己的系统思维。
5.有什么参与贡献过程中的故事分享?
这个要说对社区端到端的功能完整性测试框架的重构升级的时候。那时 IoTDB 社区的测试用例代码和测试环境是耦合的,对于如何复用社区已有的大量测试用例代码,从而完成质量保证体系的建设这个问题,我最初的做法是写脚本来批量改测试用例代码以适配使用环境,但不仅效果不好并且工作量大。
那时我的领导,也是 IoTDB 社区积极参与者的李睿博老师点拨了我一句,他说应该让 junit 测试框架发挥它的作用,而不用额外再加其他过程。后来我沿着这个方向,使用 junit 的注解功能去给已有测试用例做分类打标签,并适当改造测试用例以解耦其与测试环境,最终收获了测试用例的高效编写和并发高效执行的成果。在这里感谢睿博老师的点拨,不然我又要走好多弯路了;也感谢 IoTDB 有这样的社区氛围,互相协作让彼此更快更好的完成技术迭代正是我热爱 IoTDB 项目和社区的原因。
6.是什么让你能一直坚持参与 Apache IoTDB 项目,最终成为 Committer 呢?
第一是我自身对于 Apache IoTDB 项目的技术实力和应用前景很看好,也就对项目有较大的兴趣,兴趣是做一件事很重要的动力。在和社区的小伙伴一起互动和交流的过程中我感受到了被接纳、一起成长的温暖,于是更想和这些志同道合的人一起贡献一份力量。
第二是社区对我的认可,这是对我工作能力的一种肯定,在做出自己力所能及的贡献的同时得到用户的赞扬和认可也是一件很有成就感的事情,让我更加坚定的投入到 Apache IoTDB 项目中。
关于开源社区
7.之前有过参与开源社区的经验吗?对开源/开源社区有什么新的认识吗?
刚毕业的时候简单参与过当年的开源云计算平台 OpenStack 社区,做过简单的贡献提交。这次更深度参与 IoTDB 开源社区后,感觉社区小伙伴都很亲切,双周会的分享讨论让快速、有效的信息沟通变得更加方便,而大家对于项目都积极的关注思考,而重点又各有侧重,在减少沟通成本的同时,也让“硬核”技术和项目全局方面的收获颇丰。
8.你觉得开源社区对 Apache IoTDB 的“加成”是?
我感受到社区内的人都在为共同的目标而努力,可以感受到大家工作认真负责的态度,社区内的导师也会直接表达其对于 IoTDB 的意见,这些真实的意见是非常宝贵的。及时的建议和良好的沟通对于 IoTDB 的研发是非常关键的,开源社区推进了 Apache IoTDB 的研发和演进。
9.有没有给想要参与 Apache IoTDB 开源社区贡献的小伙伴一点小建议?
我相信 Apache IoTDB 项目未来的发展前景,希望对这方面感兴趣和想要贡献一份力量的小伙伴可以积极的加入到社区中来,相信在这个过程中大家都会有所收获和进步。
成为 Committer 的感言!
Apache IoTDB 作为国人为核心贡献的数据库项目,我能成为其 Committer 还是很骄傲的,这是对我个人能力的极大认可。感觉到国家、高校、企业等各个不同方向的主体都在积极地推进工业场景数据库研发技术,非常期待这个行业未来的发展!祝 IoTDB 和我自己都越来越好,也欢迎有兴趣的小伙伴积极加入到 IoTDB 社区。
作为全球性开源项目,截至目前,Apache IoTDB 已拥有 242 名贡献者、3.1K Stars、818 Forks、8621 Commits。我们为大家提供了参与指南,欢迎越来越多的小伙伴助力 Apache IoTDB 项目的不断发展与前进,迈出加入 Apache IoTDB 社区的第一步!
评论