当前位置: 首页 > news >正文

第一次参与开源的时序数据库 IoTDB Committer:这份成就感是无可替代的

从开源小白到深度参与者

2025 年 4 月 22 日、7 月 6 日,经 Apache IoTDB 社区投票,陈哲涵、彭俊植成为时序数据库 Apache IoTDB Committer。他们的经历有很多“异曲同工”之处:都是第一次参与开源社区,都无比认可 IoTDB 的发展前景,都认为参与开源带给他们的成就感是无可替代的。今天,请来听听他们的心理历程。

714b3fe08e236ba31280793a356e0ff4

陈哲涵

我是清华大学毕业的陈哲涵,从大三下学期开始进入实验室做 IoTDB,至今大概三年。平常除了写代码,也有一些别的爱好,例如写作、钢琴、街舞、唱歌、游戏(王者、魔兽、炉石……)。

关于 Apache IoTDB

最开始你是怎么了解到 Apache IoTDB 这个项目的?

最开始是大三下学期的暑期课程在 IoTDB 做项目,从那之后,我就发现自己有不断参与开源贡献,帮助数据库系统越做越完善,性能越来越好的兴趣,然后就一直工作到现在。

是什么让你最终选择参与到 Apache IoTDB 这个项目中?

还是因为兴趣,因为我发现了自己享受这种一点一滴“做任务”,参与开源完成贡献的感觉,感觉到系统在我手里越来越好,我就特别有成就感。除此之外,我也看到 IoTDB 在很多重要的工业场景中得到应用,能够间接参与到很多国计民生相关的项目中,为“国产化”出一份力,也让我觉得我的工作很有意义。

在 Apache IoTDB 中主要负责哪一部分的内容?

我主要负责流处理、元数据管理部分的工作,参与研发了流处理和表模型元数据管理的整体框架,并且参与实现了跨网闸数据同步功能,完成了对 OPC UA、DA 协议的适配。

在参与 IoTDB 项目建设的过程中,有哪些收获?

感觉自己的整体思维能力,尤其是思维的严密性和全面性提升了,能够全面地对问题的背景,实现思路等等环节展开清晰的分步思考,并且写代码时除了新功能的需要,还能考虑到运维难度、稳定性等方方面面,防止意料之外的问题。

有什么参与贡献过程中的故事分享?

当时为了实现流处理同步元数据的功能,我在整体架构上投入了大量时间反复推敲,很多细节也都做了详细的设计,真的想了很久,在这个过程里能力也提升了很多。当然,考虑到维护难度,有些细节并没有实际研发,我们的团队投入精力去完成更关键的功能,所以就做了适当的修改。不过,最后能够看到核心流程跑通,效果也符合预期,真的特别有成就感。那算是我第一次独立设计一个比较复杂的架构,并且真的把它实现了出来。

是什么让你能一直坚持参与 Apache IoTDB 项目,最终成为 Committer 呢?

我特别喜欢看着一个系统逐步演进、变得越来越完善的过程。老的 Bug 会一个个被解决,新的功能又不断加入,这个进步的过程我也参与其中,就能够坚持参与下去。尤其是当新功能上线,真的能帮用户解决问题时,那种成就感特别强烈。

关于开源社区

之前有过参与开源社区的经验吗?对开源/开源社区有什么新的认识吗?

之前没有相关经验。参与 IoTDB 之后,我切身感受到开源社区为数据库软件带来的价值。来自社区的参与者们提供了大量实际建议,使得 IoTDB 能够在很多应用场景中快速落地,投入使用。而这种广泛的实践反馈,又促进了 IoTDB 本身的迭代与成熟。开源作为全球创新模式,能够带动不止 IoTDB ,而是整个软件行业的进步。

你觉得开源社区对 Apache IoTDB 的“加成”是?

开源社区不仅帮助 IoTDB 扩大了知名度、建立了更开放、可信的 IP 形象,还能够收获用户和开发者的反馈,通过他们源源不断地提出实际使用问题和需求,能够极大地加速 IoTDB 的功能演进和生态完善过程。

有没有给想要参与 Apache IoTDB 开源社区贡献的小伙伴一点小建议?

虽然 IoTDB 整体的架构是比较清晰的,但是代码仍然有一定的复杂度。如果要进入社区开始贡献,可以先从比较简单清晰的小活干起,邀请别人 revert PR 得到一些可靠的意见,再慢慢负责大的模块。一步一步来,你会的会越来越多,角色也会越来越重要!

成为 Committer 的感言!

