东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

Little-Wallace 和 Yisaer 的 Committer 之路

  • 2021-06-12
  • 本文字数:2951 字

    阅读完需:约 10 分钟

Little-Wallace 和 Yisaer 的 Committer 之路

Little-Wallace

Raft SIG 和 engine SIG 的 Committer 。本科专业是计算机科学与技术。毕业后在阿里巴巴做搜索引擎存储相关的工作,来到 PingCAP 以后开始做 TiKV 的存储引擎。

Yisaer

scheduling SIG 和 execution SIG 的 Committer 。本科专业是计算机,18 年毕业做后端程序员,后来做 k8s 相关的开发工作。19 年来到 PingCAP ,目前在调度组做研发。


Q

什么时候开始接触编程的?

Little-Wallace:我接触编程的时间比较晚,基本是读大学的时候,在大学期间写过一个 OJ(在线编程考试的网站)。

Yisaer:我从高中信息课开始接触编程,业余了解一些编程的知识,当时完全没想到未来会从事这方面职业。大学一开始我并不在计算机系里就读,那时候已经意识到我比较擅长并且也喜欢编程,所以就转专业转到了计算机系。


Q

有没有写过好玩的项目?

Yisaer:我写过最好玩的项目是我的毕业设计 https://github.com/Yisaer/Nest4J 。

它在一个非常冷门的领域里面,是在车床加工里作为材料的板材套量设计。这个项目特别有意思,但是做的人少,资料也特别少,做出来之前我都觉得没有信心,不过最终拿到了学校的优秀毕业设计。工作以后,我把这个项目开源了,陆陆续续不少人通过邮件的方式咨询我关于这个程序的使用方式和改进空间,其中不乏有来自 CNC 领域的专业人士,在这些交流中我也受益良多。


Q

如何了解到 TiDB 的?

Little-Wallace:第一次了解到 TiDB 是读大四的时候, PingCAP 的同学来我们学校做宣传,然后知道了 TiDB 这样一个产品。那时候我在数据库方面的知识比较薄弱,很少关注数据库底层的原理与实现。我之前以为 MySQL 也是分布式数据库,后来才知道只是一个单机数据库。原来 PingCAP 在做的是这么酷炫、这么超前的事情。但是刚毕业时我没有来到 PingCAP ,直到 18 年参加 PingCAP 举办的 Hackathon,才算是我第一次接触到开源项目。

Yisaer:我是先认识到申砾老师,然后才了解 TiDB 的。当时刷知乎看到申砾老师发的招聘信息,就私信他想去实习,可惜挂在了面试阶段。后来 2019 Kubecon 又看到贵司的分享,和 TiDB 社区的 Contributor 交流了关于换工作的想法,他推荐我来贵司,最后经过社招面试终于来到 PingCAP !


Q

第一次贡献 TiDB 感受如何?

Little-Wallace:第一次贡献是给 TiKV 提 PR ,需要别的同学来 Review ,然后再对代码进行细致的改进,这和以前的工作体验完全不一样。第一次给 TiDB 贡献是参加 PingCAP 举办的 Hackathon。我们做了一个监控的可视化的项目,监控微信的历史信息和整个集群的数据分布变化,把它做成图表的形式。经过比赛我对 TiDB 架构有了更深入的了解,在技术上学习到了很多,扩展了视野,收获非常大。

Yisaer:最开始我的工作内容是完善 TiDB 的周边工具,所以贡献 TiDB 代码其实是属于工作范围以外的兴趣研究。当时我对数据库和 TiDB 了解不多,希望通过贡献 TiDB 的方式来熟悉这个领域,还记得我的第一个 TiDB PR 是给 TiDB 的配置项修改一个默认值。


Q

贡献 TiDB 的动力是什么?

Yisaer:动力是在 TiDB 里解决问题非常具有挑战性挑战,并且很有意思。在 TiDB 社区,贡献者有等级机制,我逐渐在对应的 SIG 里从 Contributor 变成 Reviewer,再变成 Committer,这个过程让我非常有成就感。


Q

