赛车计划2和3哪个好_宾汉姆3-1逆转晋级冠军组

赛车计划2和3哪个好_宾汉姆3-1逆转晋级冠军组作者:Yao Wei 11 月初我们开启了一项社区新活动「TiDB 性能挑战赛」(Performance Challenge Program,简称 PCP),这项积分赛将持续 3 个月,选手将完成一…

作者:Yao Wei

11 月初我们开启了一项社区新活动「TiDB 性能挑战赛」(Performance Challenge Program,简称 PCP),这项积分赛将持续 3 个月,选手将完成一系列难度不同的任务,赢得相应的积分。目前赛程刚刚过去三分之一,已经取得了十分耀眼的阶段性成果:

  • 过去一个月共吸引了来自社区的 156 位贡献者,包括:
    • 14 支参赛队伍。
    • 110 位个人参赛者。
  • 参赛选手们总共完成了 147 个挑战任务,这些成果已经逐步落地到 TiDB 产品中:
    • TiDB 表达式框架中完成了 70+ 个函数的向量化。
    • TiKV 协处理器中完成了 40+ 个函数的向量化,其中 34 个已在 TiDB 侧新开启了下推,让下推的函数计算速度大幅上升。

截至发稿时积分排行榜前五名的参赛选手 / Team 分别是:. team、ekalinin、mmyj、AerysNan、js00070。*

其中 .* team 表现尤为优异,他们已经拿到了 4150 积分,在排行榜上遥遥领先。而来自俄罗斯的个人参赛者 ekalinin 获得了 1450 积分,是目前积分最高的个人参赛者,他共提交了 17 个任务,目前完成了 12 个,其中包含一个 Medium 难度的任务。​

赛车计划2和3哪个好_宾汉姆3-1逆转晋级冠军组

<center>积分排行榜</center>

“因为对 Rust 感兴趣参加了这次 PCP,能够亲自改善一个自己会使用的工具的感受非常令人愉悦,项目的文档,代码结构和社区都非常友好,带来了很强的正反馈。”

—— Renkai(PCP 个人参赛者)

“参加 PCP 是很有趣的体验,既能深度参与开源项目,又能在这个过程中学到很多数据库和 Rust 的知识,还能通过获得积分兑换奖励,导师的指导非常耐心,希望能有更多的人参与进这个项目来。”

—— TennyZhuang(PCP 团队参赛者 .* team 成员)

“I like Go & databases. TiDB has both of them. So I just decided to deep dive into internals of the TiDB and check if I can be useful for it. I”m a big fan of open source. I have a couple of open sourced projects and I understand the importance of the contribution into open source projects.

I feel great after joining the PCP and TiDB community! Good docs, a lot of tests, well written code :)”

—— ekalinin(PCP 个人参赛者,来自俄罗斯)

下面让我们来看看过去的一个月里大家在「性能提升」方面有哪些突破性的战绩吧!

1. IN() 函数性能提升 150+ 倍

相关 PR 链接,作者:TennyZhuang( .* team )

赛车计划2和3哪个好_宾汉姆3-1逆转晋级冠军组

IN() 是一个大家用的很多的 SQL 内置函数。这个 PR 使得 IN() 内置函数的性能有了复杂度级别的提升,从 O(N) 提升到 O(1),如上图所示。这对于 IN() 函数中有很多参数的情况能有很大的帮助,例如在以下 1000 个参数场景中性能提升可达 150+ 倍:

