感受开源的魅力,TiDB Committer 白珅的数据库探索之路

DocMan
• 阅读 1688

Execution SIG 近日又喜提 Committer 一枚,他就是 b41sh 白珅🎉。

白珅同学毕业于上海交通大学电子与通信工程专业,曾就职于新浪、百度、爱奇艺等公司做视频系统和广告系统,现在在一家创业公司做多方安全计算,他的工作是开发存储引擎。在谈到是如何从业务开发转化为数据库开发,他说数据库一直是他想研究的方向,成为 TiDB Contributor 之后他对数据库和存储有了更多了解,正好面试官也了解 TiDB,从此便开启了数据库的探索之路。今天我们就来看看 TiDB Committer 白珅的贡献历程吧~

感受开源的魅力,TiDB Committer 白珅的数据库探索之路

什么时候开始接触编程,有没有写过好玩的项目?

我大概从 2010 年开始接触编程,后来写过一些小项目,主要在我们团队内部使用,是一个类似 Review Board 的 Code Review 系统,可以帮助你在提交代码之前进行 Review。

如何了解到 TiDB?贡献 TiDB 感受如何?

我比较喜欢关注知乎上的文章,有一次看到 TiDB 发了很多技术博客和源码阅读,觉得有很多干货内容,于是便关注了。后来也陆续参与了一些社区活动,像 TiDB Hackathon,可惜那时候对 TiDB 了解不多,所以没有做出比较满意的作品。

我最早一次给 TiDB 提 PR 是 2019 年 3 月,当时改了一个小 bug,是 Executor 下面的时间处理函数,我觉得对新人很友好,上手比较简单。我和 PingCAP 的小伙伴张原嘉在 slack 上沟通比较多,他回复很及时,帮助我解决了很多问题,非常感谢他的帮助~

贡献 TiDB 的动力是什么?

我觉得数据库比较好玩,很有意思,贡献 TiDB 对我的就业和技术上都有比较大的帮助。虽然我用了很多年数据库,但不知道底层怎么实现的,之前对于数据库的了解都是浅层次的,在贡献 TiDB 之后解开了我很多疑惑。并且我看了很多业内 Paper 发现 NewSQL 是发展趋势,未来很多年内应该都会备受大家的关注,所以我也想多学习一些。

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

数据库需要一些知识储备,当我做一些复杂的设计时会觉得知识储备不足,所以最近自己也在看一些数据库相关的书和 Paper,希望自己的知识积累更丰富一些,可以解决复杂并且有难度的 Issue。

我遇到过最难的 Issue 是最近的 AggFunc Memory Trace, 需要追踪内存使用情况。

感受开源的魅力,TiDB Committer 白珅的数据库探索之路

这个 Issue 我做了实现方案的设计,具体功能由社区的同学完成,我和 mmyj 做了 Code Review,也是一件让我比较有成就感的事情。

是否是个开源爱好者,有没有给其他项目贡献过?

是的,我会留意和我工作相关的项目,最近比较关注 Apache Impala,也是一个数据库,还有像 CockroachDB、ClickHouse,但主要贡献还是在 TiDB。

贡献中最有成就感的事是什么?

最近性能竞赛 Review 了很多代码,帮助很多社区同学第一次做了贡献,尤其是有一个改了挺久才合并进去的 PR,挺有成就感的。看到他们就像感觉看到了当年的自己。

感受开源的魅力,TiDB Committer 白珅的数据库探索之路

你认为开源是什么?

我认为开源是一种生产关系,比较理想主义,让很多不认识的人一起做一个产品,这种协作方式在其他地方是非常少见的,我很喜欢。

随着 TiDB 社区逐渐壮大,TiDB repo 的 Contributor 也刚刚突破了 500 人,白珅同学在此送上他对社区的一段寄语:

很荣幸能够成为 TiDB 社区的 Committer 成员,在过去的一年多时间里,通过不断的为社区贡献代码,我学习到了很多前沿的数据库知识,也见证了 TiDB 社区的蓬勃发展。感谢社区小伙伴对我的帮助和指导,让我充分感受到了开源社区的魅力。希望未来有更多的人参与到社区的建设中,一起成长进步。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
4年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Wesley13 Wesley13
4年前
Vtiger CRM 几处SQL注入漏洞分析,测试工程师可借鉴
本文由云社区发表0x00前言干白盒审计有小半年了,大部分是业务上的代码,逻辑的复杂度和功能模块结构都比较简单,干久了收获也就一般,有机会接触一个成熟的产品(vtigerCRM)进行白盒审计,从审计的技术难度上来说,都比公司内的那些业务复杂得多,而真正要提高自己技术水平,更应该看的也是这些代码。vtigerCRM是一个客
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
4年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
DocMan
DocMan
Lv1
既然当初做了那样的决定,就算后悔也无济于事。
文章
4
粉丝
0
获赞
0