成为 Committer 过后,最直接的感受就是终于可以自由的跑 CI 和合 PR,整个贡献流程顺畅多了。加入 IoTDB 起,就收到过很多前辈的耐心指点,让我的代码能力有很强的提升。而现在成了 Committer,我也开始慢慢尝试去帮助其他人,把这种协作和成长的感觉传递下去。

非常推荐那些希望扎实提升代码工程能力的同学加入 IoTDB 社区,一起来感受这种边贡献、边成长的氛围。

21c72be2b17e35e988470536136d9f02

彭俊植

大家好,我是彭俊植,就读于清华大学软件学院,Github ID 是 Pengzna。我是从 2023 年 5 月开始接触 Apache IoTDB 并为之贡献代码的。

关于 Apache IoTDB

最开始你是怎么了解到 Apache IoTDB 这个项目的?

本科的时候对分布式数据库感兴趣,希望研究生能在这个方向继续深造。而 Apache IoTDB 作为国内高校主导发起的第一个 Apache Top-Level 项目,一方面有扎实的产学研融合背景,另一方面本身也是十分优秀的分布式时序数据库产品,很自然就吸引了我去关注和参与。

是什么让你最终选择参与到 Apache IoTDB 这个项目中?

一方面,在工业物联网和大数据的时代,我认为 Apache IoTDB 作为工业数据基座,有非常广阔的发展前景。

另一方面,当时恰逢 Apache IoTDB 推进分布式 1.0 大版本迭代,我在社区 PMC 谭新宇学长的博客中了解到了 Apache IoTDB 开放包容、精益求精的社区氛围,也看到了社区雄心勃勃的技术发展方向,心向往之,非常希望能参与进来。

最后,我们本科就有很多优秀的学长在 Apache IoTDB 实验室深造,后来我也很幸运地在张洪胤学长的介绍和帮助下,参与到社区做贡献。

在 Apache IoTDB 中主要负责哪一部分的内容?

我的主要工作集中在三个方面:一是 JVM 内存与 GC 的监控和调优,二是 Metric 框架的重构和性能优化,三是新一代高性能共识协议的研发。除此之外,平时我也会参与维护 Pipe、RPC、Procedure 等框架的相关工作。

在参与 IoTDB 项目建设的过程中,有哪些收获?

我的收获可以总结成三个方面:

第一,是对基础软件工程多了一份敬畏之心。在社区里,我有机会完整参与一个功能从设计、编码、测试到发布上线的全过程。我们写的每一行代码,不仅会在社区内部经过多轮严格测试,最终还会真实运行在用户的生产环境中,因此产出代码的过程应该是极为严谨的。

第二,是提升了与开源社区开发者、用户沟通协作的能力。通过 Code Review、技术文档或者线上会议,清晰表达设计思路,并与大家高效讨论、达成共识,成为了我在这段时间锻炼出的重要能力。我也越来越熟悉如何在开放、透明的社区中高效推进项目。

第三,是融入了一个高质量的技术圈子。我最珍贵的收获,是结识了一群真正热爱技术、能力出色的开发者。和他们一起解决真实世界中的难题,这种纯粹的归属感和共同成长的快乐是任何工作都难以替代的,也是我持续投入的最大动力。

有什么参与贡献过程中的故事分享?

让我印象最深的是一个耗时近半年才最终定位和修复的 bug。

2023 年下半年,冯(庆新)老师发现 JDK 从 11 升级到 17 后, 某场景有明显的性能下降。当时我们一众小伙伴从 CPU、GC、内存等角度,使用火焰图、JMH 等各种工具进行排查,都没能定位到根因。这个问题也暂时成了当时的“悬案”。

直到 2024 年上半年,我在一次优化 JVM safepoint 和偏向锁的实验中,观察到了类似的性能下降情况。那时我突然联想到半年前的那桩“悬案”,结合偏向锁的技术权衡以及历史演变,我意识到 JDK 17 默认取消偏向锁很可能是问题的关键。经过验证,果然在 JDK 17 中手动打开偏向锁后,性能恢复到了预期水平。之后我们又结合业务代码与偏向锁的 trade-off 做了复盘,最终确认了这个结论。

这次经历,颇有“山重水复疑无路,柳暗花明又一村”的技术浪漫。回过头看,这半年间技术见识的增长、与老师同学的多次讨论,都在冥冥之中形成了解决问题的“伏笔”。这次经历也加深了我们对于 JVM 底层机制的理解,让人印象深刻。

是什么让你能一直坚持参与 Apache IoTDB 项目,最终成为 Committer 呢?

