你在使用哪种编程语言?快来投票,亲手选出你心目中的编程语言之王 了解详情
写点什么

Little-Wallace 和 Yisaer 的 Committer 之路

2021 年 6 月 12 日

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 年 6 月 12 日 08:001389

评论

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

JAVA语言异步非阻塞设计模式(应用篇)

有道技术团队

后端 网易有道

架构实战营模块2课后作业

hello

架构实战营

Go语言:参数传递中,值、引用及指针之间的区别

微客鸟窝

go golang

支持60+数据传输链路,华为云DRS链路商用大盘点

华为云开发者社区

华为云 DRS

三年开发经验, 字节跳动抖音组离职后, 一口气拿到 15 家公司 Offer

Java技术架构

Java 学习 程序员 架构 面试

阿里技术团队耗时半年打造的 258W 字 Java 全栈面试题总结太香了!

Java技术架构

Java 学习 程序员 架构 面试

基础 + 进阶!汇总当下头部互联网最新面试题,不管工作几年,都可以看看!

Java技术架构

Java 学习 程序员 架构 面试

关于单元测试的那些事儿,Mockito 都能帮你解决

华为云开发者社区

测试 Mockito Mock Java 开发 模拟测试框架

小程序开发教程,2021Android开发现状分析

欢喜学安卓

android 程序员 面试 移动开发

丰富题型,多模式考试系统,快考题,高效便捷!

Geek_6d9bcc

网络攻防学习笔记 Day82

穿过生命散发芬芳

网络攻防 7月日更

数字经济时代下,区块链如何助力数字产业发展?

旺链科技

区块链 分布式存储 数字经济

手慢无!Boss 直聘大厂内部面试真题整理(全彩版)流出!

Java技术架构

Java 学习 程序员 架构 面试

深度分享|金融行业模型管理效能提升的规划与思考

索信达控股

大数据 金融科技 金融 风险管理 营销管理

回帖送大奖 『和AI在一起』

百度大脑

人工智能 活动 大奖

企业培训/入职/晋升考试,快考题统一分配一键组卷!

Geek_6d9bcc

音视频的这些功能你知道吗?

anyRTC开发者

音视频 音视频开发 屏幕共享 音视频sdk 智能降噪

智慧平安小区平台建设解决方案,平安社区管理系统开发

WX13823153201

鉴释陈新中:源代码安全在物联网时代的重要性

鉴释

物联网 源代码

PancakeSwap交易所市值管理机器人开发

艾数l53o56oloo3

市值管理机器人开发 PancakeSwap交易所 交易所机器人

华为云MVP程云:知识化转型,最终要赋能一线

华为云开发者社区

人工智能 自然语言处理 机器学习 华为云 智能问答机器人

保洁阿姨分享:腾讯架构师 JDK 源码笔记,13 万字,带你飙向实战

Java技术架构

Java 学习 程序员 架构 面试

毕业 1 年,凭借一份 “漫画” 杀进大厂?他是怎么做到的?原理篇 + 框架篇

Java技术架构

Java 学习 程序员 架构 面试

在外包做开发 3 年,为了进大厂,耗时半年,整合出 25W 字 Java 全栈面试题,这就是我的决心

Java技术架构

Java 学习 程序员 架构 面试

Redis 深度学习!Github 一夜爆火的 Redis 核心小册真香(原理、应用、集群、拓展、源码全都有)

Java技术架构

Java 学习 程序员 架构 面试

Camtasia入门技巧之视频剪辑

淋雨

视频剪辑 Camtasia 录屏软件

阿里“保姆级”教程, 这份 SpringBoot 应用到实战手册, 满满的精华

Java技术架构

Java 学习 程序员 架构 面试

大数据获取客户系统软件开发源码

区块链I3O6O643Z97

大数据平台

从京东零售云走出来的3D数字人正在触动未来的互动世界

Geek_459987

互操作性和去信任化的两难困境,到底需要治标还是治本?

CECBC区块链专委会

男默女泪!Alibaba 内部强推 JDK 源码学习指南笔记上线 2 天 Github 已星标 37k

Java技术架构

Java 学习 程序员 架构 面试

PingCAP DevCon 现场直播

PingCAP DevCon 现场直播

Little-Wallace 和 Yisaer 的 Committer 之路-InfoQ