技术开发 频道

张雁飞:新一代分布式关系型数据库RadonDB

  【IT168 评论】各位观众大家好,我们很荣幸地邀请到了青云QingCloud数据库高级技术专家张雁飞老师来接受我们的采访,欢迎张老师的到来,张老师您好。

  张雁飞:你好。

  2.刚才您的演讲题目是《RadonDB:新一代分布式关系型数据库》,那您可以给我们解释一下什么是新一代分布式关系型数据库吗?

  张雁飞:“新”主要体现在:我们把NewSQL领域的技术与MySQL数据库融合起来,目前看还没有人这样尝试过,所以我们叫它“新一代”。这是一个非常有挑战,也非常有意思的一个方向。

  3.为什么要基于MySQL来实现呢?

  张雁飞:因为MySQL不仅有存储能力,还有计算能力,所以我们就利用MySQL的计算能力,把上层的计算工作尽量下推到下层存储节点的MySQL中。

  4.RadonDB是如何将MySQL GTID并行复制技术与分布式一致性协议Raft完美结合的?

  张雁飞:分为两个部分,第一部分是Raft,其实就是一个Agent,它对MySQL源码是没有侵入的,外部的Agent会检查MySQL的状态,一旦发现不正常,就需要重新选主。另一部分是GTID并行复制,这是MySQL 5.7的功能。我们把Agent与MySQL部署在同一台机器上,(Agent)其实就相当于MySQL的保姆,帮它管理、给它打杂,两个配对,就可以运行起来了。

  5.RadonDB是如何实现同时支持高可用、强一致、可扩展的三个特性的?

  张雁飞:这三个特性是分布式数据库、NewSQL数据库的基本特性。MySQL给人的固有印象是扩容和迁移都很复杂,我们通过把一个大表拆成多个小表简化了这一过程,将小表迁移到空闲的机器上就是一个扩容的过程,这就实现了可扩展性;正如刚才所说,Raft与MySQL结合就可以做到单个存储节点内副本间的高可用和强一致性;而分布事务可以确保存储节点间操作的原子性,所以整体就是强一致的。

  6.和传统的数据库相比,RadonDB的优势在哪里?

  张雁飞:“传统”包括两个方面,一是传统数据库,比如说MySQL就没有成熟的高可用解决方案,需要DBA自己做主从,如果节点坏了需要自己用工具去检测、做切换。主节点挂了之后,从节点成为新的主节点必须有一个控制节点,但是RadonDB没有中心节点,因为它用的是Raft,这种做法还过,目前市面上的产品还没有MySQL和Raft结合的,这是高可用性层面的区别。 二是传统分布式数据库,目前市面上的分布式数据库还只是Proxy代理层,它们不像RadonDB一样是一个完整的产品,将下层的高可用(存储节点)和上层的代理层(SQL节点)融合在一起。我们明年会开源RadonDB,只要是按照我们的指南部署完成之后,它就是一个自动运维的分布式数据库;而传统的分布式数据库必须自己开发高可用等功能。

  7.您刚才说RadonDB明年会开源,那开源之后你们的发展方向是什么?之后打算怎么推进RadonDB的发展?

  张雁飞: RadonDB在12月12日正式上线,等上线之后肯定还有很多需求,其中比较好的需求,我们也会去完善。等到开源之后,大家都会参与进来,技术层面的需求会越来越多。因此我们主要从这两个方面着手,不停地把RadonDB推向成熟。

  8.有没有具体的一些推进的方案或方向?

  张雁飞:目前还没有,因为开源会在明年,但是具体时间还不能确定。

  9.肯定是会开源的,对吧?

  张雁飞:对。

  10.那在RadonDB构建的过程中您有没有印象特别深的,或者有什么特别想分享的经验吗?

  张雁飞: RadonDB的构建是一个非常有意思,也非常有挑战的过程,因为像RadonDB这种分布式数据库的研发,你不仅要对分布式有了解,也要对MySQL数据库非常了解,否则做不到两者的融合。所以在构建RadonDB的过程中,我对MySQL有了一个新的认识,也对分布式及其与MySQL融合过程有了一个新的认识,对自己来说也是一个提升。

  11.您觉得未来的分布式数据库的技术发展会往哪个方向走呢?

  张雁飞:我感觉是MyNewSQL的方向,即MySQL和NewSQL结合的方向走。分布式数据库普遍来说,就是上层SQL层和下层存储层。大家会发现存储层做到最后越来越像MySQL,其实就是我们现在的方向。 InfoQ: 那今天非常感谢张老师接受我们的采访,今天的分享就到这里,谢谢。

1
相关文章