奖金升级,TiDB 性能竞赛等你来战!

奖金升级,TiDB 性能竞赛等你来战!


在 “一切皆可编程、万物皆要互联” 的数字时代,数据成为最重要的生产要素。作为企业 IT 基础架构核心的数据库,应该具备什么样的能力?

TiDB 是一款开源 NewSQL 数据库,实现一键水平伸缩,强一致性的多副本数据安全、分布式事务、实时 OLAP 等重要特性。与传统数据库相比,TiDB 既支持分布式 ACID 事务,具备高并发、高可用、弹性伸缩特性,并可同时处理 OLTP 和 OLAP 业务。目前,TiDB 已经被全球近 1000 家行业头部企业应用在生产环境。

TiDB 性能竞赛是由 TiDB 社区主办,专属于全球开发者与技术爱好者的顶级挑战赛事。数据库的性能调优一直被誉为“皇冠上的明珠”,是该领域最高技术水平的代表。 本届赛事在赛题设计方面融入前沿的技术与应用方向,鼓励更多的开发者基于 TiDB 社区进行数据库产品与应用的创新。 在这个秋季,让我们一起激发无限可能,攀登荣誉巅峰!

大赛日程

报名组队

9月17日 - 11月29日

实现任务与提交成果

9月17日 - 11月29日

组委会成果评估

11月30日 - 12月04日

现场答辩

12月05日

参赛对象

大赛面向全球开放,企业员工、高校师生、科研单位人员及有志于创新的开发者个人,均可以组队报名参加, 尤其欢迎具备以下技能的参赛者:

  • 熟悉 Rust、Go 语言,了解分布式系统的基本原理,在数据库事务、缓存管理、数据加速算法等方面具备开发经验。

  • 了解 TiDB 设计与实现,熟悉 sysbench、TPC-C 等数据库性能基准测试工具。

如何参赛

本次竞赛提供两种类型的参题: “围绕固定 workload 优化” 与 “性能优化高难度 issue” ,选手可以选择一个优化题目组队参赛。比赛最终以优化成果(性能提升百分比)、小组 PR 总分(成功提交对应竞赛 PR 即获积分)和现场答辩完成度进行排名。 具体参赛细则请点击 文档 查看。

大赛奖项

:medal_sports: 第一名:团队奖金 5 万元 + 顾问个人奖金 1 万元

:2nd_place_medal:第二名:团队奖金 3 万元 + 顾问个人奖金 1 万元

:3rd_place_medal: 第三名:团队奖金 1 万元

:sparkles: 所有完赛选手都将获得大赛专属纪念品、TiDB 限量周边等福利哦~

这里大咖云集、精彩纷呈,邀你与来自全球的精英学者、行业专家、技术爱好者一起,打破时空阻隔,通过解决来自真实业务的场景痛点,让开发者交到志同道合的朋友,提升自己对数据库的应用能力,产出的优秀代码,共建 TiDB 开源生态。

:bulb: 点击 此处,登录大赛官网,了解更多赛事详情。

1 个赞

由于受到疫情及国庆假期的影响,组委会决定将比赛日期后延十个工作日,还增设了四重惊喜大礼包,奖金总额翻倍!

第一重礼包

价值 5 万元 RMB 的云端资源免费用

我们给参赛队伍准备了云端主机,方便大家更好的进行调试和实验。每个参赛队伍均可使用一个集群去调试、验证自己的想法,每个集群包含六台服务器,单台具体的配置为:4C8G + 数据盘 200G +公网带宽。

:star2: 具体申请方式:

报名之后,通过联系顾问或者官方服务人员申请服务器资源,邮件:zhangyurui@pingcap.com。

  • 邮件标准:「队伍名称+申请服务器资源」。

  • 发件邮箱,请确保邮箱可以收到邮件,服务器信息会通过邮箱的方式发放给小组。

第二重礼包

价值 10 万 RMB TiDB Cloud 代金券,限时领取

为了感谢和回馈参赛者,我们除了基本奖金之外,还为大家准备了价值 10 万 RMB 的 TiDB Cloud 资源使用券。

TiDB 作为一款云原生数据库 (Cloud-Native Database),具备与云计算技术天然结合的能力,TiDB Cloud 产品将 TiDB 分布式数据处理能力与 Kubernetes 及容器等主流 PaaS 云计算技术充分结合,帮助用户实现业务支撑及运维管理目标。包括分布式数据库服务云化,按需交付,敏捷交付;支撑用户的微服务应用架构对后台动态数据处理的技术要求;基于多租户模式的混合负载 OLTP/OLAP 分布式数据处理能力交付;多租户之间的性能与安全隔离;云数据库服务的横向弹性伸缩;数据库服务的自动化运维等。

