TiDB Weekly|This Week on TiDB 20210801

作者:@tison

欢迎来到新一期的 This Week on TiDB 栏目!TiDB 是一个开源的 MySQL 协议兼容的分布式数据库,支持 HTAP 即混合事务和分析处理。这个栏目是 TiDB 开发进展和社区新闻的非官方周刊窗口,如果你想将自己看到或者正在做的工作也通过这个窗口发布,欢迎私信联系我或者在 weekly 仓库中提出。如果你有意了解或加入 TiDB 社区,TiDB 社区也非常欢迎贡献者。

https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/introduction.html

https://github.com/tisonkun/weekly

上周末我发布了一篇关于 TiDB 开发者社区为什么要建立论坛的文章,本周的 Weekly 也围绕论坛上的主题来展开。

[Forum]

来自小米的两位贡献者 @sylzd@yuqi1129 在论坛上发布了自我介绍主题,他们都是 TiDB 项目活跃的贡献者。

TiDB 开发者社区欢迎贡献者在论坛上做自我介绍或寻求帮助,更明确地自我定位和展示有助于功能开发小组和合适的贡献者合作,也有助于相同领域的贡献者相互识别和深入交流。不过如果真的有大量自我介绍的文章,可能真得像迟先生在第二个主题里建议的一样开一个专门的目录了。

论坛上也欢迎关于 TiDB 生态项目的技术设计和代码实现相关的主题。

我在主导迁移测试框架的工作的时候,偶然发现了 executor 模块测试被忽略的一系列 goroutine 泄露问题,超过 35 个不同类型的 goroutine 泄露就算被忽略也总不太对劲。在 @tiancaiamao 的帮助下大致厘清了其中部分是由于 domain 或 store 资源未释放导致的问题,希望在后续迁移 executor 测试的时候顺带解决这部分问题。

@wang 刚开始阅读 PD 源码的时候对不同组件的定位以及各自的 Client 承担什么职责搞不太清楚,我和 @disksing 对具体问题做了回答。

论坛还能作为提案的前哨站,也就是类似 Rust 社区 Pre-RFC 的作用。正式发出提案在形式上与一个普通的 PR 无异,很容易被海量的具体工作项的 PR 给掩埋了。同时,提案刚有主意的时候未必很清楚,按照正式的流程完善细节可能有不必要的形式开销。在论坛上针对性的发起讨论,能够在早期吸引到有相同兴趣的开发关注,讨论,以至于最终一起落地。

TiKV Development Guide 是一个类似 TiDB Development Guide 的项目。不同点在于开发语言不同和软件领域差异带来的环境设置,代码贡献最佳实践,以及原理解析方面的差异。这个提案由我提出,目前 @andylokandy 有意愿参与。希望在近一个月我们能完成一个里程碑有初步可读的内容输出。

BR 合并到 TiDB 是一个动静比较大的架构调整,解决了长期以来的循环依赖问题中的一个。目前发起人 @3pointer 正在积极的做集成测试,希望能够赶上 v5.2 之前完成,避免 BR 再维护多一个有循环依赖的 release 版本。

Restructure Test 的工作距离发起已经一个月了,从正式开发到现在也有数周。这是一个典型的代码开发任务的提案,如果你想在 TiDB 上实现自己的功能或者做重构以扩展功能,可以参考这个提案。值得一提的是,在上一周项目的活跃参与者 @feitian124 也回复了这个主题表达了对开发方式的意见。这正是《避免私下讨论》一文中提到的,

公开讨论也会从其副作用中获益,无论是多么短暂的技术问题,一经发起都会一直讨论下去。

此外,@xxchan 从参与这个项目入手,提出了对 util/chunk 模块重构的思路,这也是我最早发起这个项目的初衷之一。测试迁移是一个好的窗口,如何发挥它的价值取决于你的想象力。

应当避免国内开发者参与开源社区常见的,还没在社区亮相,就急于提出颠覆性的改动的偏好。软件工程都是取舍,你看着很不合理的设计和实现,有其背后的原因。即使是可以改,甚至很急切的要改,也得先了解清楚代码背后的逻辑。测试是代码的第一个用户,测试的目的性强,从测试入手是一个很好的贡献开源项目的方式。

当然,如果你真的想要做大功能,这里也有可以参与的方式。TiDB 的资深开发者 @morgo 发起了 Placement Rules 的 SQL 接口功能开发的征集信,期待有感兴趣的同学加入到开发队伍当中来。复制一下我在 Twitter 上对这个项目的介绍,

Placement Rules is an advanced topic about tuning #TiDB by manipulating TiKV regions. This effort enables users to change placement rules with SQL interface.

最后想提的是 TiDB Operator 的版本发布信息,TiDB Operator v1.2.0 已经发布啦!

本次更新内容可以点击卡片了解。希望在不久的将来从开发者论坛能够知道 TiDB 生态项目版本发布的关系,而不用轮询文档网站偶然发现某个项目发布了新版本。

3 个赞

前排围观~~

1 个赞

围观。。。。。。

1 个赞