TiDB Hackathon 2020 回顾(未完待续)

很高兴第三次参加 PingCAP 主办的 TiDB Hackathon 2020 ,虽然我这一次是以社区评审的角色参加的,不能感受 hacking 的乐趣了,但是却可以从不同的角色去感受此次黑客马拉松比赛,这种体验真的非常难得。

真实原因:作为第 1、2 届比赛都拿奖的我来说,我得见好就收 罒ω罒😁

好了,废话不多说,接下来我将以一个评审的身份/角度来回顾此次 TiDB Hackathon 2020。

报名

2020 年 12 月 13 日上午 10 点 TiDB Hackathon 2020 Kickoff 上为大家同步今年大赛的信息

文档:https://docs.google.com/document/d/1ypfN7q4TzQA_gVgJQEMSCU71BhJdmOl627Bohshttjc/edit#

2020 年 12 月 15 日 18:58 TiDB Robot 正式官宣一年一度的 TiDB Hackathon 2020 黑客马拉松比赛开启。

大赛主题:无限可能 ~ 参赛项目可围绕 TiDB 组件或 TiDB 生态周边(TiKV,ChaosMesh 等)进行创作。

报名从 2020 年 12 月 15 日 ~ 2021 年 1 月 10 日截止。

TOC(Technical Oversight Committee)将通过投票表决的方式将优秀的项目纳入 TiDB Incubator 继续孵化,成为真正落地的社区项目。

在 Hackathon 正式开场时,东旭也邀请了 TOC 主席孙晓光给大家正式介绍了 TOC。

2020 年 12 月 23 日召开了 idea 通气会,并且还给我们展示了本次大赛的 T-shirt 设计。

TiDB Hackathon 2020 专业 & 社区评审是在 2020 年 12 月 30 日正式对外宣布的。

社区评审团

包括:杨文 | TUG 华南区 Leader,王贺 | TiDB Committer,韩明聪 | TiDB Committer,白珅 | TiDB Committer。

他们对报名参赛的小伙伴加油助威语:

  • 杨文:前两届 TiDB Hackathon 给我留下了美好的回忆,今年我也将继续参加。只是今年我将从之前的参赛者转变为社区审核者,虽然角色变了,但初心不变,我会跟大家一起去感受在有限的时间内做出一个产品/功能的那种成就与自豪。
    预祝各位取得好成绩!
  • 王贺:解放教条思想,创造无限可能!
  • 韩明聪:
    TiDB 是一个充满活力的社区,希望在今年的 TiDB Hackathon 中能够看到更多由社区小伙伴带来的有趣的点子和有用的项目,让 TiDB 的生态更加繁荣!
  • 白珅:希望参赛选手可以充分发挥想象力和创造力,发掘出更多有趣的 TiDB 周边应用。

专业评审团

包括:李钰 | Apache Flink & Apache HBase PMC Member,陈现麟 | 伴鱼技术中台 & 数据中台负责人,李雨来 | 讯达云架构师,张雁飞 | 青云 QingCloud 数据库高级技术专家,吴亮 | 字节跳动技术学院院长,覃左言 | 小米云平台部 - 存储平台总监,张东晖 | TiDB 产品顾问,唐刘 | PingCAP 首席架构师,以及 PingCAP 联合创始人兼 CTO 黄东旭。

他们的寄语:

  • 李雨来:看到越来越多的人投入到 TiDB 的贡献中来,再回想起当初第一次接触到 TiDB 时的情景,开源的力量还真是很神奇。
    众人拾柴火焰高,希望 TiDB 越来越好,也祝大家能在 Hackathon 中找到挑战高峰的快乐。
  • 黄东旭:去年 Hackathon 的精彩我现在还历历在目,今年我看到很多小伙伴已经摩拳擦掌跃跃欲试了,而且很多 idea 都非常棒,别的也不多说了,希望大家玩得开心!
  • 陈现麟:
    如果说 Hackathon 是工程师的狂欢,TiDB 是技术的盛宴,那么 Hackathon + TiDB 就是一群工程师在一个技术盛宴的狂欢,期待大家玩的开心,玩的精彩,玩出创意!
  • 张东晖:TiDB 是一个系统程序员追求技术梦想的地方,希望参赛队伍能在 Hackathon 上放飞想象,充分展示才华,也期待在今年的 Hackathon 上看到更多精彩的创意,祝大家玩儿得尽兴!
  • 覃左言:期待在 Hackathon 上看到更多创意的火花,让 TiDB 变得越来越优秀。祝大家玩得开心,enjoy it !
  • 李钰:TiDB 是非常优秀的技术社区,聚集了大量优秀的开发者,期待在 Hackathon 上看到更多优秀的创意和结合生态项目的综合解决方案。祝大家玩得尽兴!
  • 吴亮:很高兴看到 TiDB 产品越来越优秀,社区越来越活跃。期待 TiDB Hackathon 精彩无限,创意 ∞!

小插曲

原计划的北上广杭成的五地赛场,因为近期河北疫情抬头和政策收紧,所以北京的参赛者只能以远程的方式加入了。
还有海外的参赛者也只能以远程方式参加。

在正式开始之前,组委会和评审团对如何高效评审做了多次沟通,以避免去年 demo show 时间过长,何况今年参赛队伍比去年又多了不少。

怎么解决 demo show 时间不够用,再加上远程带来的接入困难?还要尽量去保证参赛队伍有足够的比赛时间呢?

组委会也是煞费苦心,讨论了几种方案,最终定下来现在的进阶式筛选评审。

尽量把最优秀的项目尽可能多的展现给更多的人。

