如果说,人类进化动力源于挑战:
想突破速度,于是从太空飞行追逐到量子世界;
想追求稳定,于是在万变之中,求不变之道;
想打破繁复,于是用 1 台智能手机集成 N 种必需品,大道至简……
那么,挑战充满不确定性的未来,就是 TiDB 这款开源产品的不断进化的内在基因——如何做到更好的性能、更强的稳定性、更惊人的易用性?这也是 Geek 聚集的 TiDB 社区不断前进的指引。
无挑战,不 Geek。相信在上周举办 TiDB Hackathon 2019 上,大家已经在短短两天里领略了 TiDB 社区伙伴们的 Geek 精神,促成了很多优秀项目的诞生。为了进一步激发社区的创造性,我们将开启 TiDB Challenge Program,这是一场从 Easy 到 Hard 的升级“打怪”竞赛,第一赛季将持续 3 个月,比赛过程中获得积分还可以兑换丰厚的礼品。万事俱备,就等各位来战!
TiDB Challenge Program 由 PingCAP 发起,旨在激发社区创造性,使选手可以通过完成一系列的任务提升 TiDB 产品的稳定性、性能和易用性。第一赛季主题为 Performance Improvement,将于 2019 年 11 月 4 日正式开启,赛事持续 3 个月。选手可选择个人或团队名义参赛完成任务并获得相应积分。积分可在赛季结束后进行奖项兑换。
欢迎大家加入 TiDB Community Slack Workspace 和 tikv-wg Slack Workspace,参赛过程中遇到任何问题都可以直接通过 #performance-challenge-program channel 与我们取得联系。
Highlights
从 Easy 到 Hard
本次大赛项目采用分级制度,充分照顾入门选手的「Easy」模式降低了参赛门槛,让 TiDB 小白也能快速上手。每个项目对应一定的积分,当选手累计到一定积分后可解锁「Medium」与「Hard」模式,犹如升级打怪般攻克重重障碍,成就感爆棚!
大咖导师
针对「Medium」和「Hard」 类型的任务,我们设有专门的导师。参赛者可通过 Slack Channel 就代码实现过程中遇到的问题进行沟通,保证选手的参赛体验。
丰厚奖品
我们为大家准备了丰富的奖品,使用完赛项目的积分即可兑换**(数量有限,先到先得哦)**~
赛前准备
- 参考 Join GitHub 完成 GitHub 账号的创建。
- 参考 Installing Git 在本地环境中安装 Git。
- 通过 Set up Git 配置 Git 访问 GitHub。
报名
- 报名方式: 发起 Issue 至 tidb-perf-challege/pcp repo
- 格式要求:
- 标题:PCP/Sign Up
- 内容:
- 个人参赛:请对你自己进行简要介绍,并留下可以与你取得联系的邮箱地址。
- 团队参赛:请对你的团队进行简要介绍,写明团队名称,每个团队成员的 GitHub ID,并留下可以与你们取得联系的邮箱地址。可参考 示例。
注意事项:
- 以团队形式参赛,每队成员最多三人。
- 有 PingCAP 内部员工参与的队伍,将作为打星队伍,不参与积分总排名,所获积分仍具有兑换权益
参赛流程
TiDB Performance Challenge Program 全流程包括:查看任务->领取任务->实现任务->提交任务->评估任务->获得积分->积分兑换,其中“获得积分”之前的步骤都将在 GitHub 上实现。
第一步:查看 / 提出 Issue
当前开放的 Issue 列表可分别在 TiDB-Performance Challenge Program Project、TiKV-Performance Challenge Program Project、PD-Performance Challenge Program Project 中的 TODO Columns 查看。
其中 TODO Columns 按照题目难易程度划分了 3 列,分别是:TODO/Easy、TODO/Medium、TODO/Hard。每一个 Issue 还设置了一些标签,为方便大家理解,现将 TiDB Performance Challenge 相关标签所代表含义做如下说明:
- “difficulty/easy”、“difficulty/medium”、“difficulty/hard”:Issue 难度级别。
- “Component/XX”:Issue 所涉及的模块。
除了当前开放的 Issue,如果你有其他关于 Performance Improvement 的想法想要实现,可通过发起 Issue 的方式提出 Proposal。发起 Issue 之前请确保你已经了解了 Contribution Guide 和 Contributor Covenant Code of Conduct。
- TiDB 相关 Proposal 可通过 TiDB Issue 发起通道 提交至 TiDB Repo;
- TiKV 相关 Proposal 可通过 TiKV Issue 发起通道 提交至 TiKV Repo;
- PD 相关 Proposal 可通过 PD Issue 发起通道 提交至 PD Repo。
格式要求:Issue 标题前需添加“REQ-PCP”标记,例如:REQ-PCP: Further extract tidb_query into different workspaces。
第二步:领取任务
如果你决定认领某一个 Issue,请先在这个 Issue 中回复 “/pick-up-challenge”, 后台将自动判断你所拥有的积分是否具备挑战此 Issue 的资格,积分满足要求即可开始挑战,积分不满足要求,需按照系统提示获得满足挑战要求的积分。
需要特别提醒的是:
- 每个参赛主体(含个人及团队)参与 TiDB 性能挑战赛的初始积分为 0,需要先完成 “Easy” 的 Issue 将积分积累至 400 分以上(含 400 分),才有资格挑战难度为“Medium”和“Hard”的题目。
- 每个参赛主体一次只能领取一个任务。
第三步:实现代码
在实现代码的过程中如果遇到问题,可以通过 #performance-challenge-program channel 与我们进行探讨,Issue 指定的 Mentor 会尽可能在 24h 内予以回复。不过,在提出问题之前一定要确保你已经仔细阅读过题目内容并且已经完成了参考资料的学习哦~
第四步:提交代码
如果你觉得你的方案已经达到了题目的要求,可在相关 Repo(例如 tidb)的 master 分支上实现你的方案,并将代码以 GitHub Pull Request(简称 PR)的形式提交到相应的 GitHub Repo 上。当 PR 提交后,可在 PR 的评论中 at 该题目的 Mentor 进行代码评审,Mentor 会尽可能在方案提交后的 48h 内完成评估。
注:提交的 PR 需要满足 Commit Message and Pull Request Style 中定义的规范。
提交方式:代码完成后,参赛者需提交 GitHub Pull Request(PR) 到相应 Repo,如何提交 PR 可参考 GitHub Workflow,这里也有一些 SRE-BOT Command Help 供大家参考。
格式要求:PR 的第一行需要指定任务 Issue 的编号,再写每个 repo 要求的格式,示例:
PCP #12345
第五步:代码评估及积分授予
评估规则:PR Reviewer 会对 PR 进行代码格式、代码功能和性能的 Review,获得 2 个以上 Reviewer 认可(即在 PR 中评论 “LGTM”)的 PR 将会被 merge 到对应 repo 的主干。
如果你的 PR 被 Merge 到主干,那么就意味着该题目被你挑战成功,你将获得该题目对应的积分;其他参赛选手将失去对该题目的挑战资格,已经提交的 PR 也会被 Close。
否则,你需要继续和 PR 的 Reviewer 探讨实现方案和细节,合理的接受或者拒绝 Reviewer 对 PR 的评审建议。
第六步:积分兑换
积分获得情况将会在 TiDB 性能挑战赛官方网站 呈现。所获积分可兑换礼品或奖金,礼品包括但不限于:TiDB 限量版帽衫、The North Face 定制电脑双肩包等。
兑换时间:每个赛季结束后至下一赛季结束前可进行积分兑换,下一个赛季结束时,前一赛季的可兑换积分将直接清零,不可再进行社区礼品兑换。
兑换方式:本赛季结束后填写礼品兑换表(届时将开放填写权限)。
学习资料
这里有 TiDB 精选技术讲解文章,帮助大家轻松掌握 TiDB 各核心组件的原理及功能;还有 PingCAP University 在线视频课程,帮助大家快速熟悉 TiDB 原理、架构及最佳实践,点击以上链接即可轻松获取。
这将是一次集体智慧的碰撞,我们期待着与社区小伙伴一起创造无限可能!