返回 登录
0

【SDCC讲师专访】阿里云数据库技术组数据库专家彭立勋:阴差阳错的走上MySQL之路

2016年3月18日-19日,由CSDN重磅打造的数据库核心技术与实战应用峰会、互联网应用架构实战峰会将在上海举行。在大会召开之际,CSDN将采访一些与会讲师,谈谈他们将在会上分享的内容。


本期我们采访的讲师是彭立勋先生,阿里云数据库技术组数据库专家,负责维护阿里云RDS MySQL版本分支,曾在阿里巴巴B2B担任高级MySQL DBA。Oracle ACE for MySQL。国内唯一的MariaDB源码提交者,为数不多的MySQL源码贡献者。向官方提交了Multi-Source Replication,Thread Memory Usage Monitor等功能补丁。

图片描述

阿里云数据库技术组数据库专家 彭立勋

彭立勋在这次专访中谈到:“越是乐于分享越能够提升自己技术储备的完备性。”届时,他将在数据库核心技术与实战应用峰会中带来《阿里云RDS for MySQL的若干优化》的干货分享。在大会召开前夕,我们CSDN小编有幸请到了他来做了一次简单的专访,以下为专访具体内容:

CSDN:首先请简单介绍下自己、公司以及目前所负责的领域。

彭立勋:我的MySQL之路开始于2009年,那时候我还没毕业,在途牛旅游网实习当MySQL DBA,本来之前我学的是Oracle,但是就这样做起了MySQL。毕业后就到阿里巴巴B2B继续做MySQL相关的工作,本来我也是面Oracle DBA的,阴差阳错又被分去搞MySQL了。当时B2B正好处在从Oracle迁移到MySQL的起步阶段,非常幸运经历了这个阶段,积累了很多MySQL实战的经验,在这个过程中,也开始发现MySQL的一些不足,因为多年编程的底子,于是着手开始研究MySQL的源码,并尽可能做一些符合业务期望的修改,逐渐就走上了MySQL内核开发这条路。

我现在负责阿里云RDS for MySQL产品的MySQL源码开发,阿里云目前是国内最大的云服务商之一,RDS也是阿里云的拳头产品之一。在MySQL云平台的构建过程中,我们遇到了很多挑战,内部使用因为有DBA控制把握风险,所以MySQL的一些缺陷表现并不明显,可以通过审核规避,但是对于外部用户,使用相对随意,所以很多MySQL的缺陷都会暴露无遗,甚至会触发一些非常极限的Bug,这对MySQL源码的把控能力提出了很高的要求,这是挑战也是很大机遇,欢迎对MySQL非常痴迷的同学能加入我们的Team,一起探索。

在业余时间,为了推广MySQL,我也参与了ACMUG(MySQL中国用户组)的组建,担任副主席和杭州地区的组织者,负责组织会议和社区推广。

CSDN:我们知道阿里云数据库技术组云集了国内外顶级专家,您作为其中一员,能否给我们谈谈如何才能成为优秀的数据库专家?与这些优秀的大牛共事给你最大的感悟是什么?

彭立勋:我刚进入阿里 DBA团队时,团队里都是只闻其名未见其人的顶级数据库专家,像童家旺、张瑞、简朝阳这些DBA圈内最著名的专家,他们都很乐于分享,带我这个刚毕业的菜鸟入门,给了我很大的帮助,无论是技术上还是经验上。后来到了阿里云数据库技术组,从DBA转型到专门的MySQL内核开发,从他们身上,我看到了优秀的数据库专家所应该具备的品质,乐于分享,从不以技术作为壁垒,因为给别人讲解的过程,也是自己梳理的过程,可能会发现错误、遗漏,越乐于分享越能提升自己技术储备的完备性。另外一点就是知识全面,一个优秀的数据库专家绝不可能只是一个纯粹的数据库专家,数据库作为系统架构中核心的一环,与硬件、系统、应用都有紧密的结合,要能全面的看待数据库,必须掌握这些相关的知识,只看数据库本身是远远不够的。最后就是要胆大心细,数据库承载着数据,任何一个操作都有可能带来不可挽回的后果,但是也不能故步自封,什么都不做可能不会出问题,但是技术和经验也永远不会积累。每一次操作都是一次积累,每一次架构的升级,都是技术提升的机会,不要怕去做,但是要做好充足的预案,事前做足够的演练,以最仔细的态度做最小的事情。

CSDN:你所负责维护的阿里云RDS MySQL版本分支主要运用在哪些架构层面上?在整个数据库架构中又承担着哪些作用呢?

彭立勋:阿里云RDS售卖的所有MySQL版本都是我们自己构建的分支,直接承载着用户的数据。为了配合RDS的整体架构,我们必须为MySQL做很多适配,以让用户使用起来跟直接用数据库一样感受不到什么区别,透明中间层。

同时为了增强产品的竞争力,我们还对MySQL的性能做了大量的优化,部分优化还被官方采用。

CSDN:那么在你看来,如何构建高并发网站中的数据库?其中有哪些技术难点和挑战?

彭立勋:以我的经验,高并发系统中,绝大部分优化来自于应用端,数据库本身能做的优化其实所占的比例是很小的。所以当数据库遇到瓶颈,首先需要从应用上找优化的点,是否存在不需要的访问可以去掉,是否存在不需要的数据可以删除,还有不常用的非实时的SQL和数据可以和实时数据分开存储,同时在表结构设计上也需要考虑这些问题,大字段和常用字段可以分开存储,添加合适的索引减少SQL访问的行数,优化SQL写法配合优化器做出正确的判断,正确的调整MySQL的参数配置。

最大的难点我觉得就是定位瓶颈的根本原因,例如发现IO占用很大,可能本质问题是内存太小了导致命中率不足,也可能是存在大范围扫描在污染Buffer Pool,定位到正确的原因才能选择正确的解决方式,这是需要很多经验在其中配合分析的。

CSDN: 据我了解,您是国内唯一的MariaDB源码提交者,为数不多的MySQL源码贡献者,那么在日常工作中你是如何保持对这些技术追捧的?

彭立勋:首先要对自己的工作感兴趣,所做的工作不是兴趣所在,肯定是没办法专注的。其次就是要积极参与社区,多看看社区的进展,多跟人交流。自己再牛,不分享出来,不参与社区,也没有人知道这个牛人的存在。

CSDN:除了这些,你还会关注哪些技术热点?

彭立勋:跟数据库上下游相关的技术点都会看一下,但是我不是一个喜欢跟风的人,所以热点我不一定关注。像存储技术的更新换代,SSD的产品迭代,NVMe标准,都会看一看,还有MySQL在非x86架构上的支持,也是比较关注的点。

CSDN:你在本次SDCC数据库峰会上分享的话题是?

彭立勋:我这次分享的话题是阿里云MySQL分支版本的一些改进。会介绍一些我们团队对MySQL安全性,性能,可用性等各个维度上的改进。

CSDN:你最期待在本次SDCC数据库峰会上听到哪些内容呢?

彭立勋:我希望听到业内对数据库应用方面的一些创新观点和应用,是否能对MySQL现有的架构体系提出一些新的思考和探索。


SDCC的精彩正在继续,2016年3月18日-19日,数据库核心技术与实战应用峰会、互联网应用架构实战峰会将在上海召开,我们静候您的到来。大会官网(含购票)

评论