你在贡献中遇到的最大的困难是什么?

Little-Wallace:我在贡献 TiDB 过程中遇到的最大的一个困难是 TiKV 在测试过程中突然出了问题,日志里面的错误显示是 RocksDB 的 SST 的顺序错误。这个 BUG 我们排查了非常久,并且找了很多位同事帮忙查看问题,因为产生的错误非常的底层,而且难以复现,最后大家一起逐行分析错误 SST 文件产生前后的各种操作,再对比代码才发现了 RocksDB 的这个隐藏 BUG:https://github.com/facebook/rocksdb/issues/5913,这个过程令我非常难忘。

Yisaer:最大的困难是 19 年年中,我开始着手调查的一个 TiDB 读数据算子内存 OOM 的问题。这个问题比较难复现,而且我当时对那块代码也并不熟悉。做这个项目的同时还遇到了非常多次 go race 问题。另外由于读数据算子是 TiDB 中至关重要的环节,所以针对解决 OOM 的设计我们也展开了非常多次讨论。整个项目研究,设计,实验反复多次,耗时了将近  5 个月才最终成熟解决。


Q

你在贡献过程中最有成就感的事情是什么?

Yisaer:最有成就感的事情还是在解决上面提到的困难上,因为问题的复杂性,后面我又拉了 2 名 TiDB 的同事一起讨论。这个问题修复后,我们投稿了 2020 年的 percona live 并很有幸做了一次分享。虽然花了非常久的时间,但最终不仅解决了 TiDB 的内存管理问题,同时也能将我们的成果分享出去,非常有成就感。


Q

谈谈你对开源的理解。

Little-Wallace:我认为开源作为一种生产协作方式,从生产力的角度上来说是一场革命。它能把我们这些零散的力量组织起来,开发出很了不起的产品。从产品维度上来说,整个社区一起体验产品,能帮助产品试错,不断完善产品的功能。从技术角度上来说,把产品开源出去的同时,也在接纳整个社区的技术反馈,大家会立刻指出来产品技术上的不足,具有能够快速进步的优势。

Yisaer:我觉得开源就是结合群众的力量,将一件事做好并做到极致。这是我的理解,如果没有开源的话,可能也不会来到贵司,也不会有机会接触这么多的产品。


Q

你是一个开源爱好者吗?有没有给其他项目贡献的经历?

Yisaer:其实来贵司之前我是一个开源项目使用爱好者,给 Kubernetes 和 Istio 社区提了很多 issue,主要通过线下分享和线上博客的形式在社区贡献。来贵司后,会更加倾向通过代码的方式来进行贡献。


Q

有没有给社区小伙伴们的建议?

Little-Wallace:我觉得对于刚入门的开源爱好者,贡献时首先要了解这个项目需要你做什么。可能很多爱好者刚开始看到一个项目非常庞大,不知道做什么,或者从哪里开始做。我建议大家可以参加比赛,PingCAP 提供了像性能优化大赛、Hackathon 等活动,官方会有导师指导,在比赛中有明确的目标和方向,会比自己给项目做贡献简单方便很多。这样一方面可以了解项目,另一方面也锻炼代码能力。如果你有比较先进的 idea ,可以让社区帮助你一起完善和落地,不管对开发者还是对 TiDB 都是双赢。

Yisaer:我建议新人可以多和 TiDB 社区的开发人员交流。其实我作为社区成员很喜欢和 Contributor 们交流和互相学习。包括如果 PR 想要尽快被 Review ,也要多催一催我们。所以新人有问题可以在 Slack 或微信里找我们,相比 GitHub 渠道,Slack 和微信的反馈方式会更高效更及时。


Q

最后还有什么想要分享给大家的?

Yisaer:对于已经是 TiDB Contributor 的同学,我建议可以多参与了解 TiDB 的各个领域。我一开始是从 TiDB 的周边工具入手进行开发,后面来到调度组开始完善 TiDB 的调度工作。在业余时间我对 TiDB 和其他数据库的计算引擎也会花时间学习和参与代码贡献。我觉得多了解其他领域可以开阔自己的视野,对理解整个数据库产品和生态有非常大的帮助。所以社区人员以及我们内部人员,如果对什么项目有兴趣,就可以直接参与他们,这也是我非常喜欢贵司的一个地方。