能坚持下来,首先是因为看到代码能真正落地、解决实际问题时那种强烈的成就感;同时,能与社区里志同道合的伙伴们并肩作战,让我参与社区的整个过程充满乐趣,不再孤单。更重要的是,我始终坚信 IoTDB 项目本身在物联网时代拥有广阔的发展前景,这份对未来的信心,让我觉得所有的付出都非常值得。

关于开源社区

之前有过参与开源社区的经验吗?对开源/开源社区有什么新的认识吗?

没有,Apache IoTDB 是我第一个全身心投入的开源社区。这段经历让我真正理解了 Apache “社区大于代码” (Community Over Code) 的理念。开源的核心不仅在于共享代码,更在于开放的协作和知识的传递。在社区,你不仅能提升技术能力,更能学会如何与全球的开发者高效沟通,共同推动项目向前,这是一种更珍贵的成长。

你觉得开源社区对 Apache IoTDB 的“加成”是?

我觉得主要体现在这三个方面:

第一,汇聚真实场景。来自全球用户的多样化需求,让 IoTDB 能解决最实际的使用问题,保持项目的生命力和实用性。

第二,保障技术品质。社区开放且严格的 Code Review 机制,让每一行代码都经过充分讨论和验证,从而确保系统更加健壮和可靠。

第三,构建繁荣生态。社区吸引了世界范围内的开发者共同参与,持续丰富周边工具与应用案例,这种协同共建的生态效应,是单一的任何公司都难以实现的。

有没有给想要参与 Apache IoTDB 开源社区贡献的小伙伴一点小建议?

有三个小建议:

第一,从小处着手,可以从标记为 good first issue 的任务开始尝试,比如修复文档、补充测试,都是很好的起点,最关键的是勇敢迈出第一步。

第二,大胆提问。IoTDB 社区氛围非常友好,遇到任何问题都欢迎直接在邮件列表或 Issue 中提出,清晰的提问本身也是对社区的贡献。

第三,贡献不止于代码,你可以积极参与技术讨论、分享使用经验、帮助解答用户问题等等,这些非代码的贡献同样重要,也能让你逐渐成为社区中不可或缺的一员。

成为 Committer 的感言!

成为 Committer,对我而言既是一份荣誉,更是一份责任。非常感谢社区的信任,以及各位老师和朋友们的一路以来的指导和帮助。这对我来说不是终点,而是一个新的起点。我将继续以热情投入贡献,积极回馈社区,并努力帮助更多的新人参与到社区建设中。

Apache IoTDB 有一个真正开放、充满机遇的社区,也诚挚欢迎更多伙伴加入我们,一起成长、共同前行!

http://www.hskmm.com/?act=detail&tid=9804

相关文章:

  • ECT-OS-JiuHuaShan 框架元推理的意义、价值、作用、应用场景和哲学理念的充分阐述:AGI奇点
  • CSP 2025 复赛复习总目标与计划
  • mysql区分大小写吗,你可能忽略了这些关键细节
  • route-link 和 a 的区别
  • WPF 调用 Windows 桌面右键新增文件菜单的实现方案
  • HR 需了解的绩效评估应包含的内容
  • 解题报告-P12022 [USACO25OPEN] Hoof Paper Scissors Minus One B
  • CentOS架构修改网卡命名的方法总结
  • np.clip的使用
  • 重看P4211 [LNOI2014] LCA 以及 P5305 [GXOI/GZOI2019] 旧词 题解
  • 25.9.19随笔联考总结
  • 解题报告-P12025 [USACO25OPEN] Sequence Construction S
  • 解题报告-P12026 [USACO25OPEN] Compatible Pairs S
  • maxu
  • 20
  • 19
  • 18
  • 详细介绍:【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)
  • iOS 26 能耗检测实战指南 如何监测 iPhone 电池掉电、Adaptive Power 模式效果与后台耗能问题(uni-app 与原生 App 优化必看)
  • Transformer的个人理解
  • 国标GB28181平台EasyGBS如何实现企业园区视频监控一体化管理?
  • 360环视硬件平台为什么推荐使用米尔RK3576开发板?
  • 高质量票据识别数据集:1000张收据图像+2141个商品标注,支持OCR模型训练与文档理解研究
  • 1202_InnoDB中一条UPDATE语句的执行流程
  • 1201_mysql查询语句select执行流程
  • 记录---vue3项目实战 打印、导出PDF
  • 09
  • node.js安装(绿色版)
  • 08
  • selenium完整版一览 - 教程