CREATE TABLE `foo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `c` char(100),
  PRIMARY KEY (`id`)
);

select * from foo where c in (
"271a76b46731d9", "a7a69f89d4b32e", "8d969b6b76f6f4", "8ea63d5c33dabe", "4c5dabf74df99f", "897ab55a20218b", "80d73f4331a342", "a4747627a2e05d",
"e20beca46373", "4dbc295621b4c5", "79ab1ea844c293", "86d75b32f6b1b8", "7fd827adcc7cd0", "bf26b53dd73dd",
...
);

代码100分

大家不要觉得这么多参数是很少见的情况,实际上我们已经遇到多个 TiDB 用户给 IN() 内置函数传递多达几千个参数的场景。

TennyZhuang( .* team 成员)成功通过这个 PR 获得了 2100 积分,这个是目前选手获得的单个贡献最高积分。不过这还只是 Medium 难度的任务,我们还有许多更高积分奖励的 Hard 级别任务等待大家来挑战。

2. LIKE() 函数性能指数级提升

相关 PR 链接,作者:TennyZhuang( .* team 成员)

赛车计划2和3哪个好_宾汉姆3-1逆转晋级冠军组

这个 PR 通过修改了算法,实现了对 LIKE() 内置函数性能的指数级别改进,从 O(2^N) 优化到 O(N)。在优化前,仅仅是 6 个通配符就能将单行计算性能降低到秒级,对性能可以造成非常严重的影响。上图直观展示了这个 PR 带来的性能提升(纵坐标是对数坐标)。TennyZhuang( .* team 成员)通过这个 PR 获得了 1500 积分。

3. 全面提升 TPC-H 性能

相关 PR 链接,作者:Renkai

TPC-H 是目前业界通用的衡量数据库分析处理能力的基准测试。这个任务通过减少内存复制的方式,全面提升了 TPC-H 各查询 5%~14% 的耗时,可以说是非常令人惊艳的结果了,以下是对比结果:

赛车计划2和3哪个好_宾汉姆3-1逆转晋级冠军组

下表加红加粗部分每个语句提升的百分比。

赛车计划2和3哪个好_宾汉姆3-1逆转晋级冠军组

更多有意思的任务

目前还有更多更有挑战,更高积分的任务在等待着大家来挑战:

  • PCP-27:通过跳过 RocksDB Compaction 阶段的某些 SST,以减少 RocksDB 写放大(积分:3600)。

  • PCP-26:优化 PD 获取 TSO 的性能 (积分:20000)。

  • PCP-10 :优化宽表情况下的查询效率(积分:3000)。

  • ……

当前开放的任务列表可分别在 TiDB TasksTiKV TasksPD Tasks 中找到。

更多参赛详情,可以进入 官方网站 查看。

致谢

这里也需要对各个 Special Interest Group(SIG)的 Tech Lead 以及 Mentor 表达感谢,他们为 PCP 完成了出题以及指导参赛者们完成了这些令人印象深刻的挑战:

TiDB 性能挑战赛 由 PingCAP 发起,旨在激发社区创造性,参赛选手可以通过完成一系列的任务提升 TiDB 产品的性能。赛事于 2019 年 11 月 4 日正式开启,将持续 3 个月,比赛任务分为三个难度:Easy、Medium、Hard,不同难度对应不同积分,参赛选手获得的积分可以兑换 TiDB 限量周边礼品等丰富的奖励。

原文阅读https://pingcap.com/blog-cn/pcp-report-201911/

赛车计划2和3哪个好_宾汉姆3-1逆转晋级冠军组

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10560.html

(0)
上一篇 2022-12-25
下一篇 2022-12-25

相关推荐

  • 一致性读 当前读_update和upgrade

    一致性读 当前读_update和upgrade作者:赵黎明 爱可生 MySQL DBA 团队成员,Oracle 10g OCM,MySQL 5.7 OCP,擅长数据库性能问题诊断、事务与锁问题的分析等,负责处理客户 MySQL 及我司自研 DM…

    2023-03-15
    150
  • Python工程师:从import开始的编程生活

    Python工程师:从import开始的编程生活Python是一个功能强大的编程语言,由于其简洁的语法和丰富的开源库,在多个领域都有广泛的应用。下面我们将介绍Python在以下四个领域的应用:

    2024-07-29
    29
  • MySQL优化之慢查询日志「终于解决」

    MySQL优化之慢查询日志「终于解决」慢查询日志概述 所谓慢查询日志,就是用于记录MySQL中响应时间超过设定阈值的SQL语句,通过打开慢查询开关,MySQL会将大于阈值的SQL记录在日志中,以便于分析性能。 慢查询日志选项默认是关闭的,

    2023-02-12
    166
  • ETL工具之kettle的使用之异构数据抽取MongoDB——>DB2「终于解决」

    ETL工具之kettle的使用之异构数据抽取MongoDB——>DB2「终于解决」环境简介: 数据库版本:MongoDB 5.0.4 (查询语句:db.version(); ); DB2 9.7 ; kettle版本: 9.2 实现目标:将MongoDB(异构化数据) 抽取到DB2

    2023-05-02
    147
  • 用Python构建强大的对象导向程序

    用Python构建强大的对象导向程序Python是一种动态、解释性、高级编程语言,被广泛用于数据科学、机器学习、Web应用开发等领域。Python的强大之处在于它提供了多种编程风格,其中面向对象编程(Object Oriented Programming,简称OOP)是最为流行且有效的方式之一。本文旨在探讨如何用Python构建强大的对象导向程序,分别从以下几个方面展开。

    2024-02-12
    88
  • Python中Callable的概念与实现

    Python中Callable的概念与实现在Python的世界中,我们常常会听到关于callable的概念。那么”callable”是什么呢?在Python中,callable是指一种特殊的对象,这种对象可以像函数一样”callable”或被调用,例如Python中的函数、方法、类以及实现了特殊方法__call__的对象。在本文中,我们将会详细介绍callable的概念、使用场景以及具体实现等方面的内容。

    2024-04-20
    71
  • Linux安装Python

    Linux安装Python在安装Python之前,需要准备好以下工具:

    2024-09-02
    26
  • Python参数解析器应用实例

    Python参数解析器应用实例Python是一门非常强大的编程语言,但是如果不能提高工作效率,那么Python也无法发挥出它的全部威力。在Python中,参数解析器(Argument Parser)是一个非常实用也非常重要的模块。本文将通过实例介绍Python参数解析器的功能和使用方法。

    2024-03-21
    87

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注