关于tidb:单刷-3-届-Hackathon朝着理想中的数据库出发丨TiDB-Hackathon-选手访谈

3次阅读

共计 4189 个字符,预计需要花费 11 分钟才能阅读完成。

单刷 3 届 Hackathon,朝着现实中的数据库登程丨 TiDB Hackathon 选手访谈 TiDB Hackathon 2022 正在炽热报名中,截止目前曾经收到 230+ 位参赛者报名,组队近 60 组。想必各位选手曾经跃跃欲试,开始筹备本人我的项目的 RFC 了。在期待较量日的这段时间,TiDB 社区采访了多位 Hackathon 参赛选手,通过访谈为大家分享一下他们对 Hackathon 的了解和感悟,同时探讨开源给他们的集体生存和工作带来了哪些扭转。当然,作为老选手,也会有极其宝贵的参赛教训分享。曾经报名加入本届 Hackathon 的选手或是对 Hackathon 感兴趣的小伙们,连忙看过去!明天与大家见面的参赛选手是目前在南京邮电大学读研三的陆涣冰同学,其实他的业余方向原本是卫星通信,但心田却非常酷爱计算机底层技术,业余时间根本 all in 在开源分布式数据库上。

涣冰同学与 TiDB Hackathon 的缘分源自研一那年:过后看到较量的信息后就十分想加入,但苦于本人技术水平不够,同时也没找到人组队,差点错过。幸好过后社区的经营同学给了很多激励,并阐明集体参赛也是规定容许的,这才被引入了 Hackathon 这条路。之后涣冰就一发不可收拾,研一、研二、研三接连三届都加入了 TiDB Hackathon。以下为采访记录:Q1:为什么抉择单刷的形式加入 TiDB Hackathon?

陆涣冰:其实单刷次要是因为本人想做的一些货色,对于很多人而言比拟形象,比拟艰难。举例来说,我去年做的题目就是用 eBPF 去减速 TiDB 的底层存储门路。这个我的项目可能须要比拟多的底层常识的铺垫,过后问了一圈发现没人对此感兴趣,最终还是本人一个人参赛。其实拿不拿奖无所谓,玩得开心就好。

加入 TiDB Hackathon 帮我整个研究生的三年开了一个头,之后我又加入了各种开源的较量,比方阿里的天池数据库大赛、open Euler 高校开发者大赛等等。我能开启这条路要感激两个人。第一个人就是过后的社区经营 yanqing,她对我有某种程度上的知遇之恩,如果没有她我前面的这些经验应该都不存在。第二个人是过后在 P 社实习时的 mentor 施闻轩,他对于我在技术上了解的影响是比拟深远。

Q2:最早是在什么时候对编程感兴趣的?
陆涣冰:我本科的业余是网络工程,研究生的业余是信息网络,乍一听起来如同都是计算机学科的分支。那时候其实走了一段弯路,过后整个人掉进了平安的圈里,感觉黑客好酷,什么病毒、逆向都感觉十分酷。然而在深刻学习了平安一段时间,就感觉做平安好玩归好玩,然而真的要把这个当做职业,心里感觉还是缺了一点什么。在 2019 年 2 月 1 日,那天是我的生日,所以我印象特地清晰,在跟敌人聊天时,我问本人当前确定要做平安了吗?还是想更深刻地写代码?因为过后身边很多做平安的敌人只是敲敲命令行跑跑脚本,感觉中国的平安的确青黄不接,厉害的的确十分厉害,但菜的切实是太菜了。那时候我这方面的技能,不谦虚地讲能够说是炉火纯青了,然而写代码的功底还是一塌糊涂。

和来自美团、百度的一些圈内敌人聊了聊,他们倡议能够考虑一下前端业务利用开发或编译器、数据库、操作系统等更底层的开发。过后也是年少无知,就说要不学个数据库吧。于是从那天就始终学到了明天,而后就发现一入数据库深似海,这外面的货色切实是太宏大了。不仅要有零碎常识,还要波及编译器的常识,分布式的常识。随同着这个学习过程,本人编码的程度也逐步上来了。

说实话,身边除了本人,再也找不到第二个人做软件开发或者数据库开发。平时在学校的教研室里根本清一色都是前端开发,这三年来,就我一个人坐电脑前自学了三年。在接触到 PingCAP 时,有一种忽然找到组织的感觉。
Q3:开源带来的乐趣或收益是什么?
陆涣冰:学习数据库的时候其实曾经对开源有了肯定的认知,基本上 99% 的常识全副来自于开源,无论对操作系统还是对计算机体系的了解,根本都是构建于开源软件之上的。

第一次接触 Linux,我发现这不就是我想要的操作系统?大家都能改,都能用,改完还能 push 进我的项目里,凋谢给他人用。某种程度上开源能够汇聚全人类的智慧去做一些事件。当然开源合作也会有很多问题,比方奉献的代码好不好,有没有破绽,能不能和他人达成统一协商等等。有些我的项目写一半甚至不写了,开发者跑了,撂挑子了,这都很常见。包含开源我的项目的商业化,哪些拿过去能够做出本人的货色,哪些能够二次开发拿去卖,哪些行为是违规的,都须要开源参与者去思考。但那时我还只是开源的使用者,到了读研之后,借由数据库才缓缓把手伸得更远一点,开始把本人的代码奉献给他人。Q4:TiDB Hackathon 与其余较量在体验上有什么区别?
陆涣冰:那切实是太多了。第一还是人,PingCAP 这边的小助手切实是太激情了,工作做得十分好。我加入了三年,基本上会和每一届的小助手成为敌人。第二点是 Hackathon 的所有我的项目都构建在 TiDB 之上,TiDB 有十分多的文档,有对于内核、原理的解读,我认为这点在泛滥参加过的较量、我的项目中能够说是最优良的。这些工作大大减少了开发者想深刻理解 TiDB 所须要的工夫。举个例子,我在加入某个较量的时候,他们就水灵灵地放出赛题以及代码框架,剩下就全副交给你本人了,十分不容易上手,老手十分难做。而 TiDB 的源码与文档能够帮忙开发者在较量中缩小十分多的工夫。