创意 idea 组队

  • 使用 Linux kernel 中 ebpf 针对分布式 DB 集群中 TiDB working 进程或者线程进行在线性能分析,使用 ebpf 追踪、查看、嗅探 TiDB 进程在分布式集群中的表现,无论是裸机还是容器环境中,分布式系统都可以动态感知到进程的变化情况。Trick:加上 CUDA 以及某种 ML&DL 模型针对 TiDB 的进程或者线程或者容器进程或者线程的表现,进行针对性的数学建模
  • TiDB 对接时序数据库 victoriametrics
  • engine API
  • learned index
  • 广州的外国老哥提了个 Hackathon 的 proposal,有没有人有兴趣和他组队的,强化学习 TiDB Tuning https://gist.github.com/DallasC/08c5b5861fe660b5a2a1ca418c2442af

投票

全球联动,极客荣耀 | TiDB Hackathon 2020 即将打响巅峰之战!,开启观赛互动,给你最喜欢的项目投票(最佳人气奖)。

互动方式一:

投出你最喜欢的参赛项目,这个投票很有意思,直接通过 GitHub 进行,每个 GitHub ID 可以投票一次,每次可选择一个战队,重复投票将不被计算, Contributor 投票将给战队额外增加一票。

互动方式二:

分享观战感受赢取大赛周边。

观赛期间在微信朋友圈分享你对 #2020 TiDB Hackathon# 的观战感受或相关建议,截屏并回复给 PingCAP 公众号,将从中抽取 20 名最佳氛围组成员,赠送本届赛事限量 T 恤一件。

正式开始

1 月 16 日

9:00 - 9:30 Hacking Time 启动仪式 & 参赛队伍视频展示

11:00 参赛项目 RFC 解读

RFC 地址:presentations/hackathon-2020-projects.md at master · pingcap/presentations · GitHub

RFC 解读过程中提到的知识、Paper 等。

// TODO:

14:00 赛队采访

"' or 0=0 or '" 参赛队,在数据库上编写函数(UDF),进行计算是怎样的体验?

metabase 实时票数统计

https://meta.pingcap.net/public/question/0031ab99-07aa-496c-a7b5-657b412784b7

这里先来给大家科普一下 metabase 和 Hackathon 2020 Most Popular 分析。

metabase 用最简单、最快速的方式让你们公司的每一位拥有商业智能与分析。

产品好不好用,需要你用过才知道,但是我们可以先来看看他们的产品截图。

再来感受一下 The Zen of Metabase(Metabase 之禅)

  • Give the user value as soon as possible 尽可能地为用户传递价值
  • Structure things so that we can automagically infer things for the user 结构化事物并以此自动为用户推断事物
  • Don’t ask the user for information the system should already know 系统本该知道的东西,就不要去问用户
  • Make it easy for the user to do the right thing 让用户简单方便地做正确的事
  • Don’t leave the user booby traps 不要把用户留在诱杀陷阱里
  • Go the extra mile to make the user experience pleasant 付出额外的努力,使用户体验愉快

看过之后,不知道你是什么感觉呢?(我觉得价值观还是挺认同的)

剖析 Hackathon 2020 Most Popular 数据源

闲来无事,我们就来穿插一下 meta.pingcap.net 的统计数据源吧。

https://meta.pingcap.net/api/public/card/0031ab99-07aa-496c-a7b5-657b412784b7

{"id":1322,"name":"Hackathon 2020 Most Popular","description":null,"display":"bar","visualization_settings":{"graph.dimensions":["team_name"],"graph.metrics":["_count_sum"],"graph.show_values":true,"graph.x_axis.axis_enabled":"rotate-45"},"dataset_query":{"type":"native","native":{}},"param_values":null,"param_fields":null}

查询实时数据:

https://meta.pingcap.net/api/public/card/0031ab99-07aa-496c-a7b5-657b412784b7/query?parameters=[]

{"data":{"cols":[{"name":"team_name","display_name":"team_name","base_type":"type/Text","source":"native","field_ref":["field-literal","team_name","type/Text"]},{"name":"_count_sum","display_name":"_count_sum","base_type":"type/Integer","source":"native","field_ref":["field-literal","_count_sum","type/Integer"]}],"rows":[["\"' or 0=0 or '\"",48],["\"dddd, indeed\"",48],["\"TiFlink\"",31],["\"B.A.D\"",23],["\"克兰德曼\"",18],["\"zhangyushao\"",15],["\"TIS\"",10],["\"Mouse Tail Juice\"",8],["\"T4\"",7],["\"Mods\"",6],["\"young队\"",6],["\"TIDB flashback\"",5],["\"TiGraph\"",4],["\"Xteam\"",4],["\"中年先锋队\"",3],["\"名字,有用吗\"",3],["\"Tidb Trace\"",3],["\"CAAS\"",2],["\"Hackthon Fix Typo Team\"",2],["\"Phantom Ensemble\"",2],["\"Solo*\"",2],["\"Ti-Improve\"",2],["\"hundundm\"",2],["\"tidb-operator支持可灰度的Pod原地升级\"",2],["\"森海飞霞\"",2],["\"评委说的都\"",2],["\"龙姐姐说的都队\"",2],["\"🐏️🔪️\"",2],["\"滑滑蛋\"",2],["\"Bourbon\"",1],["\"Tuantuan Yuanyuan\"",1],["\"tis\"",1],["\"平头哥\"",1],["\"进击的韭菜\"",1]],"insights":null,"results_timezone":"Asia/Shanghai"},"json_query":{"parameters":null},"status":"completed"}

看以上两个 API,我们知道 API 风格是 restful

16:00 现场精彩赛况突击放松

// TODO:

18:00 赛队采访

// TODO:

1 月 17 日

13:00 - 20:00 20 强 Demo Show、评委打分与颁奖

// TODO:

参考资料