随着新年的到来,在杭州电子科技大学杭电助手、浙江理工大学计算机协会和成都信息工程大学异步开发实验室的支持下,Curve Code Camp·金秋篇顺利结营。在本次开源之行中,我们见证了思想的碰撞、技术的交流,以及友谊的缔结。每一位开发者怀揣对开源社区的热情与分布式技术的追求来到 Curve 社区,与志同道合的朋友共同学习、探讨分布式存储系统的开发路径,为 2023 年的开源之行画上圆满句号。
本次开发者活动,19 个 PR 顺利合入。新晋 12 位 contributor,7 位 Curve contributor 再次助力社区发展,为 Curve 社区的持续进步注入了强大的动力。我们邀请了四位开发者进行采访,分享他们的成长与收获,在这里将以问答形式分享给大家。
新晋社区贡献者


采访
本次受邀参与访谈的贡献者分别为:
@liuminjian、@ZackSoul、@zztaki、@shuaihehe。
本次选择的issue是?为什么会选择这道issue呢?
在开发过程中遇到了哪些有挑战性的问题?
@liuminjian:开发过程中遇到了很多挑战,后来也推翻了刚开始的设计,在 mentor 的指导下,改成底层返回空间不足的错误,根据错误返回给客户端,客户端 hang 住 io 一段时间后再重试。同时增加预留 chunk 空间参数,当 chunkserver 空间快要满的时候对请求返回只读,等空间释放后才能写入,如快照完成后释放日志空间等。同时在心跳上传时增加空间不足检查,当使用空间超过一定使用百分比上传空间不足错误,mds 收到空间不足错误后修改 chunkserver 状态避免其他 copyset 迁移进来,将 chunkserver 的 copyset 设为不可用避免继续分配空间。
@ZackSoul:在开发过程中遇到的最大挑战应该就是 cicheck 的不稳定性了,因为本次 issue 和之前的 issue 很类似,所以编码过程其实较为顺利,也按照 review 的意见修改了代码,但是最终修改完成以后 cicheck 突然测试覆盖率不足,导致不通过,这也导致最后两周一直卡在这个地方。
@zztaki:开发过程中的挑战我觉得主要是环境方面的配置,首先是 WSL 在配置实际 curveadm 环境时可能会存在一些问题,其次就是 bug 的定位,由于对此项目初次接触,因此选择单步调试去摸索命令主要的执行过程,以及思考是什么导致超时,最终就是解决问题。
@shuaihehe:在开发过程中,首先环境配置方面遇到了很大的困难,很多地方环境配置不好,各种报错,由于文档比较分散,有的地方甚至忘记配置了,不过,在 mentor 的耐心指导下,我解决了一个又一个环境配置问题;在写代码方面碰到了计数是在入队前还是入队后进行计数问题,也是跟 mentor 交流以后最终确定下来。整个流程感觉特别有意义。
@ZackSoul:最大的收获就是进一步熟悉了开源贡献的流程,同时也加强了对 Curve 中 tools-v2 部分的了解,编码规范性和编码水平也得到了一定提升。后续也希望进一步选择 Curve 内核方面的 issue 进行开发提交。
@zztaki:最大的收获是发现了这么一个宝藏项目!因为我对存储系统也是非常感兴趣的,而开源社区里其实块存储和文件存储项目相比于数据库项目少很多,Curve 不仅将这两个项目开源,并且组织了多次开发者活动,鼓励新来的开发者参与其中。未来,我也想继续为 Curve 做贡献,早日成为 committer ~
@liuminjian:Curve 社区有丰厚的奖品和福利,社区活跃度很高,有详细的开发文档,有耐心解答的 mentor,非常适合热爱技术的朋友加入。
@ZackSoul:热心的小助手、良好的社区氛围、负责的 mentor 以及丰厚的奖品让人很难拒绝参与curve社区!
@zztaki:参与 Curve 社区,不仅有机会获取 switch,更有机会成为项目 committer,大家一起加油~
@shuaihehe:mentor 特别好,赶快来领取任务,找 mentor,拿奖品!
尾声


关于 openEuler

关于 Curve
Curve 亦可作为云存储中间件使用 S3 兼容的对象存储作为数据存储引擎,为公有云用户提供高性价比的共享文件存储。
GitHub:https://github.com/opencurve/curve 官网:https://opencurve.io/ 用户论坛:https://ask.opencurve.io/ 微信群:搜索群助手微信号 OpenCurve_bot