也说说有余,我曾经加入了三届,感觉其实有很多 idea 都是后面曾经做过的,总会被一直掏出来翻新。倡议官网能够把过往的我的项目整理出来,防止前面的反复。去年有人说 Hackathon 是不是曾经没有太多 idea 能够提了,其实我认为随着 TiDB 的倒退,加了很多新的 feature 后 TiDB 曾经变得越来越简单,大家本来对于 TiDB 3.0、4.0 的了解放在 6.0 上可能就不实用了,须要再花大精力去做一些有比拟有意思的货色。但这可能就须要花很长时间读源码,深刻理解 6.0 的设计,这对于里面想加入的人来说就十分艰难,所以他们才会说能做的变少了。其实不是变少了,是难度变得太高了,破费的工夫老本更高了。
Q5:作为老选手,能不能给新选手分享一下 Hackathon 创意的灵感?
陆涣冰:其实我有一个想法,有一天咱们能把编译器、数据库、操作系统买通,把数据库间接放在与操作系统一样的等级下来。我的所有灵感始终都是围绕这个欲望登程的,不要为了较量而想点子,而是为了做出本人现实中的那个数据库,让当初的数据库朝着现实中数据库登程,看看还有什么缺的中央,一步一步实现。

我往年的思路其实和东旭之前的想法很类似,TiDB 后端当初存储引擎用的是 target 编码,先前计算机如果出了问题,都能够通过增加一层中间件或者中间层来解决。那我就想能不能增加这样一个中间层,把 TiDB 和 TiKV 解耦,让前面的存储引擎可能无缝切换。这是我往年想做的事件,然而不晓得能不能做胜利,做成什么样子。

Linux 内核进入 6.2 版本之后,Rust for Linux 基本上就能稳固了。当 Rust 进入 Linux 内核之后,能和数据库带来更深层次的互动。这个就是我讲的把操作系统与数据库放在同一个 level,其实始终在朝这个指标在走。
Q6:往年是你第三次加入 TiDB Hackathon,你感觉这些年有哪些变动?
陆涣冰:作为一名底层开发者,TiDB Hackathon 最吸引我的就是比拟硬核的技术,比方 TiDB 先进的存储引擎、高效的性能,它能勾起咱们的好奇心,去挖掘一下这个数据库到底牛在哪。

如果是对于前端开发者而言,TiDB Hackathon 对他们的吸引就是借由 TiDB 能去开发一些有意思的利用,比如说无缝切换,比方更 native 的云原生根底组件,甚至替换 Kubernetes 里的某些性能等等。

我看到往年的赛制产生了一些变动,比方去年大多数较量环节都安顿在 48 小时里,初赛、决赛问难,工夫安顿得满满当当。但往年主办方把初赛提前了,这能让选手们筹备得更充沛。加入 TiDB Hackathon 的大部分选手都是有工作教训的,或者是有 TiDB 应用教训的。他们对于这个数据库有着十分深的了解,能够借由 Hackathon 的机会把一些 actions 提前给做了。然而对于里面的学生或者不是太相熟 TiDB 架构的人而言,较量周期的缩短就十分有意义了,他们可能有更短缺的工夫去浏览源码或者阅读文章,加深了解,能把 demo 做得更好一些。我第一届参赛时连 demo 都没有,基本来不及做。

另外,其实这些年我发现身边做底层开发的小伙伴尽管越来越多,但仍旧是无济于事。更多的人还是利用开发者,他们关怀如何用数据库,而不是开发数据库,所以利用开发这个赛道的减少就很有意义了。利用开发者能够尽可能施展,用这个数据库做出一些十分有意思的利用,展现出 TiDB 的更多可能性。
Q7:参赛教训分享陆涣冰:想 idea 的时候千万不能闭门造车,要集思广益,收集一下已有的 RFC 或者 AskTUG 论坛里的一些问题,看一看 TiDB 的痛点在哪儿;再从评委的角度去想一想,是不是能第一工夫 get 到你的想法。我其实还没正式开始写 RFC,我的习惯是先把想法写在纸上,确定好了再腾到电脑上。写 RFC 首当其冲是要表明你的目标,做这个货色是为了解决什么问题;其次形容一下我的项目的背景,让评委能明确这个我的项目的定位是在 TiDB 的哪一个技术分支外面;除此之外,要把图画好,这样能力讲好你的故事。我第一次 demo 都没做进去,所以问难的后果也就不尽如人意。第二次问难确确实实把这个货色做进去了,做得是不是完满其实没有关系,大部分选手工夫都一样缓和,关键在于能把你想做的事件、要做的事件、曾经做过的事件讲明确就 OK 了。至于什么花里胡哨的画图、图表、成果,都是精益求精的货色。对于如何设计 RFC,能够参考这里:https://asktug.com/t/topic/90… 我从本科到当初,加入了百余场较量,而且每一场都是单刷。其实加入这些较量的初衷是想把技术学好,想能为他人再做点什么事件,能做进去一些更实用的货色当然最好,不会太过于关注奖品、名次这些事件,更多还是关注于本人的我的项目和想法有没有实现。即使没有失去评委的认可,也是本人花工夫和精力做进去的,这些写过的代码,对于本人的晋升是 100% 是有帮忙的。看过涣冰的经验,你心动了吗?点击文末浏览原文理解更多赛事详情!

正文完
 0