腾讯游戏 DBA 团队的这个动作 被世界开源社区的“大神”点了赞

2017年10月10日,世界权威数据库管理系统之一的MariaDB的 10.3.2 Alpha版本发布,在版本更新介绍里,出现了这么两行字:

其实,早在去年发布的MariaDB 10.2.3版本中,腾讯互娱运营部DBA团队提交的两个新特性第一次被被集成到新版本中,被点名感谢了!

时隔半年,MariaDB在更新版本的时候再一次特别感谢了腾讯。据了解,新的版本里增加了腾讯互娱运营部DBA团队输出的功能特性,这个新的版本里,新增了我们从2013年就开始在腾讯游戏场景中大规模使用的TenDB(aka TMySQL)两大核心特性:InnoDB快速加字段以及大字段压缩。

看到这里,身在这个生态圈外的你可能想问:

MariaDB是什么?DBA团队做什么?

对于圈外人来说,DBA和MariaDB是个抽象的存在。但是对圈内的人来说,置身在MySQL的生态圈是所有DBA的人生幸事。说到MariaDB就不得不提MySQL,它原本是一个开放源代码的关系数据库管理系统,在过去由于性能高、成本低、可靠性好,成为最流行的开源数据库,后来被甲骨文公司收购了。然而,MySQL原创始人麦克尔·维德纽斯(Monty)认为oracle的收购,有将MySQL闭源的潜在风险。因此Monty以MySQL为基础,成立分支计划MariaDB。由于MariaDB具有众多领先MySQL的新特性,原先很多使用MySQL的开源软件现在逐渐转向MariaDB,短短几年过去,MariaDB已成为全球排名前20的数据库,并且使用人数和影响力都在稳步提升。

从43200秒到0.04秒 1080000倍的质变

腾讯互娱运营部的DBA(Database administrator)团队,一直都是MySQL等开源软件的使用者,致力于为游戏提供稳定、高效的在线数据存取服务,根据腾讯游戏的业务需求,不断改进数据库和提升性能,提供高性能、可扩展、稳定可靠的数据库解决方案。团队发现,每次游戏停机维护,花在数据库的变更上的时间最长,这对用户体验和收入都有影响。“每次半夜数据库更新,每台机器都要花费数小时,我们也必须盯着等着,生怕出错导致更新延迟,太不智能。我们团队就想寻求突破,改变以往只从外围做修改的方式,而是从内核上做出改动,实现质的突破。这是之前不曾有过的。”互动娱乐运营部存储与计算资源中心的Robincui说。

通过大半年的努力,DBA团队基于MySQL官方版本的定制了TMySQL(后来改名为TenDB),提供业界领先的在线加字段功能——使用MySQL作为存储的业务实例中,TMySQL占比97.78%。

“这个版本出了之后,我们在一些游戏上进行了测试,效果明显。先前,某游戏在数据更新的时候对日志DB中一个约74G的分区表执行加字段操作,当时这个机器的配置比较低,结果耗时约12个小时,还导致正常入库操作延迟数小时。而将该DB升级成我们的版本后,执行类似的加字段操作,仅需0.04秒就完成了!”互动娱乐运营部存储与计算资源中心的Vinchen举了个例子。

从43200秒(12小时)到0.04秒,该游戏在数据库更新加字段的操作上,效率提高了1080000倍!这只是一个举例,但是据DBA团队介绍,数据量越大,该特性带来的效果越明显。

获MySQL和MariaDB创始人Monty的认可

一直以来,腾讯游戏的DBA团队都是MySQL等开源软件的使用者,也通过对MySQL的管理和维护工作,逐步积累了丰富的MySQL运维经验技术和源码能力,TMySQL和TSpider版本也是基于MySQL的系统定制的。“我们从MySQL受益这么多,也很想为开源社区做一点贡献。我们梦想着有一天,我们能与MySQL的开源社区共同成长。”互动娱乐运营部存储与计算资源中心的Felixliang说起了DBA团队的开源梦。“我们知道,这做起来很难,但却价值最大:从开源社区中来,再把我们的经验和成果回馈到社区去,让广大MySQL使用者和爱好者可以更加放心地使用我们的功能特性。”

2015年8月,团队将Replication的两个功能提交给MySQL的复制团队及MySQL邮件组,得到了MySQL官方团队的积极认可。但可惜的是,鉴于Oracle公司或流程或制度上过于严谨的考虑,这些功能迄今还未能落地。

转机出现在2016年7月,在开源社区爱好者联盟的帮助下,团队见到了MySQL和MariaDB的创始人Monty先生。

这是一位有传奇色彩的程序员,他是MySQL第一行代码的作者,已经54岁了,白发苍苍,依旧亲自参与写代码,先后创立了MySQL,MaxDB和MariaDB(这三个项目分别是老爷子用自己的三个孩子名字命名的)。

在见到Monty之后,团队抓住机会将腾讯游戏的业务场景及定制化的两个产品TenDB和TenDB Cluster的设计和功能特性做了详细地阐述。“那天下午,一位业界泰斗,认真聆听我们给他讲feature,表述不清的时候,大家在白板上边写边画。能身处其中,我真的觉得特别幸运。”Vinchen回忆。

(图说:DBA团队在向Mysql之父介绍我们的feature并进行交流)

