关于tidb:挑战基础软件皇冠明珠TiDB-性能竞赛战果揭晓

32次阅读

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

2020 年 12 月 5 日,TiDB 性能挑战赛完满落下帷幕。本次性能挑战赛次要围绕”固定 Workload 优化”和“解决高难度性能优化 Issue”两类赛题来进行,旨在通过具体的开发与我的项目实战,激励更多的开发者参加到 TiDB 整体的我的项目设计及倒退路线中,晋升本身技术实力,实现技术与我的项目翻新。

此次参赛对象包含:TiDB 客户、开发者、合作伙伴等,共 17 支队伍报名参赛,较量最终以优化成绩(性能晋升百分比)、小组 PR 总分(小组开发的相干代码被胜利合并到我的项目主分支提交对应比赛 PR 取得的积分)和现场问难完成度进行排名。最终有 7 组队伍进入决赛,在历时 3 个小时的缓和问难后,评比出前三名以及优秀奖,共计颁发 12 万元现金处分,以及价值 16500 美元的 TiDB Cloud 资源处分,比赛最终排名如下:

在推出的比赛打卡流动中,LGTMV587、X-Team、史莱克战队始终继续更新我的项目进度,在社区打卡、提交周报,被评为“不间断打卡王”,取得了技术书籍《Chaos Enginerring》或《Database Internals》的处分。还有的小伙伴甚至都没有接触过 Rust,从头开始学起;还有的小伙伴通过本次性能比赛,取得了新的工作机会。

本届赛事在赛题设计方面融入了前沿的技术与利用方向,对数据库性能晋升有极高的要求,但问难我的项目的品质却远超预期。正如本次流动的发起人之一、PingCAP 社区生态事业部负责人姚维所说:“数据库的性能调优始终被誉为‘皇冠上的明珠’,是该畛域最高技术水平的代表。所以最开始发动我的项目的时候也是没什么底的,但最初大家的成绩远远超出我的预期!”

优良我的项目展现

让咱们来看下这些优良团队的我的项目展现,包含他们的我的项目简介和参赛感触,看看哪些 idea 也能给你带来启发~

第一名战队:huang-b

Issue 链接

https://github.com/pingcap/tidb/issues/14441https://github.com/pingcap/tidb/issues/206

我的项目简介

huang-b 战队抉择的是一个高难度 issue。优化思路是应用 Shuffle 算子来实现 MergeJoin 算子和 Stream Aggregation 算子的并行化,在数据源无序的场景下,获得显著的性能晋升。后续将会思考如何对现有的 Shuffle 算子进行革新,打消其中存在的性能瓶颈,以期进一步晋升基于 Shuffle 的一系列并行算子的性能。其中,Shuffle Merge Join 的优化成果,最好的状况下 2 个 worker 的运算工夫仅为串行版本的 56.5%。

获奖感言

首先感激 PingCAP 能举办这么有意义的较量,这是我第一次应用 Go 语言,也是第一次参加开源我的项目。报名参赛的时候也很狐疑能不能实现 PR,侥幸的是遇到了厉害的参谋和靠谱的队友,给了我很多领导和帮忙。这是一个很好的开始,心愿当前在 TiDB 社区中能和大家一起实现更多有意思的事件。

第二名战队:稳如狗的 HelloKitty

Issue 链接

https://github.com/pingcap/tidb/issues/20231

我的项目简介

在分布式数据库 TiDB 中如何更好的进步查问的吞吐量和晋升查问的性能始终是个难题。咱们特意筛选了 PointGet 来作为突破口来优化上述提到的性能。优化计划就是通过减少 Cache 层来缩小 RPC 的数量,从而晋升整体的性能。将来会增加反对 IN 的缓存操作,以及大量写入的时候也能从缓存中查问数据。

还有一个小插曲,咱们做 Benchmark 测试的时候,发现了表即便是在 lock 状态,update 等语句也能够失常执行的 bug。咱们当天整顿了一下问题并且提出了 Issue,PingCAP 的官网很及时地做出了响应,并且在接下来的几天内就解决了问题并且减少了对应的测试用例,值得点赞。

