阿里云发布了一个跑分超过AWS的数据库, 我们跟产品负责人聊了聊
三年前, AWS宣布推出关系型数据库亚马逊极光(Amazon Aurora) 。
“那时候,我们Amazon Aurora觉得简直是世界巅峰。”阿里云数据库总负责人余峰在接受36氪专访的时候感叹。不过在昨天的发布会上,他们发布的新产品毫不客气地在跑分上超过了Amazon Aurora。
9月21日的发布会上,阿里云正式梳理了他们整套云数据库家族,包括主流的关系型、NoSQL非关系型数据库(适用于内容缓存和Web应用等场景,包括键值型、文档型等)、面向大数据和AI的混合分析数据库、对面搜索和物联网等场景的搜索和时序数据库。为了方便用户将数据库上云,阿里云还有配套的迁移管理服务和工具。
不过,发布会现场的重点,还是上面提到的跑分超过了Amazon Aurora的新产品——阿里云自研的商用关系型数据库POLARDB。据阿里云方面介绍,该数据库采用第三代分布式共享存储架构,实现计算节点和存储节点分离,使计算引擎和存储引擎均拥有快速扩展能力,一个数据库即可满足多类数据库的混合使用效果。目前,该产品已经开始公测。
POLARDB第三代分布式共享存储架构
数据库的无处不在和软硬一体
“每一个公司都需要一个数据库。”在信息技术的世界里,数据库几乎无处不在,小到一台计算器、蓝牙音箱,大到一台电脑,只要涉及到通讯或者数据的存储与计算,都离不开数据库。我们可以拿平时用的电脑来理解,每一次命令,都需要用到数据库。
那么,如何衡量数据库的好坏?性能、数据的可靠性和安全性,是三个最基本的维度。
余峰解释,数据库最重要的就是存东西,并且在需要的时候把它取出来,因此存的效率怎么样,取的时候又怎么样(性能)非常重要。比如,淘宝系统,有着数以亿计的账户名和密码,同时有三十万人登录很正常,如何同时读取三十万个,完全不会变慢,高并发读写是数据库非常重要的能力之一。
他又打了一个比方,“你的钱在银行系统里,可能就是一行代码,一旦这个信息丢了,就不得了。”这就像数据的可靠性。至于,数据谁能改、谁不能改,这就是安全性。
影响数据库表现的因素又有什么?
“数据库是一个软硬一体化的东西,涉及到方方面面。”
一方面是硬件。数据需要存储,涉及磁盘等存储介质;但又不能全都放在硬盘里,否则很慢,因此内存必不可少;取出来之后需要计算,所以对CPU的要求也很高;算完之后怎么给到用户,涉及到网络。
另一方面是算法。算法牵涉的东西更为复杂,余峰并无细讲,同样是举了几个例子。
首先,数据库很重要的是要支持高并发,一旦用的人多了,就很容易相互受影响,如果做好隔离,保证效率。
再者是事务能够正常运行和回滚的能力。比如,转账作为一个事务,其实涉及到三个动作:先查一下A的钱够不够、然后从A那儿扣钱、最后加到B那儿去,如果任何一步无法继续,这个事务就不能完成,数据要保证一旦出错,能够回滚到事务的初始状态,不能有中间状态。
另外,异地灾备的情况下如何保证事务的一致性,假设同步三节点中,如果有一条线路传输出现问题,要如何处理。
上述这些,都涉及都算法。
阿里云的PolarBD跑分超过AWS Aurora?
就算你不知道什么是数据库,但说起数据库,你肯定想到这个领域的巨头Oracle(甲骨文)。这家公司甚至已经成为了数据库的代名词。
正如余峰所言,数据库需要软硬件一体化。 Oracle的缺点是 ,不仅软件极贵,如果要把的数据库的性能发挥到极致,需要维持“Oracle数据库+IBM小型机+EMC存储”这个组合,后续开支庞大,对管理员的能力极高。
后来,彼时互联网巨头雅虎开始使用开源的MySQL数据库,MySQL本身拥有灵活和性价比高等优势,加上雅虎的示范,MySQL数据库成为了不少互联网公司的选择。随着云计算的发展,云数据库开始出现,后者使用门槛低、便于快速扩展。2015年的AWS re:Invent大会上,亚马逊宣布了Amazon Aurora。Aurora是一个关系型数据库,可以跨3个可用区域复制6份数据,其设计目标是提供高性能和高可用性(99.99%)。
阿里云昨天推出的POLARDB,明显对标的就是Amazon Aurora,它跟后者采用了相同的设计理念,底层同样基于MySQL作出大量改进。
在昨天的发布会上,阿里云又来了一次现场跑分,表示在标准场景下,POLARDB性能是MySQL的6倍,单实例实现100T级存储容量;而在云数据库厂商中,阿里云POLARDB则实现了AWS Aurora性能的1.2倍。余峰解释,这算是阿里云的后发优势,POLARDB用了最新的RDMA网卡,同时对数据库的细节做了优化。
据余峰介绍,整套PolarBD的解决方案大体可以分成三部分:兼容MySQL的数据库软件、新一代的计算机节点、阿里云的第三代分布式共享存储方案。
新一代的计算节点的CPU和网卡,以及存储的SSD磁盘与FPGA卡,都是单独为数据库定制的。这些可以说都是数据库服务中硬件部分的体现。
在算法部分,阿里云这次重点介绍的,是POLARDB的第三代分布式共享存储方案。
余峰介绍,整个国内外云厂商的数据库服务,在存储部分经过了三代的发展。
第一代传统数据库跑在单机上,计算(CPU)和存储绑定,用的是本地盘,意味着每一个计算节点,都要挂一个盘,它的问题是每一个节点的存储空间是有限的。
第二代的集中式存储,计算与储存分离,把存储集中起来管理,解决了存储扩展的问题。因为每份计算都有一份数据,在这个体系下有很多的数据副本,导致成本非常高。此外,不同的节点之间数据可能出现不同步,数据一致性很难解决。“EMC做储存很厉害,但是为什么做数据库没有火,就是因为延迟特别大。Amazon和阿里的优势就在于延迟非常小。”
第三代数据库与第二代的不同,是计算节点之间的通讯效率非常高。这相当于所有的计算节点是一个集群,节点可以无限增加,储存都在一个盘阵里。阿里云介绍,产品架构上,POLARDB采用了节点间共享存储架构,让数据库实现极速扩展,通过重新设计的文件系统PolarStore,实现相同数据更新操作减少了50%的磁盘写入量,并缩短了写数据的路径,使写性能显著提高,对读事务实现了优化。
上面介绍的数据库系统,昨天刚启动公测,究竟用起来效果怎么样,还需要拭目以待。不过,余峰表示,一般的企业忽然换数据库的动力不太,除非是原来的数据库服务太贵、对数据可靠性和对性能的要求有更大的要求,或者是新业务在新数据库服务上跑得不错,会考虑更换。
为了方便客户数据库上云,阿里还推出“IaaS的价格,PaaS的服务”的基础办云服务器,意味着你买一个包含了云服务器的数据库服务,跟只买云服务器价格一样。同时为了怂恿客户用POLARDB,阿里云表示,原来在用阿里云的MySOL数据库服务的客户,直接迁移到POLARDB上,收费甚至比较前者更便宜。
这不就是传说中的补贴吗?很好,这模式很滴滴……