欢迎来到新一期的 This Week on TiDB 栏目!TiDB 是一个开源的 MySQL 协议兼容的分布式数据库,支持混合事务和分析处理( HTAP )。这个栏目是 TiDB 开发进展和社区新闻的非官方周刊窗口,如果你想将自己看到或者正在做的工作也通过这个窗口发布,欢迎私信联系我或者在 weekly 仓库中提出。如果你有意了解或加入 TiDB 社区,TiDB 社区也非常欢迎贡献者。
本周首先介绍开发者社区当中产生的博文和视频新稿。
User Generate Content
1.深入TiDB:初见TiDB - luozhiyun`s Blogwww.luozhiyun.com
2.深入TiDB:入口代码分析及调试 TiDB - luozhiyun`s Blogwww.luozhiyun.com
@devYun 在接触 TiDB 代码的过程里发布了架构分析和源码阅读的博客文章,行文流畅,配图好看,推荐给各位对 TiDB 感兴趣想了解的同学。
如何参与改善 TiDB 代码质量?我是说…一分钟成为 TiDB 贡献者。
我在 devcon 期间忙里偷闲录的一个视频,介绍了过去两次 weekly 都有提到的 Tracking issue for restructure tests 的工作具体应该怎么参与。
其实我不太想把它做成类似向量化表达式那样的一个一次性活动,因为测试是深入到整个 TiDB 代码架构的,我希望和其他 contributor 一起,从简单的 util
实用函数切入,逐步转到 TiDB 的核心逻辑里,在这个过程中掌握 TiDB 的设计理念和执行逻辑,为新一代分布式数据库真的做出显著的贡献。
本周是 v5.2 开发的第四周,本周讲讲上周跳过的 SQL Engine 的其他工作。
TiDB v5.2 Planning
Support temporary tablegithub.com
临时表功能的第二阶段,local temporary table 正在开发中,@zhaoxugang 也加入到开发团队中开始补齐在 DDL 方面的工作。
这个工作基本是按照 tracking issue 模式组织起来的,感兴趣的同学可以从 tracking issue 关注到项目的进展。目前正在推进 DDL 和 DML 的实现工作,以及部分跟事务逻辑相关的对接工作。与其他功能相关的兼容性考虑和迁移 MySQL 的临时表测试的工作还是空闲状态,如果感兴趣可以看看能否成为 TiDB 临时表功能的实现者之一。
Expression index GA · Issue #25150 · pingcap/tidbgithub.com
@wjhuang2016 主导的表达式索引 GA 的工作,旨在补全表达式索引的完整功能并撰写功能 GA 所需要的集成测试。
其他 SQL Engine 在上周没有包含的工作,目前看不出什么进展,不知道是有原型尝试还是暂时搁置开发。
GBK character set support in TiDB · Issue #25152 · pingcap/tidbgithub.com
Tracking issue 上有一个到 Google Docs 的讨论中的设计稿。
Improve ORM Compatibilitygithub.com
很古老的一个 tracking issue 了。实际这个 sprint 会动手做的 ORM 整合工作有限,希望能有更新将第一阶段的计划发布出来。如果你关心 TiDB 在某个 ORM 上的兼容性,也可以在 tracking issue 下评论。
proposal: remove TiDB-to-TiDB RPC from tikv client · Issue #25808 · pingcap/tidbgithub.com
@disksing @crazycs520 有意指导这个技术债偿还项目,但是暂无实际的开发者做具体的工作。
类似于测试迁移,代码重构其实是每一个开发者了解一个软件最好的切入点。如果你对 TiDB 和 TiDB 以及 TiDB 和 TiKV 之间的交互感兴趣,欢迎在这个 issue 下交流重构的思路。如果能够最终完成重构,相信你的能力也就完全够得上 committer 的水准了。
Development
我在 TiDB Development Guide 项目上发布了一篇新内容的 PR,旨在阐述 TiDB 的发布周期和发布方式,以及 TiDB 开发周期的相关概念,例如 sprint 和 code freeze 等等。同时,介绍了 feature 粒度的项目管理和 feature 开发的最佳实践。
Forum
Discuss: Maintain cycle dependency breaker togetherinternals.tidb.io
在迁移 TiDB 测试的时候我顺手提的一个问题。TiDB 在历史上引入过多个 hack 手段来解决循环依赖的问题,其实每个循环依赖都潜在的可能是一个架构问题。
这个讨论旨在发现目前 TiDB 所有的循环依赖,并把它们挪到一个独立的位置维护起来,以提高问题的可见性而不是把循环依赖掩埋在茫茫多的代码当中数以年记遗留下来。
Rewrite PD in Rustinternals.tidb.io
不多说了,点进去看,懂得都懂。
IT’S COMING.