@qinyun
2017-12-18T12:51:51.000000Z
字数 2042
阅读 1823
未分类
在InfoQ主办的全球架构师峰会北京站2017上,青云数据库高级技术专家张雁飞老师发表了《RadonDB: 新一代分布式关系型数据库》的主题演讲,并介绍了什么是分布式数据库?如何把MySQL与当下最流行的分布式技术以及云计算相结合,来实现一款新式的企业级分布式数据库服务?为了挖掘出更多关于RadonDB的技术背景,InfoQ邀请张雁飞老师做了独家专访,以下是专访内容。
张雁飞:你好。
张雁飞:“新”主要体现在:我们把NewSQL领域的技术与MySQL数据库融合起来,目前看还没有人这样尝试过,所以我们叫它“新一代”。这是一个非常有挑战,也非常有意思的一个方向。
张雁飞:因为MySQL不仅有存储能力,还有计算能力,所以我们就利用MySQL的计算能力,把上层的计算工作尽量下推到下层存储节点的MySQL中。
张雁飞:分为两个部分,第一部分是Raft,其实就是一个Agent,它对MySQL源码是没有侵入的,外部的Agent会检查MySQL的状态,一旦发现不正常,就需要重新选主。另一部分是GTID并行复制,这是MySQL 5.7的功能。我们把Agent与MySQL部署在同一台机器上,(Agent)其实就相当于MySQL的保姆,帮它管理、给它打杂,两个配对,就可以运行起来了。
张雁飞:这三个特性是分布式数据库、NewSQL数据库的基本特性。MySQL给人的固有印象是扩容和迁移都很复杂,我们通过把一个大表拆成多个小表简化了这一过程,将小表迁移到空闲的机器上就是一个扩容的过程,这就实现了可扩展性;正如刚才所说,Raft与MySQL结合就可以做到单个存储节点内副本间的高可用和强一致性;而分布事务可以确保存储节点间操作的原子性,所以整体就是强一致的。
张雁飞:“传统”包括两个方面,一是传统数据库,比如说MySQL就没有成熟的高可用解决方案,需要DBA自己做主从,如果节点坏了需要自己用工具去检测、做切换。主节点挂了之后,从节点成为新的主节点必须有一个控制节点,但是RadonDB没有中心节点,因为它用的是Raft,这种做法还没有人尝试过,目前市面上的产品还没有MySQL和Raft结合的,这是高可用性层面的区别。
二是传统分布式数据库,目前市面上的分布式数据库还只是Proxy代理层,它们不像RadonDB一样是一个完整的产品,将下层的高可用(存储节点)和上层的代理层(SQL节点)融合在一起。我们明年会开源RadonDB,只要是按照我们的指南部署完成之后,它就是一个自动运维的分布式数据库;而传统的分布式数据库必须自己开发高可用等功能。
张雁飞: RadonDB在12月12日正式上线,等上线之后肯定还有很多需求,其中比较好的需求,我们也会去完善。等到开源之后,大家都会参与进来,技术层面的需求会越来越多。因此我们主要从这两个方面着手,不停地把RadonDB推向成熟。
张雁飞:目前还没有,因为开源会在明年,但是具体时间还不能确定。
张雁飞:对。
张雁飞: RadonDB的构建是一个非常有意思,也非常有挑战的过程,因为像RadonDB这种分布式数据库的研发,你不仅要对分布式有了解,也要对MySQL数据库非常了解,否则做不到两者的融合。所以在构建RadonDB的过程中,我对MySQL有了一个新的认识,也对分布式及其与MySQL融合过程有了一个新的认识,对自己来说也是一个提升。
张雁飞:我感觉是MyNewSQL的方向,即MySQL和NewSQL结合的方向走。分布式数据库普遍来说,就是上层SQL层和下层存储层。大家会发现存储层做到最后越来越像MySQL,其实就是我们现在的方向。
张雁飞:谢谢。