获奖感言

最开始是抱着学习 TiDB 的心态加入了 B 站的学习视频,跟着课程提交了几次 PR,突然发现 PingCAP 还举办了 TiDB 性能比赛,并且每个赛题都会配置相应的 mentor,这是学习并且相熟 TiDB 的好机会。衷心感谢 PingCAP 给大家提供了这么有价值的机会。在这次 2 个月的短跑中也要感激 Reviewers(crazycs520,breeswish,jackysp,coocood 等)不遗余力的意见和倡议,还有 mentor(jackysp)的悉心领导,帮忙咱们把控方向,也感激金泽和卓群提供了一些难点的倡议。非常感谢各位经营小伙伴(汽水等)的揭示和帮忙让咱们这次顺利地 ” 享受 ” 了这次比赛,体验很赞。

第三名战队:米呦米呦

Issue 链接

https://github.com/pingcap/dumpling/issues/126

我的项目简介

米呦米呦战队抉择的题目也是一个高难度 Issue。Dumpling 是 PingCAP 应用 Go 开发的对数据库进行数据导出的工具,但目前跟 C 语言开发的 mydumper 工具相比性能有些差距。本次我的项目中,咱们通过性能优化伎俩,在并发条件下,将 Dumpling 性能晋升超过 100%,达到和 mydumper 并驾齐驱的水平。

获奖感言

因为我米最近开始推动应用 TiDB 计划,咱们也开始关注并加入了这次较量。在这一个多月的工夫里,常常和队友在上班后和周末被动留在公司钻研 Issue,对问题瓶颈的了解逐步深刻,并且在多个方面进行摸索,播种颇多。导师也认真负责,在咱们遇到问题的时候,踊跃的交换并一起剖析。较量体验很不错,感激 PingCAP 官网组织,也让咱们在公司内发展 TiDB 工作博得一个丑陋的开局,心愿当前再接再厉,一起将 NewSQL 数据库发扬光大,为国争光。

优良战队:anglenet

Issue 链接

https://github.com/tikv/tikv/issues/8635

我的项目简介

zstd 提供了一种压缩形式,是基于字典进行压缩,能够在一些场景取得更好的压缩率。咱们队伍在做的次要是在 Titan 这个我的项目中,提供 blob 文件的字典压缩选项。波及到 Titan,Rust-RocksDB 和 TiKV 三个我的项目。目前的状态是 Titan 局部和 Rust-RocksDB 局部都曾经实现实现,TiKV 局部再加一些适配即可。

将来瞻望

还须要进一步做的事件:一是实现 Titan 局部开启字典压缩后的 Benchmark,测试不同场景下的压缩成果;另外,搭建集群,对集群开启 Titan 个性,应用字典压缩,测试不同场景下的压缩成果。

优良战队:杳无音信

Issue 链接

https://github.com/pingcap/tidb/issues/20484

我的项目简介

sysbench-Oltp\_Update\_Index 我的项目次要是为了优化 Sysbench 压测工具中的更新索引列场景。尤其在索引为惟一索引的状况下,每次更新时会回表校验插入值是否违反惟一束缚,从而产生较高的网络提早。

所以,该项目标第一切入点就是打消一部分网络开销,从而进步更新索引的响应工夫,以进步数据库整体性能。落实到具体实现是将校验推到了 commit 操作时才做,从而缩小了一半的回表次数,缩小了网络耗费。

将来瞻望

传统的单机数据库优化点次要集中在 CPU、内存、IO 的优化上,分布式数据库相较于单机数据库来说网络优化至关重要,而且网络优化空间较大、成果显著,将来可重点关注网络优化相干点。

最初借用挑战赛评委、伴鱼基础架构负责人徐成选给各位选手的寄语:“很期待大家的 PR 会跑在成千盈百的公司的服务器上,这个过程是十分美好的,也很期待将来会用上其中的一些性能。”

