印象最深的都是关于 IoTConsensus 共识协议?听听新晋 Committer 怎么说!
新 Committer 报道!
2022 年 12 月 19 日、28 日,经 Apache IoTDB 社区投票,张洪胤、朱海铭成为 Apache IoTDB Committer,而这两位同学都深度参与了 1.0 版本物联网共识协议 IoTConsensus 的开发中。今天将和大家分享他们两位与 Apache IoTDB 的故事。
张洪胤自我介绍
我叫张洪胤,目前是清华大学软件学院的研究生一年级学生。我本科就读于南京大学软件学院,2021 年 7 月开始参与 Apache IoTDB 开源社区贡献。
关于 Apache IoTDB
1.最开始你是怎么了解到 Apache IoTDB 这个项目的?
当时在我的本科阶段,我更多地是进行后端开发知识的学习,并且参与各种项目的后端开发工作。在这个过程中,我对使用到的数据库系统软件的运行产生了浓厚的兴趣,并想要对其内核模块进行深入的研究。通过已经参与社区的学长的介绍,我了解到了 Apache IoTDB 项目,并得以深度参与到开源社区对项目的代码贡献中去,也算是实现了自己的兴趣。
2.是什么让你最终选择参与到 Apache IoTDB 这个项目中?
最早的时候是因为我本身对数据库的内核研发非常感兴趣,在参与 Apache IoTDB 项目的过程中,我开始接触到了我感兴趣的数据库内核开发工作,并且在这个过程中遇到了很多非常热情并且有想法的社区的小伙伴们,和他们一起帮助 IoTDB 成长的感觉很好,这些都让我最终选择越来越深地参与到了 Apache IoTDB 项目中。
3.在 Apache IoTDB 中主要负责哪一部分的内容?
在 Apache IoTDB 中,我主要负责系统监控框架的设计与实现,物联网共识协议 IoTConsensus 的具体实现与调优,权限模块维护,以及测试工具 IoT Benchmark 的重构与优化等等。目前我已经向 Apache IoTDB 的 master 分支提交了 238 个 PR,累计贡献排名第 11 名;向 IoT Benchmark 的 master 分支提交了 101 个 PR,累计贡献排名第 2 名。
4.在参与 IoTDB 项目建设的过程中,有哪些收获?
在参与 Apache IoTDB 项目建设的过程中,我更加熟悉了大型软件协作式开发的全流程,学习到了很多关于数据库内核相关的理论知识,并在开发实现的过程中提高了自己的并发编程能力,培养了自己的系统思维和系统优化的能力。
5.有什么参与贡献过程中的故事分享?
印象比较深的是长达半年的 IoTConsensus 物联网共识协议的修正与优化。该协议的应用场景中具有高并发的特点,使得我们对许多问题的复现与定位都面临较大的困难。同时,我们还需要尝试通过批处理、异步处理等手段来优化该协议的吞吐性能,以适应物联网场景对共识协议的要求,这也就带来了全新的挑战。
在这个过程中,在张金瑞学长和谭新宇学长的帮助下,我尝试通过代码走读、案例研究、理论分析和运行时分析等方式一点点攻克每一个问题,在这个过程中对协议本身、物联网场景的共识协议需求和数据库体系都有了更深入的理解。同时,在整个性能优化的过程中,我更加深刻地体会到了不同类型的资源在不同的场景下对系统整体性能的潜在影响,让我能够在以后的设计与编码的过程中更多的考虑到这类影响可能带来的结果。
6.是什么让你能一直坚持参与 Apache IoTDB 项目,最终成为 Committer 呢?
第一,我本身对数据库内核研发具有较为浓厚的兴趣,也因此喜欢参与到 Apache IoTDB 的内核研发和技术演进迭代过程中。第二,参与过程中我在技术、经验等诸多方面收获颇丰,在参与项目的过程中让自己的技术实力得到了充分的锻炼和增长。最后,便是非常喜欢社区良好的氛围,在这里能够和许多志同道合的小伙伴们互动与交流,让我想要继续为社区的建设出自己的一份力量。
关于开源社区
7.之前有过参与开源社区的经验吗?对开源/开源社区有什么新的认识吗?
没有。感觉到开源社区并不仅仅是代码开源,更多的是其社区属性,良好的开源社区并不仅仅代码本身,更多的还有来自不同公司具有不同技术背景的小伙伴,在社区我们一起为某一个技术问题进行讨论和交流,并且在这个过程中不断分享,收获技术能力飞速的成长和宝贵的友谊。
8.你觉得开源社区对 Apache IoTDB 的“加成”是?
我认为是开源社区把大家凝聚到了 Apache IoTDB 的周围,共同推进软件的演进。一方面,开源社区的影响力让更多的小伙伴们看到、了解到并且参与到 Apache IoTDB 的研发中去。另一方面,“众人拾柴火焰高”,也正是开源社区的大家真真切切地参与到社区的发展中去,从而能够发现更多的真实场景需求,进而推进 Apache IoTDB 的发展与演进,让它不断进步,能够适应实际场景中的需求。
9.有没有给想要参与 Apache IoTDB 开源社区贡献的小伙伴一点小建议?
欢迎感兴趣的大家都可以尝试加入到 IoTDB 开源社区的建设中去,在这个过程中遇到了任何疑惑、困难或者不解,都可以和 IoTDB 社区的大家多沟通多交流,相信在这里你一定能够收获你自己的参与开源的答案~
成为 Committer 的感言!
很高兴能够成为 Apache IoTDB 的 Committer,非常感谢这一路以来帮助过我的社区小伙伴们,也非常感谢大家对我的工作的认可!希望自己之后能够将自己参与的模块做的更好,更多地和社区的大家进行沟通与交流!
朱海铭自我介绍
我叫朱海铭,目前是清华大学研二研究生,2020 年 12 月开始参与 Apache IoTDB 开源社区贡献,发了第一个 PR~
关于 Apache IoTDB
1.最开始你是怎么了解到 Apache IoTDB 这个项目的?
我是在本科参加硕士生推免期间了解到 Apache IoTDB 的。当时 Apache IoTDB 刚刚孵化成功,这种国内高校自研数据库管理系统并捐赠到 Apache 软件基金会的情况非常少见,也引起了我对 IoTDB 技术领先性和应用场景的好奇,让我迫切地想成为其中的一份子,参与到 IoTDB 的发展迭代里来。
2.是什么让你最终选择参与到 Apache IoTDB 这个项目中?
我的本科毕设内容与 IoTDB 相关,社区导师与我进行了多次有建设性的讨论,介绍了 IoTDB 的技术架构、性能优势和开源社区情况,这让第一次参与开源项目的我学习到了不少时序数据库相关的硬核知识,也感受到了 IoTDB 社区的热情与技术氛围,最终让我选择参与到 IoTDB 的后续开发中。
3.在 Apache IoTDB 中主要负责哪一部分的内容?
我目前主要负责 IoTDB 存储引擎部分的开发与维护,包括预写日志、弱一致性协议、多级存储等。
4.在参与 IoTDB 项目建设的过程中,有哪些收获?
最重要的收获是学会了与人沟通,开源社区是在沟通与交流上建立起来的,学会了沟通才能融入社区。其次就是自己的技术能力更加熟练,了解到了更多围绕时序数据库的前沿技术。
5.有什么参与贡献过程中的故事分享?
印象比较深刻的是 IoTConsensus 物联网共识协议的研发与维护。当时社区决定从零开发一个符合自己使用场景的共识协议,初版代码在测试过程中出现了很多诡异的 bug 和严重的性能问题,印象很深,大家在线上会议中热烈地讨论很久,共同排查现象背后的问题,最终成功解决完所有问题并达到性能预期。在这个过程中,我不仅学习到了分布式环境下排查问题的的思路与方法,还加深了和其他社区伙伴之间的感情。
6.是什么让你能一直坚持参与 Apache IoTDB 项目,最终成为 Committer 呢?
社区贡献中源源不断的正反馈,创造价值就是对自己最好的肯定。我不仅能够让自己的代码成功运行在用户的生产环境中,得到用户的赞扬,还能够提升自己的技术能力,为其他社区伙伴答疑解惑,成就感满满!
关于开源社区
7.之前有过参与开源社区的经验吗?对开源/开源社区有什么新的认识吗?
IoTDB 是我第一次接触开源社区,接触到开源社区后发现沟通非常重要,任何一个功能都需要和社区充分沟通后才能开始实现,不然很容易因为自己认识的不全面导致产出一个半成品,其实并不符合社区和产品的性能/功能预期,最后仍要推翻重来。
8.你觉得开源社区对 Apache IoTDB 的“加成”是?
没有开源社区就没有现在的 IoTDB。IoTDB 的最新分布式版本是由全社区人共同努力打磨出来的,在这期间我见到了来自不同背景、不同年龄的人一起进行头脑风暴、一起开发,为同一个目标进行努力,社区凝聚的“人心齐”的动力对 IoTDB 而言就是最大的“加成”。
9.有没有给想要参与 Apache IoTDB 开源社区贡献的小伙伴一点小建议?
非常欢迎大家积极参与到 IoTDB 的建设中来,大家可以通过在社区邮件列表中发邮件来迈出自己的第一步,社区中有很多很友善的导师会给大家提供帮助,不要害羞,大胆来戳大神们!
成为 Committer 的感言!
非常感谢 IoTDB 社区对我的认可与鼓励,希望有更多的同学能一起加入到社区这个大家庭中来,一步一个脚印,让我们和 IoTDB 共同茁壮成长!
评论