报道来自IT168 覃里
细心的人可能会发现,这几年云计算厂商发布会上,数据库的份量越来越重,新数据库服务的发布也越来越多,云计算厂商正在不断涉入数据库领域,并有愈演愈烈之势。
亚马逊AWS此前就推出了Aurora,DynamoDB、Redshift等自研数据库服务,前不久又推出了一大批数据库服务,其中包含新的图数据库Neptune。阿里云也在今年9月份发布了基于第三代分布式共享存储架构自研的新一代关系型数据库POLARDB,其早期自研的分布式关系型数据库OceanBase也同步在阿里云上开放公测。而就在上周,青云QingCloud也推出了自研的新一代分布式数据库服务RadonDB。
看起来,云计算厂商们似乎有些不务正业,跨界玩的很嗨,如你也是这样认为,那就out啦,原因显然没那么简单。
90%以上业务都是围绕数据库构建
云计算中,SaaS才是利润最丰厚、对用户粘性最强的部分。容器技术的发展让企业把业务负载从一个IaaS云上迁移到另一个IaaS上变得更容易,但SaaS却截然不同,如SAP,Oracle和Salesforce等公司的软件产品,因为与业务深度整合,企业要想从一个SaaS供应商切换到另一个SaaS供应商变得非常困难。而在SaaS中,数据库服务却是最为核心又极为基础的能力。
青云QingCloud CTO甘泉在发布会上就表示,在关键业务里一个最普遍的业务形态就是数据库,90%以上的业务都是围绕着数据库构建的。这就是青云为什么一定要提供一个分布式数据库RadonDB的原因。
亚马逊AWS首席执行官Andy Jassy在刚结束不久的AWS re:Invent 2017大会上也指出,云计算的下一个竞争战场是数据库,他认为数据库将会是另一个可以让所有人都能看到巨大变化的领域。
阿里云数据库掌门人褚霸则对笔者说过,为了让用户用的更爽,自研数据库也就成了一种必然的选择,这也是时代发展的一种必然。而自研数据库也是竞争力的体现,意味着阿里云从生产组装到独立研发的转变。
他还表示,今天不只是阿里云要做这样做,而是所有的云计算厂商都不可避免的要经历这样一个阶段。他认为,在未来2-3年内,没有自研数据库的云计算厂商将会被逐渐淘汰出局。
关于亚马逊与阿里云发布的新数据库服务不是本文重点,有兴趣的可以看看老鱼之前的文章。
1、与Oracle战争或将升级,AWS又发布了一大批新的数据库服务
2、对话褚霸:阿里云发布POLARDB数据库意味着什么?
今天,本文将从架构设计、功能特性、实现原理、性能等多个角度,超详细的介绍青云刚刚出炉的分布式数据库-----RadonDB 。
以下内容来自青云QingCloud数据库高级技术专家张雁飞的演讲(不代表老鱼观点),老鱼在不改变演讲所表达的意思基础上仅略作修改。
青云为何要发布RadonDB?
“随着数据量膨胀式发展,部分场景的数据量已经达到了指数级增长,原有单机数据库已经无法承载如此大的数据量,这就需要一款新的分布式数据库,这就是青云研发RadonDB的初衷。“张雁飞说。
RadonDB定位是新一代分布式关系型数据库,基于 MySQL 研发,注意是基于MySQL 研发,“新”的体现就在这里。分布式关系型数据库并不少见,大都是完全重写,基于MySQL的几乎没有,原因就在把流行的分布式算法和MySQL结合起来很难,不仅考验对分布式的理解,更考验对数据库的理解。
而基于MySQL的分布式数据库其好处除了上图表述外。更意味着,用户原来基于单机版MySQL开发的应用程序,基本不用做任何的修改就可以直接迁移到RadonDB上,不再需要去考虑分库分表、读写分离等各方面让人头疼的问题。
RadonDB的特性主要有5个方面:
第一,可扩展,用户只需用鼠标点击两下,就可以增加更多的节点,获得更大的容量和更高的性能,它的扩展是线性的;
第二,高可用,RadonDB上层的SQL节点和下层的存储节点都是分布式的,且完全无中心化,不会出现单点故障,当副本出现问题的时候,可以秒级自动切换,无需人工干预;
第三,强一致,RadonDB具备分布式事务的能力,意味着可以满足金融客户的需求,虽然是分布式数据库,依然可以保证其强一致性;
第四,易部署,因为没有中心化,所以很容易跟云平台相结合,也可以独立部署;
第五,MyNewSQL,从MySQL到NoSQL,然后到现在比较流行的NewSQL,而青云现在已经走到了MyNewSQL这条道路上,就是MySQL和NewSQL相结合,充分发挥两者的优势。
RadonDB的架构设计
RadonDB的架构主要有两大部分组成:分布式SQL节点+分布式的存储节点。
分布式SQL节点的作用,是把用户的请求生成分布式执行计划和分布式执行器,这些执行器在后端的存储节点上并行执行。据了解,青云已经做到了对用户的每个SQL都可以并行执行,这是RadonDB高性能的一种体现。
底层是分布式存储节点,每一个存储节点其实就是一个MySQL Plus,MySQL Plus是一个一主两从的MySQL集群,具备高可用、强一致的能力。
这两大部分就组成了RadonDB的整体架构。
张雁飞表示,这是青云基于MySQL做的分布式数据库中的创新。其中,底层存储副本是用MySQL, MySQL不仅提供存储能力,还可以提供计算能力。这样可以把SQL层的用户请求中的计算下推到存储层,减少了SQL层和存储层的网络交互。
RadonDB如何解决大容量问题?
分布式本来就是为了解决大容量的问题,因此大容量是RadonDB首先要解决的一个问题。RadonDB实现了智能化扩容,当用户需要扩容的时候,RadonDB会采集一些数据,扩容机器人通过分析这些扩容数据,生成扩容建议,并将数据从一个地方迁移到另一个地方,这就是智能化扩容。
另外,青云还提供了两种存储引擎供用户选择,一个是比较常用的InnoDB,另一个就是高压缩的引擎——TokuDB,压缩比较高,当数据量较大时,青云建议选择TokuDB引擎。
如何做到高可用、强一致?
上面提到SQL层是分布式、无状态的,因此,可以随便切换。那么,存储层如何做到高可用呢?
从上面这张PPT的图中可以看出,MySQL Plus是三副本,每一个副本都是一个MySQL。当主节点故障时,青云使用Raft协议(Raft协议是当今分布式比较流行的、大家普遍采用的一个协议)。青云还结合GTID并行复制,包括Semi-sync复制技术,保证主从切换后,数据零丢失且强一致,这是RadonDB达到金融级高可用、强一致的原因。
为了保证数据一致性,RadonDB提供了分布式事务能力,当某个节点更新失败时,其他节点的数据会自动回滚。单个节点内多个副本间通过Raft、GTID,甚至Semi-sync做到副本间的强一致。这两个层面结合起来,就可以实现整个数据库的强一致。张雁飞表示这是青云为了满足金融级用户的需求而做的功能。
OLTP和OLAP
在传统的解决方案里,一般都是两套系统,就是两个端口。在需要事务和需要分析的时候,分别在两个端口处理,中间通过ETL通道进行数据同步。但是,在RadonDB里就一个端口,如果是OLAP的操作,青云会自动路由到计算节点,而且OLTP和OLAP这两个计算的资源是隔离的,互不影响。
RadonDB的性能,跑个分!
从张雁飞展示的这页PPT可以看到,这是一个单机MySQL和四个存储节点的RadonDB的对比测试。
用sysbench16个表、512个线程,随机写了5000万条数据,测试得出来的结果,RadonDB基本上可以做到26,589 TBS,单机是9346 TBS,在TBS层面RadonDB性能是单机的近三倍,延迟却只有的三分之一。
RadonDB的应用场景
最后,我们来看看RadonDB应用场景,都可以用在哪里?
因为支持OLTP和OLAP,所以RadonDB能够支持高并发、大规模在线事务处理,也能够支持海量数据实时分析,并且两者互不干扰。
张雁飞特别强调了后面三个场景,首先是替代传统的分布式数据库中间件。
他指出,RadonDB是一个整体的解决方案,并非像传统分布式数据库中间件,只负责分布式的SQL层,很少涉及存储层,所以RadonDB完全可以替代分布式数据库中间件。
最后两个是替代大型传统数据库和传统数据库一体机。结合本次与RadonDB一同上线的另两款新产品:Bare Metal物理主机和NeonSAN共享块存储,青云给用户提供了一个价格更低,容量和性能更高的整体解决方案。
报道来自IT168 覃里
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。