遇见 RadonDB,实力诠释新一代关系型数据库
「RadonDB 定位是新一代分布式关系型数据库,“新”主要体现在青云QingCloud 把目前比较流行的分布式算法和 MySQL 结合起来。这是一件非常有挑战的事情,不仅考验对分布式的理解,更考验对数据库的理解。」
本文由青云QingCloud 数据库高级专家张雁飞的演讲内容整理而来,共 2628 字,8 图,阅读大概需要 7 分钟。
<iframe class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=c0517zmsqq2&width=350&height=196.875&auto=0" width="350" height="196.875" data-vh="196.875" data-vw="350" style="display: none; width: 350px !important; height: 196.875px !important;"></iframe>青云QingCloud 数据库高级专家张雁飞
随着数据量膨胀式发展,大量高并发的业务场景对单机数据库带来了巨大的压力与挑战。迫切需要一款支持能够处理高并发在线事务与海量数据分析、具有极强的扩展能力的新型分布式数据库。
为满足电商、金融、制造、零售等行业用户处理大规模结构化数据的要求,同时帮助传统企业将核心业务逐步向云端迁移,青云QingCloud 自主研发了具备大规模、高可靠、高扩展及高性能特点的新一代分布式数据库 —— RadonDB.
RadonDB 是基于 MySQL 研发的新一代分布式关系型数据库,规模可无限水平扩展,支持分布式事务,具备金融级数据强一致性,满足企业级核心数据库对大容量、高并发、高可靠及高可用的苛刻要求。
它的定位是新一代分布式关系型数据库,“新”主要体现在青云QingCloud 把目前比较流行的分布式算法和 MySQL 结合起来。这是一件非常有挑战的事情,不仅考验对分布式的理解,更考验对数据库的理解。
下面看一下 RadonDB 的特性:
第一,可扩展。用户只需用鼠标点击两下,就可以增加更多的节点,提供更大的容量和更高的性能,它的扩展是线性的;
第二,高可用。RadonDB 是一个分布式数据库,上层的 SQL 节点和下层的存储节点都是分布式的,而且完全无中心化,不会出现单点故障,当副本出现问题的时候,可以秒级自动切换,完全无人工干预;
第三,强一致,RadonDB 具备分布式事务的能力,可以满足金融客户的需求,虽然是分布式数据库,我们依然可以保证其强一致性;
第四,易部署,因为它没有中心化,所以很容易跟云平台相结合,也可以独立部署;
第五,MyNewSQL,数据库道路从 MySQL、NoSQL ,然后到现在比较流行的 NewSQL ,青云现在已经走到了 MyNewSQL 这条道路上,就是 MySQL 和 NewSQL 相结合,充分发挥两者的优势。
RadonDB 架构图
RadonDB 主要有两大部分组成,分布式 SQL 节点+分布式的存储节点。
分布式 SQL 节点的作用是把用户的请求生成分布式执行计划和分布式执行器,这些执行器在后端的存储节点上并行执行。目前,我们已经做到了对用户的每个 SQL 并行执行,这是 RadonDB 高性能的体现。
分布式存储节点,每一个存储节点其实就是一个 MySQL Plus,MySQL Plus 是一个一主多从的 MySQL 集群,具备高可用、强一致的能力。
以上两大部分就组成了 RadonDB 的整体架构。其中,底层存储副本是用 MySQL,MySQL 不仅提供存储能力,还可以提供计算能力。这样可以把 SQL 层一些用户请求中的计算下推到存储层,减少了 SQL 层和存储层的网络交互。
大容量是 RadonDB 首先要解决的一个问题。
目前,青云QingCloud 已经实现了智能化扩容,当用户需要扩容的时候,RadonDB 会采集一些数据,扩容机器人通过分析这些扩容数据,生成扩容建议,并将数据从一个存储引擎迁移到另一个存储引擎。
为了满足用户的多种需求,我们还提供了两种存储引擎供大家选择,一个是大家比较常用的 InnoDB,另一个就是高压缩的引擎 —— TokuDB,压缩比比较高,当数据量比较大的时候,可以选择 TokuDB 引擎。
首先,SQL 层是分布式、无状态的,所以可以实现故障秒级切换与瞬间生效,同时支持跨数据中心部署,全面保障服务高可用。
接下来是存储层,从上面这张 PPT 的图中可以看出,MySQL Plus 是三副本,每一个副本都是一个 MySQL。当主节点故障时,我们使用 Raft 协议选主(Raft 协议是当今分布式比较流行的、普遍采用的一个协议)。
另外,还结合 GTID 并行复制,包括 Semi-Sync-Replication 复制技术,保证主从切换后,数据零丢失且强一致,这是 RadonDB 达到金融级高可用、强一致的原因。
为什么需要数据一致性呢?
在分布式数据库里,数据是分散在多个存储节点上的,举个例子:一整张表放在 3 个节点上,执行一个更新操作,涉及到的 3 个节点都需要更新,假设没有分布式事务保证,某节点更新失败了,其他都成功,最终这个表也是坏的,数据不一致。
所以,为了保证数据一致性,RadonDB 提供了分布式事务能力,当某个节点更新失败时,其他节点的数据会自动回滚。单个节点内多个副本间通过 GTID + Raft + Semi-Sync-Replication 机制保障数据写入的高度一致性。两个层面结合起来,就可以实现整个数据库的强一致,以满足金融级用户的需求。
RadonDB 还支持 HTAP 混合模式,在传统的解决方案里,一般都是两套系统,就是两个端口。在需要事务和需要分析的时候,分别在两个端口处理,中间通过ETL通道进行数据同步。
但是,在 RadonDB 里就一个端口,如果是 OLAP 的操作,我们会自动路由到计算节点,而且 OLTP 和 OLAP 这两个计算的资源是隔离的,互不影响。
接下来看一看 RadonDB 的性能。上图是单机 MySQL 和四个存储节点的 RadonDB 的对比。
我们用 sysbench 16 个表、512 个线程,随机写了 5000 万条数据,测试得出来的结果,RadonDB 基本上可以做到 26589 TBS,单机是 9346 TBS,可以看到在 TBS 层面 RadonDB 性能将近是单机的三倍,延迟却只有的三分之一。
这就是分布式数据库的威力,性能和容量可以通过节点的增加而线性增长。
首先,MySQL 是经过业界广泛应用、长期验证并且达到工业级的可靠。
第二,MySQL 是多索引写的原子保证。现在很多分布式数据库的存储引擎都是自己写的,如果你有多个索引的话,必须花很大力气去处理一个索引写成功了,另外一个索引写失败了的这种错误。在这一点上,MySQL 已经做得很好了,我们基于 MySQL 完全可以做到多索引原子写。
第三,计算下推。由于 MySQL 可以做比较强大的计算,所以我们把 SQL 层的计算尽量推给存储层的 MySQL,让 MySQL 在拷取数据的同时,完成计算,再将数据返给 SQL 层,SQL 层只需进行一些聚合,从而提升效率。
第四,用户的 MySQL 数据库不需要进行太多修改,即可迁移至 RadonDB;
最后一点,对 MySQL 的版本没有要求,目前我们用的是 MySQL 5.7,等未来 MySQL 8.0 出来,我们完全可以替换成 8.0 版本。这样,我们存储层会更加强大。
RadonDB 面向大规模高性能数据库需求,青云QingCloud 注册用户可通过控制台发送工单开通配额体验。如果您的机构有明确的数据库建设计划,希望对 RadonDB 进行深度的试用,您可以通过如下方式申请加入「RandonDB 免费深度试用”」计划。
第一步,填写申请调研问卷:
https://jinshuju.net/f/9gtJAm
第二步, 青云QingCloud 安排专人与您取得联系,并审核您的申请;
第三步,审核通过后,我们将依据您的具体业务需求提供定制化试用计划,试用期内,RadonDB 免费使用;反馈测试结果,分享试用体验。
更多详情请点击阅读原文
- FIN -
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 准确把握守正创新的辩证关系 7926529
- 2 中国黄金原董事长家搜出大量黄金 7961813
- 3 空调英文不会男生盯着考场空调看 7841660
- 4 消费品以旧换新“加速度” 7730264
- 5 被铁路售票员的手速惊到了 7651020
- 6 网红赤木刚宪爆改赵露思 7543855
- 7 县委原书记大搞“刷白墙”被通报 7416923
- 8 山姆代购在厕所分装蛋糕 7357592
- 9 马龙刘诗雯穿正装打混双 7271080
- 10 刘强东提前发年终奖 7188271