随着MySQL 5.7稳定版接近正式发布,加入各个MySQL分支继续争夺市场份额,我们采访了Percona共同创始人及CEO、享誉全球的MySQL性能领袖Peter Zaitsev,了解他对于最受欢迎的开源DBMS的现状与未来的看法。
虽然Peter一直忙于准备今年的Percona live大会(并且同样期待Percona对Tokutek的收购!),但他仍谈介绍了MySQL的重大趋势,Percona最近一直在处理的痛点,以及DevOps和云对于开发者和DBA关系的重要影响。
MySQL与OpenStack的密切关系
首先是一则小道消息:今年Percona发起了OpenStack live,这是与Percona live同步举行的新活动。最直接的原因是:去年Percona举行了一个为期一天的OpenStack开放日活动,其响应非常热烈,因此他们决定升级并创办一个全新的大会。
这件事情本身很有意思——MySQL用户应该对基础架构即服务(IaaS)充满热情。当我向Peter询问关于Percona和OpenStack之间的更深入联系时,他指出了两个清晰的协同关系:(1) MySQL是云中最流行的数据存储方式,所以有许多OpenStack用户也在使用MySQL;(2) 有多个OpenStack组件在使用MySQL。(如果你还没有使用过OpenStack,那么可能还要等多一小段时间:我们准备过几天发布一个运行在OpenStack之上的新Refcard!)
开源主数据存储的重要性
但是,Peter对于OpenStack的热情已经超出了与MySQL所使用高可用性所重叠的部分。我们的交谈出现了另外两个交集部分。
首先,Percona的XtraDB Cluster已经能够很好地支持OpenStack。其次,OpenStack Foundation坚定地支持开源;实现全栈IaaS——而且,正如Peter所指出的,Percona的使命是在一个开源解决方案中实现各种MySQL版本特性(可插拔身份验证、审核、超大规模连接等)。
关于开源DBMS,Peter提出了一个重要观点:你的主数据存储严重受制于供应商——我感觉似乎我应该能理解这一点,但是我却从未担心过这个问题,因为我从未用过一个比MySQL社区版更强大的开源数据库。理论上是这样的,但是可能MySQL分支数量的不断增长可能就是一个证据,证明用户越来越多地体会到这个问题。
精益创业和言过其实的云计算
MySQL和云服务还有另一个相同的重要角色:它们都非常方便精准创业。很可能所有创业公司以前都使用过MySQL,所以他们的经验很容易延续下去。MySQL非常成熟,以致有时候让人觉得DBA是不必要的角色(至少一开始是这样的)。云数据提供了一个相似的精简承诺:“不需要DBA!不需要运维!”但是,Peter发现,“不需要DBA”的公司无法支持扩展。(从前我完全认同在需要时才聘请DBA。)最终,即使是云技术运用最彻底的创业公司也需要一名DBA。可能不一定是全职DBA,或者一段时间不是全职的,可能DBA本身也属于“按需要服务”角色,像Percona这样的公司就是。(当然,我对于“DBA即服务”感到有些失落。但是,另一方面,我绝对认同的是,一名真实、专业和经验丰富的DBA一定好过于一些兼职二流人员……)
谁在驱动DBMS的发展:先是开发人员,后是DBA
现在我们都很清楚,将所有域映射到同一种存储模型是非常愚蠢的做法。但是,我希望了解一家主流DBMS供应商关于DBMS实际增长方式的观点;或者说,是什么让它们以一些特定的方式增长的?Peter的回复非常直接:在DBMS生命周期的早期,由开发者驱动特性(当前的MongoDB就是这样)。但是,随着DBMS逐渐成熟,特性将由运营人员驱动。
在很长时间里,MySQL也是这样的——例如,Percona Server最先发布了一系列针对MySQL 5.1的性能增强补丁,但是最终NoSQL DBMS也有一样的趋势,因为它们都在大规模、高可用解决方案是遇到问题。
关于这一点,我向Peter提了一个问题:Percona用于替代InnoDB的XtraDB是如何改进InnoDB性能的?我想说的是,有大学文凭的计算机科学人员都知道b树和日志结构合并树的概念,我肯定也能知道Peter说的存储引擎的实际工作方式。但是,在听到他讲了三个完全不懂的句子之后,我不得不承认,作为一名用户,我还是无法理解InnoDB优化所涉及的技术概念——至少在下一个话题开始前我理解不了。