更多内容可以访问:https://en.pingcap.com/products/tidbcloud

分配规则:

  • 第一名:价值 6000 美元代金券
  • 第二名:价值 4500 美元代金券
  • 第三名:价值 2250 美元代金券
  • 第四名:价值 1500 美元代金券
  • 第五名:价值 750 美元代金券

第三重礼包

周边礼品轻松拿

我们给参赛队伍准备了丰富的周边礼品。只要大家按照规则在社区进行 「打卡」 即可获得。 打卡规则:从即日起至比赛结束,参赛小伙伴们可在本帖子下提交自己队伍的「参赛周报」或「个人学习笔记」即有机会获得社区周边哦~

参赛周报:

内容可包括当前正在进行的设计方案及 PR、进展小结、遇到的问题、下一步规划等等。

模板:

标题:队伍名+Team+日期+参赛周报,例:xyz Team 10.18-10.25 参赛周报

内容参考(也可自由发挥):

  • 当前正在进行的设计方案及 PR

    • 方案链接(进度:%)
    • PR 链接 (状态:review,develop,merged)
  • 具体分工:

  • A:XXX

  • B:XXX

  • C:XXX

  • 小结

  • 遇到的问题

  • 下一步规划

注:参赛周报提交时间为每周日 21:00 之前,内容周期为上周日至本周日的参赛进展。

个人参赛笔记:

标题:GitHub ID+参赛笔记,例:awe 参赛笔记

内容可以是参赛的学习心得、对赛事的体验反馈等

社区礼品大放送:

:star2: 不间断打卡王:

从即日起到比赛结束期间,每周提交参赛周报的队伍成员均可获得原版 Chaos Engineering 一本。(周报提交时间为每周日晚 21:00 前)

:star2: 优秀成员奖


比赛结束前一周我们会选出三篇最佳「参赛笔记」,作者将会获得原版 Database Internals 一本。

:star2: 参与奖

成功打卡参赛周报一次的 team 都可获得 TiDB 笔记本一册。

成功打卡参赛笔记一次的参赛成员都可获得 TiDB 魔方一个。

第四重礼包

知名企业,高端职位内推

参加比赛的朋友,如果你的技术打动了顾问、评委,如果你有意愿,我们将帮您直接内推给 TiDB 用户及生态中的合作伙伴。部分企业名单:

简历投递通道:talents@tidb.io

邮件主题:[TiDB 人才推荐] 意向公司-意向职位-个人姓名

部分职位介绍:

职位 1:知乎微服务平台开发工程师

岗位职责:

  1. 参与知乎的 Service Mesh 系统的架构设计与实现。

  2. 支持 Service Mesh 在业务落地,支撑起微服务的发现、治理、安全、流控全流程,对万亿级流量施加出色的掌控力。

  3. 解决服务网格迁移和运行过程中的疑难问题。

  4. 持续优化服务网格性能,提升系统稳定性。

任职要求:

  1. 掌握 Golang 语言开发。

  2. 熟悉 TCP/IP 原理,熟悉 Socket 网络编程,熟悉 Linux 操作系统原理。

  3. 对以 K8S 为核心的云原生技术栈应用及生态有深入的理解。

  4. 有较强的团队沟通协作能力,较强的逻辑分析和问题排查能力以及对新技术的追求精神。

  5. 要求有较强的项目协调推动能力,强烈的 Owner 意识,责任心及执行力。

具有以下条件者优先:

  1. 对开源服务网格技术(如 Istio、Envoy)有深入研究者。

  2. 有容器、K8S 或其他云平台运维经验者。

  3. 熟悉微服务、Mesh、Serverless、DevOps 等云原生技术。

职位 2:知乎大数据实时处理平台研发工程师

背景介绍:知乎数据架构团队正在围绕 Apache Flink 为核心打造大数据实时计算平台,为知乎内部业务提供批流融合的大数据计算能力,加入知乎数据架构团队共同探索新一代的大数据技术。

岗位职责:

  1. 参与 Apache Flink 的二次开发,建设 Flink 批流融合大数据计算引擎。

  2. 深入理解业务并与业务部门密切合作,基于 Apache Flink + Kubernetes 建设知乎的实时计算平台。