最后团队表达回馈开源社区的愿望,希望把TenDB和TenDB Cluster的部分功能特性提交给MariaDB,集成到MariaDB的主干代码。而这个想法也得到了Monty的大力支持,而且这些feature正是MairaDB所需要的。尤其是快速加字段特性,是整个MySQL生态都急迫需要的特性。“他对我们产品的功能表示了认可,他说我们的Idea是他们之前没想过的。能得到创始人的认可,让我们看到了圆梦的曙光,备受鼓舞!”Robincui说。

(当天团队和Monty的合照)

圆梦MariaDB 新特性回馈开源社区

作别Monty之后,团队开始按照MariaDB的代码规范,在github上提交了我们的pull request,经过各种PK和比较,团队提交的2个pull request都得到了认可。

(Vinchen与MariaDB的Marko、Monty等讨论快速加字段的设计及实现)

2016年10月,团队第一次参加了MariaDB的开发者大会,确定了TMySQL Replication优化的两个特性集成到MariaDB 10.2.3的测试版本。

这是腾讯游戏的DBA团队第一次出现在了MariaDB的感谢名单里!今年的10月10日,MariaDB10.3.2 Alpha版本发布,新增了TenDB的两个核心功能:快速加字段和大字段压缩。这两个功能分别解决了超级大业务加字段导致的停机时间太长的问题,及业务大字段压缩问题,提升DB服务器的IO吞吐和磁盘空间利用率;这两个功能可以应用到包括游戏在内的其他场景中!

这个版本发布之后,Innodb第一个全职员工、最资深的开发专家之一Marko还专门写了一篇博客给新增加快速加字段功能点赞

“Perhaps one of the most important InnoDB changes coming in MariaDB Server 10.3 is Instant ADD COLUMN for InnoDB tables. ”

快速加字段功能是mariadb 10.3最重要的特性之一。

“A prototype was developed by Vin Chen from the Tencent Game DBA Team.”

这个设计是来自腾讯游戏DBA团队的Vinchen。

“不管是版本更新信息的致谢,还是Marko的认可,都是对我们团队最大的肯定。尤其是我们使用了多年的特性,能合并到主流的MySQL分支中,对社区做贡献,让更多使用者受益,这才是最值得高兴的事情。”Vinchen笑称。

“自己有产出并被大量使用才是对开源社区最大的贡献和回馈。”这一直是团队的梦想,这句话也一直激励了DBA团队一路向前。只要有利于开源和社区发展,团队都愿意尝试。最终,腾讯互娱运营部的DBA团队也做到了。

我们能为开源社区做点啥?DBA团队用行动已经给出了答案。

这样的DBA才有意思,不是么?

更多腾讯游戏DBA团队对外开源进展请进入《 社区初鸣,梦想始兴 – 腾讯游戏DBA携手MariaDB开源起航 》查看!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

腾讯游戏DBA团队的专栏

1 篇文章2 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏飞总聊IT

SAP HANA 神话(5):Oracle的大杀器

很多人问我为什么突然开始写公众号又在一个多月里写了那么多。简单回答一下是很早前就有这个想法,然而一直都懒,于是拖了又拖,及至今夏很严重的伤病一场,才倍感时间紧迫...

3213
来自专栏小夜博客

购买VPS前需要了解的30个问题

5408
来自专栏Java架构沉思录

一文读懂:完整的支付系统整体架构!

在不同的公司由于接入渠道和应用的差异,对支付产品分类略有不同。综合支付场景和流程,支付产品可以分为如下几类:

691
来自专栏BestSDK

如何掘金万亿美金IoT市场?APICloud为你深度解析6个突破口

一个产业的兴起,不仅仅是市场需求和资本积累,还需要大环境和技术的同步匹配。物联网的未来不可估量,但受制于技术和安全等问题,我国的物联网发展尚未进入迅猛发展的状态...

33911
来自专栏云计算D1net

你迁移到了云,然后网络瘫痪了...然后呢?

或早或晚,大规模连接故障总有一天会降临到我们身上。在这种情况下,您所在的企业是否有能力继续保持运作,抑或是只能在互联网服务中断时让每位员工提前下班? ? 也许...

2758
来自专栏云计算D1net

谷歌PaaS在AWS弹性Beanstalk前横插一腿

在平台即服务市场中,谷歌公司是一名先行者,这使得他们与早期实施者保持着紧密的联系,但它是否能够在较长的时间内击败弹性Beanstalk呢? 在IaaS市场中,亚...

3317
来自专栏SDNLAB

不管怎么称呼,基础设施2.0时代终究是来了

多年前,当云计算刚刚兴起,DevOps还只是一个想法的时候,一个非常小但颇有远见的小组聚在一起讨论基础设施的未来。基础设施2.0工作小组囊括了很多互联网传奇人物...

2705
来自专栏PPV课数据科学社区

【每日一课】​第1课:Excel2010的基本概念与界面简介

PPV课大数据 课程名称 Excel 2007/2010表格基础入门和常用函数视频教程(共40课) 第1课:Excel2010的基本概念与界面简介 课程目的 能...

3236
来自专栏魏艾斯博客www.vpsss.net

腾讯云新购云服务器五折 1 核 1G 3 年 794.73 元(即 265 元/年)

3264
来自专栏魏艾斯博客www.vpsss.net

腾讯云新春采购节云服务器秒杀 2 折起!1 核 1G1M 带宽 766 元/3 年

2414

扫码关注云+社区