High Performance TiDB

毕业后果展现

作为性能比赛的“超强助攻”,High Performance TiDB 课程用权威、优质的学习内容吸引了成千盈百的小伙伴参加报名,历经 3 个月的高阶常识输出,共有 6 位优良的小伙伴实现了重重考验,用一个个高质量的课程作业展现了本人优良的学习能力,达到了毕业要求,成为了首批结业的高性能人才,在成为 TiDB Committer 的路线上迈出了松软的一步。再次祝贺这些学霸们!

High Performance 课程首批结业名单

为了更多感兴趣的同学参加到学习中来,也为了同学们取得更好的学习体验,咱们将 High Performance TiDB 课程的学习主阵地转移到了 PingCAP University 官网。同学们能够自在观看视频,并且通过视频下方的课程详情获取更多的文档类学习材料,同时每一节课程咱们都有筹备【课后作业】,帮忙大家进行实际,进步本人入手解决性能问题和优化零碎的能力。

咱们欢送新同学挑战自我,学习更多分布式系统畛域常识,同时也欢送因为种种原因没能如期毕业的 High Performance TiDB 课程学习者持续挑战,只有你学习完课程,并且实现课后作业,累积到 3000 积分,就能取得新一轮的毕业资格!

更多评委寄语:

知乎技术平台负责人孙晓光:“看到这么多社区小伙伴一块去推动 TiDB 的演进,并在很短的工夫内达到了很好的成果,我对 TiDB、TiDB 社区还有这些年轻人充斥了期待!”

安全科技数据库产品部门总经理汪洋:“这是十分有意义的流动,看到这些小组这两个月始终在致力,对这个我的项目充斥了激情,直到前一天早晨还有团队在调试,为第二天的问难做筹备。尽管有点遗憾,安全科技的团队没有获奖,但我看到了大家的激情和大家对 TiDB 的酷爱。每个参赛团队都有本人的创意,都十分棒,置信 TiDB 的倒退会越来越好。”

PingCAP Distributed Storage Team Manager 张金鹏:“首先祝贺这些获奖选手,没有获奖的也不必泄气,大家的背景不一样,对 TiDB 的理解水平也不一样,大家都能够把这次比赛作为一个新的终点,持续施展大家的激情以及对技术的酷爱,一起把 TiDB 我的项目建设得越来越好,让越来越多的公司和业务享受到大家所做的奉献。”

还没“玩”够怎么办?

还没“玩”够的小伙伴们留神啦,一年一度的 TiDB Hackathon 曾经正式启动!有一些队伍也会把他们未实现的我的项目在 Hackathon 上持续实现,对这些我的项目的最终成绩感兴趣的小伙伴也肯定要关注哦!

本届大赛 Hackathon 的主题为「∞」,参赛我的项目可围绕 TiDB 组件或联合 TiDB 生态周边(TiKV、ChaosMesh® 等)进行创作,用最硬核的技术和最炸裂的创意去发明有限可能。共计设立高达 30 万元 的现金大奖,以及 Switch、LOFREE 洛斐 DOT 圆点蓝牙机械键盘等实物处分。???? 一等奖(1 支队伍):¥ 100,000???? 二等奖(2 支队伍):¥ 60,000???? 三等奖(2 支队伍):¥ 20,000???? PingCAP CTO 特别奖(1 支队伍):Switch + 健身环✨ 赞助商特地奖项:CNCF Special Award —— Scholarships to KubeCon 2021✨ 最佳人气奖(1 支队伍,由现场观众投票):LOFREE 洛斐 DOT 圆点蓝牙机械键盘✨ 最终 20 强:Divoom 点音 Evo 蓝牙音箱、CNCF 商店 50 美元礼券等

目前,Hackathon 曾经面向寰球的数据库爱好者、TiDB 用户、TiDB 生态合作伙伴及集体开发者凋谢报名,快来退出 TiDB Hackathon 2020,开启一段精彩的代码旅程!

点击链接填写报名信息,立刻组队报名!

正文完
 0