任职要求:

  1. 计算机、通信、数学等相关专业,具备良好的计算机技术基础。

  2. 熟悉 Java,具备扎实的数据结构和算法基础。

  3. 具备良好的沟通和团队协作能力,做事主动积极,有技术热情和激情面对挑战。

  4. 深入理解 Flink 或 Spark Streaming 原理者优先。

  5. 有 PB 级数据处理经验和实时计算平台开发经验者优先。

  6. 熟悉 Hadoop Ecosystem 例如 – Flink/Spark/Hadoop/Hive/Kafka/Pulsar 以及 Kubernetes,向社区贡献过代码者优先。

职位 3:某互联网公司数据库工程师

公司介绍:产业互联网方向。目前在企业 App 市场排名前三,仅次于钉钉和企业微信,细分市场排名第一。5 月刚完成由纪源资本和晨兴资本领投的 2000 万美金 B 轮融资,团队规模不到 50 人,大部分来自头条、网易、阿里、京东、百度、奇虎 360 等知名互联网公司,产品和技术氛围浓厚。总用户量 1000 万,正冲击 2000 万。

岗位职责:

  1. 负责数据库的性能优化及故障处理等;

  2. 数据库分库分表方案的设计、实施及数据迁移;

  3. 负责根据项目需求设计并制定数据库解决方案;

  4. 制定并不断完善数据库的运维规范、开发规范及安全规范。

任职要求:

  1. 计算机相关专业本科及以上学历,有三年以上 MySQL 管理经验;

  2. 熟悉 MySQL 数据库体系结构和工作原理;

  3. 熟悉常见存储引擎的原理、特点以及主从复制原理和实践;

  4. 熟练使用 shell 等脚本语言,及 Go、C/C++、JAVA 等编程语言中的一种或多种;

  5. 有使用 MongoDB、Redis 的经验优先考虑;

  6. 有使用数据库集群或分布式数据库(如 TiDB)经验优先考虑;

  7. 良好的沟通、协调能力,能在一定的压力下有效开展工作。

薪资待遇:20k-40k*14 起

工作地点:北京

职位 4:理想汽车高级 DBA

岗位职责:

1、负责整体数据库平台的建设、维护和治理;

2、对数据库进行容量规划,实现高可用、高性能、可扩展、安全的运行架构,提高业务的高可用性和容灾能力;

3、建立数据库运维体系以及自动化运维平台,负责相关标准、规范、流程的制定和落实;

4、负责数据业务建模、数据安全,为开发团队和安全团队提供技术支持;

5、负责泛存储(RDS、NoSQL、分布式文件存储等)的整体规划和管理;

6、负责 TiDB 以及周边工具的建设和维护。

任职资格:

1、计算机、数学等相关专业本科及以上学位,5 年以上的互联网 MySQL DBA 经验,特别优秀者可放宽条件;

2、熟悉 MySQL 数据库体系结构和工作原理,熟悉常用存储引擎的功能和特点;

3、熟悉业务数据建模理论并具有较强数据库设计能力;

4、熟悉 MySQL 数据库性能优化、SQL 调优技术,对高并发数据库的锁和事务隔离机制有深入的理解;

5、有大型电商网站数据库规划、分库分表实践经验,熟悉商品、订单、物流、支付等业务的优先考虑;

6、熟悉数据库安全技术,在数据库备份以及恢复实践上有较强的经验;

7、熟练掌握 Linux 以及 Shell、并至少掌握 Python/Java/GO 等一种主流开发语言且有实际项目开发经验;

8、对数据库技术有强烈兴趣,及时跟进各种最新技术和理论,熟悉云数据库以及分布式数据库;

9、熟悉分布式计算理论以及 NoSQL 技术,至少熟悉 Redis/ElasticSearch/MongonDB 其中一种;

10、有 TiDB 的维护经验优先;

11、积极乐观、诚信,能自我驱动,爱学习,有较强的语言表达和沟通能力。

职位 5:PingCAP Cloud 研发工程师

岗位职责:

  1. 开发基于 Kubernetes 的 TiDB Cloud 版自动化部署和运维工具;

  2. 开发基于 Kubernetes 的企业版 TiDB 自动化部署工具;

  3. 负责搭建基于 Kubernetes 和 TiDB 的企业级数据库云 DBaaS。

