独家对话 RadonDB 设计者 畅谈开源背后的初心

点击蓝色字关注 "数据库技术大会" 一起玩耍哦~

5 月 10 日,在 DTCC 2018 第九届中国数据库大会上,青云 QingCloud 宣布开源其基于 MySQL 研发的新一代分布式关系型数据库 RadonDB,并以 100% 开源的方式托管在 GitHub 。开发者可以自由的提交 issue 和 PR。 项目网址:radondb.io 代码地址:https://github.com/radondb


  

对于青云 RadonDB,其实圈内人士应该并不陌生,它是青云在去年 12 月发布的一款基于 MySQL 研发的新一代分布式关系型数据库。笔者在去年也曾发布过一篇文章《青云发布 RadonDB 云计算跨界搞数据库已经成为必然》,从架构设计、功能特性、实现原理、性能等多个角度,超详细的介绍青云 RadonDB 。

▲QingCloud 数据库高级技术专家张雁飞

  

不过,上次笔者并没有机会采访到 RadonDB 数据库背后的设计者,QingCloud 数据库高级技术专家张雁飞,借着此次 DTCC 大会的机会,笔者与张雁飞,就 RadonDB 研发背景、研发过程,以及为何选择在 DTCC 上开源,RadonDB 的核心竞争力等问题进行了深度沟通。

  

为了让读者更全面细致地了解这场对话,以下附上 QingCloud 数据库高级技术专家张雁飞的对话实录:

从今天大会现场的反馈看,RadonDB 开源是成功的。青云把开源选在 DTCC 上,是出于怎样的考虑?

张雁飞:首先,DTCC 是数据库这个细分领域里最专业的大会,嘉宾都是来自各个行业的专家,我今天还在大会上遇到以前阿里巴巴、腾讯的同事,参会听众的质量很高,都是一线的实践者。这是我们选择在 DTCC 大会上发布开源的一个主要目的; 其次, RadonDB 是新一代分布式数据库,选择这个场合发布,大家会更感兴趣,通俗的讲,就是对口味; 最后,大会的主要受众是 DBA,是数据库的直接使用者,所以选择 DTCC。

  

作为设计和研发者,能否给我们讲一讲 RadonDB 的研发背景和研发过程。

张雁飞:RadonDB 的研发总时间大概经历了一年,初期是我一个人,后来团队慢慢扩大。众所周知,市面上开源的分布数据库很少,从稳定性、安全性、健壮性以及高可用这个层面考虑,很少有能够拿过来直接用的,虽然也有一些可用的,但使用门槛较高。

  

DBA 以前比较熟练使用 MySQL 单机,但是在接触到一些新的开源分布式数据库时,就需要一个不同以往的学习过程,而且学习门槛可能会比较高。我们看到这点,同时,因为我们的 MySQL 用户占了大部分,为了让我们的用户可以很方便的使用分布式数据库,所以 RadonDB 对 MySQL 语法没有任何改造,数据迁移过来就可以直接使用,对 DBA 和我们的用户来说,不仅使用方便而且没有学习成本,这是我们打造这个产品第一个目的。

  

另外一个目的,我们想把 RadonDB 打造好,以便让更多的人参与进来,包括对 MySQL 感兴趣的人群,可以来开源社区作出贡献并一起玩,所以今天我们决定将 RadonDB 开源。RadonDB 里使用了一些目前比较先进的技术,是 DBA 过去想过但没有实现的技术,而如今 RadonDB 已经实现了。因此,希望大家能基于开源的 RadonDB,做一些自己的产品化,从中得到真正的帮助。这是第二个目的,主要是基于以上两个目的,促使我们研发了 RadonDB。 

我看到,青云最近组织了一场 RadonDB 体验日活动,邀请专家现场体验,有些专家体验过后觉得 RadonDB 就是一个中间件,那么,RadonDB 到底中间件还是数据库?

张雁飞:其实在大会演讲前 20 分钟,我在某个微信交流群里,也看到大家有类似疑问。大概意思也就是,RadonDB 不就是中间件吗? 其实这是一个误解,首先,为什么定义 RadonDB 为新一代分布式数据库? 如果只是中间件,我们不敢把它定义为新一代。它的新颖之处在于,RadonDB 是把 NewSQL、Google Spanner 等实践思想拿过来,跟 MySQL 结合,而在市面上开源的产品里从来没有人这样做过。关于开源分布式数据库的研发,大家的做法一般是重新研发一套,并没有一个是真正基础于 MySQL 来做的。

  

第一个层面:高可用存储层。RadonDB 基于 MySQL 开发,并融合了 NewSQL 的思想,比如我们把 Raft 选主机制跟 MySQL 融合起来,这样我们 MySQL 集群的存储层就具备高可用。如果一个主在运行中挂掉,通过 Raft 协议会自动显示一个新的主。另外,我们基于 MySQL 的原生机制,可并行复制的功能,在选主之后可以让数据快速的回放,提供即时的数据回放服务。

  

我们在刚过去的体验日上现场演示了一把,大家对于这项功能都很震惊,因为以前没有遇到过。现场,我们在高压情况下操作数据库,启用 64 个线程并发的去写数据,过程中我们把主 KILL 掉,现场演示写数据受不受影响,影响的时间会有多长,这种服务启动后新主有没有切换成功。整个流程下来大家的感受都是非常震惊,其实整个操作过程也就是三秒时间。我认为,现场没有人敢这么操作数据库。

  