头图:Unsplash

作者:3/23

原文:https://mp.weixin.qq.com/s/GfoME8wBn_dGUxGt4Rh0EA

原文:创造了不起 | Little-Wallace 和 Yisaer 的 Committer 之路

来源:PingCAP - 微信公众号 [ID:pingcap2015]

转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2021-06-12 08:001792

评论

发布
暂无评论
发现更多内容

软件测试/测试开发/全日制 | 前后端协同工作:Python全栈开发的团队合作实践

测吧(北京)科技有限公司

测试

中国电信天翼云全国产化大数据平台落地广西!

天翼云开发者社区

云计算 大数据 云平台

K8S学习指南(1)-docker的安装

俞兆鹏

程序性能优化全能手册

快乐非自愿限量之名

php 性能优化

MegEngine 11-12 双月报:新版本发布,开发者福利课程,MegEngine 使用技巧,精彩不容错过!

MegEngineBot

深度学习 开源 框架 寒武纪

多策略深度智能分货拣货,助力快消品企业提升核心竞争力

用友BIP

软件测试/测试开发/全日制 | 前后端数据交互与Fetch API应用

测吧(北京)科技有限公司

测试

购买体育赛事直播系统源码,如何避免知识产权侵权和其它法律风险

软件开发-梦幻运营部

天翼云亮相操作系统大会&openEuler Summit 2023,斩获多项大奖!

天翼云开发者社区

云计算 大数据

龙蜥操作系统上玩转铜锁密码库

OpenAnolis小助手

阿里云 操作系统 国密 龙蜥社区 铜锁

加入openEuler训练营,一起探索开源世界的无限可能!

科技热闻

数字藏品如何赋能线下实体?以 BOOMSHAKE 潮流夜店为例

Footprint Analytics

NFT 数字藏品

软件测试/测试开发/全日制 | 实现实时通信:Python全栈开发中的WebSocket实践

测吧(北京)科技有限公司

测试

效果图渲染角度哪什么小技巧?10个效果图渲染技巧

Renderbus瑞云渲染农场

云渲染 渲染农场 瑞云渲染 Renderbus云渲染农场 效果图渲染

程序员真是越来越懒了,Api 文档都懒得写?程序员:Api工具惯的!

不在线第一只蜗牛

K8S学习指南(2)-docker的基本使用

俞兆鹏

专业开发者的软件开发神器——低代码

高端章鱼哥

软件开发 低代码

软件测试/测试开发/全日制 | Python全栈开发中的消息队列应用

测吧(北京)科技有限公司

测试

6本报告,助你2024招聘「才」源滚滚!

用友BIP

智能招聘

演讲实录|博睿数据副总裁杨雪松:可观测性建设之路(上)

博睿数据

征程万里,行则将至|博睿数据2023年度盘点

博睿数据

CloudXR在农业领域的用例表现

3DCAT实时渲染

CLOUDXR 云化XR

软件测试/人工智能/全日制 | Python全栈开发:理解HTTPS加密机制与安全传输

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | 从MySQL到MongoDB:Python全栈开发中的数据库选择

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | Python全栈开发实战:构建完整的Web应用

测吧(北京)科技有限公司

测试

一文详解动态 Schema

Zilliz

数据库 Milvus shema

数据驱动运营?试试这款开源工具做可视化分析!

ClkLog

如何将支持标准可观测性协议的中间件快速接入观测

观测云

可观测性 HBase

你的数智化底座物尽其用了吗?

用友BIP

数智底座

感恩有你|一起见证 OpenTiny 这5个锦鲤时刻

OpenTiny社区

开源 前端 低代码 组件库

物联网与低代码: 连接人与数字世界的无限可能

不在线第一只蜗牛

低代码 物联网

Little-Wallace 和 Yisaer 的 Committer 之路_语言 & 开发_PingCAP技术团队_InfoQ精选文章