任职要求:

  1. 优秀的发现和解决问题能力,良好的沟通能力和团队合作精神;

  2. 三年以上相关领域开发经验,扎实的编程能力,熟悉 C/C++/Rust/Go/Python 中至少一种;

  3. 了解各种常见网络协议原理和虚拟化技术;

  4. 熟悉 Docker 容器原理;

  5. 熟练使用 Linux 和 Docker 容器;

  6. 了解 Ansible/SaltStack/Puppet/Terraform 等自动化运维工具;

  7. 对分布式系统有一定了解。

加分项:

  1. 为 Docker/Kubernetes 等容器相关知名开源项目贡献过代码;

  2. 自己手动部署过 Kubernetes 集群;

  3. 基于 Kubernetes 开发过 operator 管理有状态服务;

  4. 熟悉 gRPC 协议;

  5. 熟悉 AWS/GCP/Azure 命令行运维工具 awscli, gcloud, az, terraform 等。

职位 6:PingCAP 数据库测试工程师

岗位职责:

  1. 负责 TiDB 及周边产品的测试,包括但不限于功能测试、性能测试和稳定性测试;

  2. 深入理解数据库的用法,站在用户的视角测试数据库的功能,设计高覆盖率的测试用例;

  3. 产品设计讨论,测试计划制定,用例设计,测试执行和结果分析,Bug 复现和追踪等;

  4. 参与测试用例和测试脚本的开发。

任职要求:

  1. 1 年以上基础软件、中间件测试经验;

  2. 至少掌握一门脚本语言,或者精通 SQL;

  3. 思维缜密,逻辑严谨;

  4. 认真负责,有较强的问题定位和推动能力, 协调各个角色进行问题解决。

加分项:

  1. 有数据库测试经验;

  2. 熟练使用 Docker、K8s。

延长比赛时间

由于本次竞赛中疫情及十一假期的影响,组委会决定在目前时间基础上, 延期 10 个工作日, 让参赛者有更加充足的准备时间。

具体修改后的时间节点如下:

报名组队

9月17日 - 11月29日

实现任务与提交成果

9月17日 - 11月29日

组委会成果评估

11月30日 - 12月4日

现场答辩

12月5日

3 个赞

eatcosmos 参赛笔记
参赛日记-day3-tidb性能竞赛-tikv/pd#2950 - eatcosmos的个人空间 - OSCHINA - 中文开源技术交流社区

大家帮参考下这种进度有没有问题

1 个赞

页面好像丢失了,你得再看下。或者直接在 AskTUG 里发帖。

页面恢复了,看了一下,特别好。

1 个赞