Radon DB 是 NewSQL 与 MySQL 的优势结合,让彼此威力相互发挥。单独的 NewSQL 很难做到并行复制,因为并行复制本身非常复杂,但是 MySQL 做到了,我们将 Raft 和 MySQL 结合起来,打造高可用集群。

  

第二个层面,SQL 层。目前阶段,我们借助 MySQL 的威力完成了分布式事务。后面我们会持续改进,把 MySQL 红利尽量发挥出来,让威力更大,这也是新的地方。

  

简单总结,RadonDB 是 MySQL 和 NewSQL 相结合,充分发挥两者的优势,打造出的新产品。传统中间件的定义,只是一个中间件,是一个路由分发,并没有高可用的性能,所以 RadonDB 不是中间件。因为 RadonDB 是由两部分组成,Radon 和 Xenon,分别负责 SQL 层和高可用,是一个完整的产品。

今天大会上,您介绍 RadonDB 能够通过自动分片的支持,让 DBA 在分库分表上面的使用门槛大大降低,除此之外,RadonDB 还解决了 DBA、运维一直以来面临的哪些棘手的问题?

张雁飞:其实在分布式数据库领域里,DBA 和运维比较担心的有两个方面:

  

第一个是分片,规则怎么定的。比如:分布式数据库需要 DBA 去配制分片规则,操作既复杂也麻烦,这是让 DBA 很头疼的事情。配好分片规则并生效后,DBA 还需要验证数据起没起作用,整个过程需要在上线前多次演练,来保证上线以后是否好用,但在所有繁琐操作后,DBA 还是会很担心结果是否如愿。

  

第二个是扩容,提到扩容的准确性和安全性,DBA 可能就胆战心惊了。因为数据从一个机器转移到另一个机器,数据的准确性难以保证。基本每次上线前都需要经过周密的准备,也难以确保扩容不会出现问题。但是现在 RadonDB 自动把这两件事做了,自动扩容和自动分库分表,这让运维变得更简单。我们的两个目的,最终都是为了解放 DBA 和运维人员。 

这几年,分布式数据库很火,除了国外产品外,国内也有不少,比如; 蚂蚁金服的 OceanBase,PingCAP 的 TIDB,未来在市场上,我觉得不管青云愿不愿意,都不可避免与之产生竞争,那 RadonDB 将如何与竞品竞争? 您觉得 RadonDB 核心竞争优势是什么?

张雁飞:首先,有这么多竞争产品的出现,这对用户来说是利好的,因为大家多了一个产品选择。然而,其他家的开源数据库都不是基于 MySQL 的研发路线,可能从上面的 SQL 层,到下面的存储层,都是企业自己重新研发的,再与高可用融合起来,就变得非常复杂。因为我本身以前是做数据库内核的,对这个领域比较了解,要实现一个类似于 MySQL 的存储层,企业的投入会非常大。所以对于完全自研的竞品,他们其实会花费非常多的时间和成本,持续的投入改进。

  

所以我们在存储层选择了 MySQL,我们选择 MySQL 好处是什么呢? 可以借助一整个开源社区的力量,为 MySQL 的性能做保障。MySQL 最近几年,社区非常活跃,从 5.7 到现在的 8.0,目前已经 GA,跟以前已经不太一样。现在,Oracle 也看到了问题所在,如果封闭不努力,就会被其他的竞品追上。所以,这就等同于我们背后有这样强大的社区力量支持,MySQL 只要一更新,我们就实时的更新过来,存储更稳定。我们如果发现需求,也会提醒官方修改,这样才是真正的互利共赢,这是基于 MySQL 一个好处。假设我们不基于 MySQL,再造个笼子自己研发存储,估计到现在可能还没有研发完存储,更别说整个产品了。

  

基于 MySQL 还有一个好处,它不止有存储,还有良好的计算能力。而在 NewSQL 里面,存储是单方面的功能,另外的计算能力是必须又投入一波人做计算。RadonDB 是将传统的 MySQL 和 NewSQL 的功能融合起来,实现两者的优势功能,但整体的技术路线完全不同。

  

但是今天从交流来看,很多对分布式数据库感兴趣的专家对这个方案很感兴趣,这就是 MySQL 和 NewSQL 融合带来的竞争优势。MySQL 有很好的用户基础,包括应用场景也更丰富,在社区力量支撑下,我们可以更专注上层 SQL 和高可用,相对其他研发路线 RadonDB 的使用门槛更低。

下面这个问题来自于社区一个网友,他们发现 RadonDB 里有一个高可用独立工具 MySQL Plus,想问,这个工具那里能够下载到? 

张雁飞:MySQL Plus 是基于高可用工具的产品,随着 RadonDB 的开源,MySQL Plus 也随之开源,在开源官网可以找到下载。

亚马逊 AWS 的 CEO 说,数据库是云计算的下一个战场,青云作为一个云计算厂商,您作为一个数据库领域专家,怎么看待这个问题? 

张雁飞:其实,我们青云 2014 年就推出了数据库服务,比如 Redis、MongoDB。推出这些数据库服务不是因为厂商想布局什么,而是切实根据用户需要而诞生,因为从云厂商的角度,用户在云环境中不仅需要云主机,还需要周边配套的生态,比如说优先级较高考虑的数据库。所以我们很早就开始提供数据库服务。

  

如果一个云计算厂商没有数据库服务,只卖主机,我估计前途堪忧了。目前来看,数据库服务是用户量比较大,需求比较迫切的服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值