多次获得MySQL官方认可,腾讯云数据库怎么做到的?
在这个海量数据大爆发的时代,以往单一的开源数据库产品往往很难直接满足企业的业务需求,在某些场景下,无论是性能、安全还是稳定性,都面临着各种各样的问题,而在最近,拥有多种企业级特性的腾讯云数据库MySQL已经连续多次获得了官方认可,这是怎么做到的?
回到最初的起点,MySQL作为全世界最流行的开源数据库,同时也是DB-ENGINES排名中前二的关系型数据库,不用多说,相信每个数据库领域的从业者都听过这个熟悉的名字,在各种技术论坛里,关于MySQL的讨论从未停止过,干货教学、使用技巧、问题交流…正是MySQL良好的社区氛围提升了其影响力,同时,社区中的大牛对MySQL提出优化方案、提交patch修复bug、探索前沿技术而使MySQL变得越来越好用。
1
一个放到MySQL社区贡献的patch
在腾讯云数据库团队就有这样一位大牛,在国内可以说是最早接触数据库的姜宇祥,多年深耕于数据库领域,职业生涯中还亲身经历了中国最早那一批国产数据库从零开始的整个研发过程,目前在腾讯云MySQL团队负责数据库内核研发。
他积极参与MySQL开源社区在中国成长过程,通过技术宣讲与技术文章助力MySQL在中国的传播。
就在前阵子,他给MySQL提交了一个patch——这是MySQL官方直接放到5.7社区贡献的patch如下:
InnoDB: The open and close sequence for table share instances (m_share objects) and dictionary table instances was modified to prevent accessing old m_share objects that could point to stale dictionary indexes.
Thanks to Yuxiang Jiang for the contribution. (Bug #31899685)
(原文详见:
https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-34.html)
其中特地提及“感谢姜宇祥的贡献”(Thanks to Yuxiang Jiang for the contribution)
那么,这个patch到底凭什么被官方感谢呢?
简单来说,这个patch修复了inndb的handler对象的index_mapping对象m_share中的index与ib_table不一致,原因是在获取share对象时,表对象的的引用计数被提前减掉了,表对象被淘汰出dict cache,从index_mapping指向了不确定的内存地址的问题。该问题产生原因是open dict table和get share的操作顺序不匹配。
以上是最近被采纳的一个patch,在这之前,我们也分享过一个即将写入官方源码的bug解决之路,正是这些大牛的不断贡献,才使得MySQL变得越来越好用,高效且稳定。
1
一封来自官方的感谢信
同时,也正因为这些值得被记住的贡献,以及腾讯云数据库与开源社区紧密的合作,在20年底,MariaDB社区还给腾讯云数据库专门写了一封特别的感谢信,对腾讯云数据库一直以来对社区的发展提供的支持表示感激(原文详见:https://mariadb.org/thanks-tencent/)
↓↓就是这个数据库~