Hi,你有一份 TiDB 易用性挑战赛「捞分指南」请查收

Stella981
• 阅读 715

TiDB 挑战赛第二季之 易用性挑战赛 已经开始一周了,由于有参加过上一季 性能挑战赛 的老玩家强势加入,这一季挑战赛的竞争格外激烈,短短一周的时间,已有 3 支队伍获得了上千积分!

Hi,你有一份 TiDB 易用性挑战赛「捞分指南」请查收

完整积分排行榜可以登陆 活动官网 查看。

战况简介:

羡慕不如行动!我们也在这里简单分享一些捞分技巧,希望能够帮助大家快速上手,追上这些排名靠前的参赛选手们。

捞分技巧 1:用户投票结果中排名前三的需求有高额加分!

Hi,你有一份 TiDB 易用性挑战赛「捞分指南」请查收

为鼓励大家选择用户呼声更高的任务,本次挑战赛中用户投票排名前三的需求对应的任务,会在原有积分的基础上分别额外增加 10000、8000、6000 分。比如这个排名第三的需求:record access statistics of databases, tables and indices,该需求原本的积分是 1294(积分低意味着难度低哟),再加上额外的 6000,这意味着完成这个低难度的任务总共能够获得 1294 + 6000 = 7294 分,性价比非常高!

捞分技巧 2:Chaos Mesh Contributing Tutorial 可以帮助大家快速上手拿分

Chaos Mesh 是一款云原生的混沌测试平台,大家经常听说的 TiDB 混沌测试工具就是它。对了,Chaos Mesh 项目后续会有大惊喜哦,真 · 潜力股(只能剧透到此了,你懂的)。

这份小小的 Chaos Mesh Contributing Tutorial 包含了 GitHub 协作基础、搭建 Chaos Mesh 开发环境和如何在 Chaos Mesh 中开发一个非常简单的新功能。内容不多,很快能看完。如果你之前没有参与过开源项目,可以看它;如果你有开源协作经验,但是没有参加过 Chaos Mesh 开发,也可以看它!看完小册子之后,大家就可以在 Chaos Mesh 挑战赛题目合集 轻松做任务、拿积分了!

捞分技巧 3:如果觉得 Medium 题目太难,那就在多个 Repo 同时刷 Easy 题目

相比第一季,这次易用性挑战赛除了 TiDB、TiKV、PD 之外,有更多代码仓库释放了任务:

  1. chaos-mesh

  2. Data Migration

  3. Backup & Restore

  4. client-rust

  5. TiDB Dashboard

  6. cherry-bot

  7. TiDB Operator

  8. TiUP

算上 TiDB、TiKV、PD 等总共有十多个代码仓库参赛。按照本次比赛规则,选手在每个仓库可以通过刷 Easy 难度的任务,获得最高 200 积分。那么 10 个代码仓库就是 2000 分,积少成多,收获非常可观哦!多多练手之后再挑战 Medium 难度的任务,也会更加轻松。

捞分技巧 4:从一些比较简单的 Medium 任务突破

TiDB:

通过 SQL 指纹的方式为 SQL 绑定执行计划 Hint:这是一个来自用户的需求,通过 SQL 指纹的方式能够极大简化创建 SQL Binding 语句的长度,提升用户体验。实现起来也并不复杂,修改 parser 文件支持语法后,再修改一下 TiDB 和创建 SQL Binding 相关的代码即可。

TiKV:

PD:

  • PD API Swagger 支持:让 API 符合 Swagger 标准且能生成在线 API 文档,实现简单,主要工作在于梳理  API,预期 3 天左右就可以完成。

  • 限制指定小表不被合并:这是一个来自社区的需求,需要让某些 Region 能够不被合并。选手们完成这个功能后就能知道完整的 Region Merge 调度流程了,是一个非常有意义的功能。

TiDB Operator:

  • 支持 Operator CRD Java SDK:由于 TiDB Operator 是由 Golang 编写的,目前其 CRD 文件只有  Golang 客户端,这个任务将给 Operator CRD 创建 Java 客户端,对于扩展产品生态非常有意义。

  • 优化 Operator Controller 报错信息:目前 Operator Controller 的报错信息不能帮助我们准确定位到具体的错误发生地点,这个任务将帮助我们优化 Operator Controller 的报错信息内容,提升用户体验。

Chaos Mesh:

  • 支持暂停混沌实验:给每一个 Chaos 对象的定义中添加一个 Pause 的字段,如果被设置成 True,那么 Controllers 在每次调用到对应 Reconcile 逻辑时会取消掉已经注入的错误并且跳过正常的执行逻辑。

  • 拓展 NetworkChaos 支持限制网络带宽:这个任务是对已有的 NetworkChaos 进行拓展,支持限制具体 Pods 的网络带宽,并且使用 netlink 工具包支持,这样可以很好的解决限制网络带宽的具体实现问题。

TiDB Dashboard:

Data Migration:

Cherry Bot:

  • 将各 Repo 的配置分为不同文件:对 config 组件进行小幅改动就可以。

  • 多分支并行 auto merge:目前 PingCAP 多个开源项目(如 TiDB、TiKV 等)都在使用该功能自动 merge 经过 Reviewer 点赞的 PR。这个任务将完善这个功能,使其能够同时 merge 多个分支上的 PR。要完成它需要修改 auto merge 的主体逻辑,但因为代码模块比较独立,适合用来学习 bot。

TiUP:

Client-rust:

  • 支持清理特定 key 的锁:在事务冲突严重时,针对小事务只清理特定 key 的锁能大大减轻 TiKV 服务器的负担。

  • 为 PD 客户端添加 Region 缓存:使用本地缓存的 Region 信息对于提升性能和降低 PD 服务器负担有很大的帮助。TiDB 中已经有比较成熟的实现,这里只需要将 TiDB 的实现迁移到 Rust 中。

不知道看完以上“捞分技巧”,大家有没有摩拳擦掌、准备上阵抢积分了?

报名方式、参赛细则请看 这篇文章,同时也欢迎大家加入 TiDB Community Slack Workspace,在参赛过程中遇到任何问题,都可以直接通过 #tidb-challenge-program channel 与我们取得联系哦~

Hi,你有一份 TiDB 易用性挑战赛「捞分指南」请查收

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
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
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这