This Week on TiDB 20210822
欢迎来到新一期的 This Week on TiDB 栏目!TiDB 是一个开源的 MySQL 协议兼容的分布式数据库,支持 HTAP 即混合事务和分析处理。这个栏目是 TiDB 开发进展和社区新闻的非官方周刊窗口,如果你想将自己看到或者正在做的工作也通过这个窗口发布,欢迎私信联系我或者在 weekly 仓库中提出。如果你有意了解或加入 TiDB 社区,TiDB 社区也非常欢迎贡献者。
本周主要关注三个事情。
第一个,关于 TiDB 和 TiKV 的开发计划。
目前我正在 TiDB Internals 论坛上整理 TiDB Improvement Proposals 的大图,以期将 TiDB 的发展方向和关注的开发内容做更好的同步,告诉每一位 contributor 哪些工作正在进行,TiDB 正在往哪个方向上前进。
目前,已经整理出的工作里有四项工作正待讨论或参与开发。
Call for contributors: Placement Rules in SQL
TiDB 的资深开发者 @morgo 发起了 Placement Rules 的 SQL 接口功能开发的征集信,期待有感兴趣的同学加入到开发队伍当中来。这个功能能够帮助 TiDB 通过细致调节 TiKV regions 的分布来优化数据库整体性能。如果对分布式系统有一定的了解,想要深入参与到一个实用功能的开发,这个提案不可错过。如果对背景尚有不了解的地方,可以在链接的帖子下或者链接过去的具体 issue 下交流,或者首先通过 review 的形式参与到功能开发中来。
Call for help & discuss: support loose index scan for TiDB
TiDB 的 Committer @ichn-hu 发起的支持 loose index scan 的提案。这是一种在特定的数据分布下能够大幅提高扫表性能的执行算子,可以点击链接了解相关技术细节。
Call for help: refactoring execution engine on unistore
同样是 @ichn-hu 发起的提案,想要把 TiDB 建立在 unistore 上的执行引擎代码做重构。目前 TiDB 有一套 TiKV 的执行引擎,一套 TiDB 计算节点上做 final aggregation 等计算的执行引擎,还有一套内嵌在 TiDB 内基于 unistore 的执行引擎。
这些代码的模型不匹配已经导致工程难度和计算结果一致性出现了一系列问题。这次重构或许能在大方向上改善执行引擎行为的一致性,为后续执行引擎公共逻辑抽出做准备。
proposal: remove TiDB-to-TiDB RPC from tikv client
TiDB 的元老级开发者 @disksing 发起的提案,意图把早期做在 TiKV Client 上的 TiDB 之间的通信逻辑以解耦的方式重新实现。另一位资深开发者 @crazycs520 愿意作为 mentor 指导这个项目。但是他们的时间都不足以支持深度投入到项目当中驱动项目完全落地。
这个工作目的明确,改法比较有眉目。如果想在 TiDB 做有一定按难度的工作的同学,可以了解一下背景或者在 issue 下提问。这个工作我个人评估不太需要数据库背景,只要对分布式系统节点之间 RPC 有初步的了解,剩下的主要时间应该花费在梳理 TiDB 代码和设计一个用户无感知的重构方案上。
第二个,关于 TiDB 和 TiKV 的内核开发者指南。
本周有两方面的进展,一个是 TiDB Dev Guide 有新的待 Review 章节出现,欢迎各位同学阅读并留下意见;另一个是 TiKV Dev Guide 开始分拆任务推进,对 TiKV 有相关了解的同学可以参与撰写,对 TiKV 感兴趣的同学也可以参与 Review。
docs: add overview of planner package
优化器专家 @eurekaka 撰写的 TiDB Planner 概述,行文流畅,是市面上极少见的查询优化的入门材料。
前面提到的 @morgo 大佬撰写的 TiDB Plugin 框架的介绍。
TiDB 的活跃贡献者 @mjonss 撰写的 SQL 语句的生命周期,从语句的角度讲解 SQL 执行涉及的各个模块。
understanding-tidb: add introduction for statistics
另一位优化器专家 @winoros 介绍 TiDB 是如何设计和实现统计信息模块的。
我借用 TiKV Deep Dive 引文撰写的 Understanding TiKV 引文。
关于内核开发者指南与先前源码阅读系列以及 TiKV Deep Dive 文档的关系,我和 @xxchan 有过一个讨论,大意是继承并发展,详细可看原 issue 了解。
What’s the relationship between tidb-dev-guide and tidb-source-code-reading?
第三个,关于 TiDB 和 TiKV 的生态发展。
JuiceFS v0.16 发布,支持 TiKV 元数据引擎!
TiDB Operator v1.2.1 was officially released on August 18 2021