2022 OceanBase 年度发布会,点击了解详情 了解详情
写点什么

Little-Wallace 和 Yisaer 的 Committer 之路

  • 2021 年 6 月 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 年 6 月 12 日 08:001579

评论

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

访问控制

escray

学习 极客时间 安全 5月日更 安全攻防技能30讲

redis在微服务领域的贡献

捉虫大师

redis dubbo RPC 协议 注册中心

小傅哥,一个有“副业”的码农!

小傅哥

Java 小傅哥 技术成长 码农副业

屏幕共享的实现与应用

anyRTC开发者

音视频 WebRTC RTC sdk

通用连接池帮你解决资源管理难题

万俊峰Kevin

MySQL redis mongodb pool Go 语言

探索专有领域的端到端ASR解决之道

华为云开发者联盟

端到端 ASR 自动语音识别 语境偏移 专有领域

☕【JVM 技术之旅】攻克技术盲点之“JVM常量池们“

浩宇の天尚

JVM 5月日更 字符串常量池 静态常量池 运行时常量池

Cilium 1.10 重磅发布!】支持 Wireguard, BGP, Egress IP 网关, XDP 负载均衡, 阿里云集成

公众号:云原生Serverless

云原生 cilium cni

再不解决延迟不当,小心你的内存被打爆

华为云开发者联盟

线程 延迟 内存 并发 Sleep

Feed流系统重构-架构篇

勇哥java实战分享

架构 RocketMQ 分库分表 ShardingJDBC redisson

选择排序&插入排序 - DAY 15

Qien Z.

排序算法 插入排序 5月日更

ThreadLocal内存溢出代码演示和原因分析!

王磊

Java 多线程

记一次与写作朋友的线下沙龙

架构精进之路

技术交流 杂记 5月日更

CG行业云渲染服务的演进之路

华为云开发者联盟

公有云 CG 渲染 云渲染 影视动画

手把手带你体验 Amazon Graviton2 的高性价比!文末有惊喜

亚马逊云科技 (Amazon Web Services)

详解 WebRTC 高音质低延时的背后 — AGC(自动增益控制)

阿里云视频云

阿里云 WebRTC 3A算法 音频技术 视频云

架构学习笔记:微服务架构与SOA架构

六维

微服务 SOA 5月日更

密码学系列之:memory-hard函数

程序那些事

加密解密 密码学 程序那些事

k8s 集群下微服务 pod 的各种指标信息监控

Xiao8

微服务 5月日更

字节、美团等客户与华为联合创新DCI智能控制器,共筑互联网基础设施新生态

Go 并发编程 — 深度剖析 sync.Pool 源码级原理

奇伢云存储

并发编程 云存储 Go 语言

掌握学习方法,成为技术大牛

实力程序员

腾讯云实名认证流程

三掌柜

5月日更

☕【JVM 技术之旅】深入JVM原理分析synchronized

浩宇の天尚

synchronized 重量级锁 5月日更 同步锁 ObjectMontior

Java设置Filter过滤了CSS等静态文件的问题

空城机

Java 5月日更

Dubbo 路由规则之标签路由

青年IT男

dubbo

从寻人到航天,科技与公益的下一个交汇点正在“星辰”中诞生

脑极体

5G掀起工业互联网浪潮,水泥厂智能管理模式收效颇丰

一只数据鲸鱼

数据可视化 工业互联网 智慧工厂 水泥厂 智能工厂

【Flutter 专题】120 Flutter & 腾讯移动通讯 TPNS~

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

Nginx调试必备的几种技能

运维研习社

nginx 运维 实用技巧 5月日更

强化基于位置的4种营销策略

郑州埃文科技

IP 营销 ISP

2022 阿里云飞天技术峰会 - 主论坛

2022 阿里云飞天技术峰会 - 主论坛

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