米哟米哟小队打卡周记(dumpling issue#126) - 第2周: 提交了第1个patch, 性能提升约1/3

2 个赞

队伍:v587
目标:
利用workloade优化tidb性能
方式:
curl http://127.0.0.1:10080/debug/zip --output tidb_debug.zip
go tool pprof -http=":8082" heap.profile
perf record -g -p 30584
perf report -n --stdio
初步分析:

  1. Prepare/Execute操作引发耗时比较大(planner.Optimiz->Scan->runtime.newObject),并且引发gc
  2. 初步定位减少不同类型转换和gc上。

待解决:

目前还没根据pprof找到明确优化过程和函数。
对着一块感兴趣的一块研究阅读代码。

相关issue:

1 个赞

厉害,提高1/3是如何衡量的,问题如何定位的呢。

队伍: 石沉大海 [tiancaiamao, YKG, xiaodong-ji]
目标: 优化sysbench update index

目前focus: tidb唯一索引貌似要做两次network call到tikv, 第一次检查唯一性, 第二次commit.
导师的想法是: 先看看代码的运行流程是不是像之前设想的,在这里走了从 tikv 读数据的过程
https://github.com/pingcap/tidb/blob/master/table/tables/index.go#L234
再有就是,看看把这段代码不调用,对比一下 bench 是否有变化

  • [x] 部署集群 done
  • [ ] 先验证 https://github.com/pingcap/tidb/blob/master/table/tables/index.go#L234 不走这里是否省时间出来
  • [ ] 如果确实可以省时间, 看能否不做这次调用, 把这一步做成延迟检查的,也就是 update exec 先不检查唯一索引是否存在,而是创建一个假设 (k+1, c) 不存在. 等 commit 的时候再一起做,先检查假设,假设满足再去 commit
  • [ ] 接着这个issue 看看https://github.com/pingcap/tidb/issues/20484
1 个赞

队伍: 史莱克战队
目标: 优化 oltp read only

地址见: https://my.oschina.net/u/4219736/blog/4688173

1 个赞

队伍 Reminiscent 10.18-10.25 周报
目标:实现 loose index scan

本周进展:

  • 理解 loose index scan 的原理,调研实现方案
  • 和导师 yiding 对任务进行第一轮讨论
  • 开始阅读 TiDB 相关代码

下周进展:

  • 完成 design doc
  • 和导师进行讨论确定实现方案
  • 编码
2 个赞

队伍: 你米饭桶 10.18-10.25 周报
目标: 实现add index in parallel
本周进展:
重新定义subTask,将runner和status放入subTask 的recorgInfo中,避免对subTask过重,subTask仅负责分配和争抢。
将subTask的range拆分更加细致,以满足集群机器不断增多的情况下,让更多TiDB instace领到子任务,加快处理。
下周进展:
将初版代码更新到位,并且写好设计书。

1 个赞

标题:
tikv/pd #2950 Team+10.18-10.25+参赛周报

内容参考(也可自由发挥):

当前正在进行的设计方案及 PR

方案链接(进度:30%)理解老师视频讲解
PR 链接 (状态:review,develop,merged)空

具体分工:
目前还没有具体的分工,主要是分散先学习理解k8s 和 yugabyteDB Colocated tables

A:XXX
B:XXX
C:XXX

小结

遇到的问题:

  1. 协作信息不同步
  2. PD源码还没看过
  3. 设计文档还没写,中间天数过多

下一步规划

  1. 【腾讯文档】tikv-pd-2950-文档
    腾讯文档
  2. yugabyteDB和k8s的设计思路整合到pd的亲和度设计文档中。
  3. 应该部署了运行下场景代码,这样感受更直观。可以考虑sysbench_update_index。
  4. 把性能课程视频看完、注释PD源码 placement rule、balance schedule。

注:参赛周报提交时间为每周日 21:00 之前,内容周期为上周日至本周日的参赛进展。

标题:GitHub ID+参赛笔记,例:awe 参赛笔记

内容可以是参赛的学习心得、对赛事的体验反馈等
参赛日记day17-tidb性能竞赛-tikv/pd#2950 - eatcosmos的个人空间 - OSCHINA - 中文开源技术交流社区
希望组委组织中途定期组织些直播分享啊,可以是同学或者老师的,同学的话分享各自的阶段实验情况。

1 个赞

队伍: 史莱克战队
目标: 优化 oltp read only

地址见: TiDB 性能竞赛 10.26-10.30

1 个赞

队伍: v587
本周汇报: 【TiDB 高性能比赛队伍打卡】 Week 2020/10/26~2020/11/1 队伍 v587

1 个赞

队伍 Reminiscent 10.26-11.1 周报
目标:实现 loose index scan

本周进展:

  • 阅读《源码阅读》系列文章,熟悉代码原理和结构
  • 查找其他数据库的相关资料,书写设计文档
  • 熟悉代码,思考设计方案
1 个赞

标题:
tikv/pd #2950 Team+10.26-11.1+参赛周报

内容参考(也可自由发挥):

当前正在进行的设计方案及 PR

方案链接(进度:40%)写了设计草稿,不过没有准确回答关键问题,老师给了点评
PR 链接 (状态:review,develop,merged)空

具体分工:
暂时未分工,提议10.30号开了次全体组会,整理了设计草稿,主要参考k8s
A:XXX
B:XXX
C:XXX

小结

遇到的问题:

  1. 没有定期开会,发现全体开会能提高效率,即使大家对问题不是很理解,这种情况下交流依然可以提高进度,一周一次次应该差不多。
  2. 应该提前写文档接受反馈,目前可能是对isssue需要解决的问题还没有真正理解。

下一步规划

  1. 理解老师的点评文档,讨论问题关键,继续迭代。
  2. 参考源码理解。

注:参赛周报提交时间为每周日 21:00 之前,内容周期为上周日至本周日的参赛进展。

1 个赞

标题:稳如狗的HelloKitty Team 10.25-11.1 参赛周报

内容参考(也可自由发挥):

  • 当前正在进行的设计方案及 PR
  • 小结
    • 理解了point get的流程,梳理了整体解析sql的机制和初始化的细节问题
  • 遇到的问题
    • 目前对于测试规范有一些问题,但是目前得到了解
  • 下一步规划
    • 合入主线,address comment
2 个赞