「金山云」余邵在:金山云分布式数据库DragonBase的发展与实践

2021-02-18 11:39:21来源:亚太CDN产业联盟 热度:
为期两天的Distributed Cloud|2020全球分布式云大会,为5G商用时代的到来,在新一轮云计算技术变革的关口,呈现出分布式云生态全景,影响2021年分布式云战略科技趋势,共享新商业引擎,共寻亿万级苍穹,开创未来新篇。
 
在12月18日下午的“分布式数据论坛”上,金山云数据库总监余邵在带来了《金山云分布式数据库DragonBase的发展与实践》的主题演讲。
 
 
首先,余邵在简述了整个数据库架构的发展,并详细分析了各类数据库的优劣势,分为三个部分。第一个是单体式数据库,以主、备架构为主,比如用得比较多的MySQL或者Postgresql,现在公有云或者RDS也是这种架构。它的劣势在于性能和容量受限单机,在业务发展比较快速的情况下,满足不了业务发展的需求。
 
第二个是共享式数据库,类似于PolarDB,它的优点是兼容性高、分钟级扩展。缺点也显而易见,比如对硬件要求较高成本高,由于单点写入,性能只能到十万级,而且当分布式存储出现故障时影响面较大,比较适用于公有云的客户需求。
 
第三个是分布式数据库,也是比较主流的数据库,主要包含分布式SQL引擎和分布式存储,对于分布式SQL引擎各个厂商实现的功能基本类似,对于分布式存储,主要有基于B+ Tree的关系型存储,和基于LSM Tree的KV存储。对比其他两种架构,分布式数据库在计算能力或存储能力基本上能做到水平扩展。劣势则是在兼容性方面,不过分布式数据库还存在一定提升空间。
 
余邵在表示,金山云的数据库产品矩阵在这三种类型的数据库上都做了布局,包括单体式的RDS、共享式的KingDB以及分布式的DragonBase。
 
随后,余邵在对DragonBase做了重点介绍。2016年金山云发布了DragonBase单体版本,2017-2018年深度优化单体版本稳定性和性能;于2019年发布DragonBase分布式1.0版本,2020年发布升级版本2.0支持分布式事务、分布式计算、高可用、弹性扩展、安全审计、数据强一致、灾备恢复、云管平台和数据迁移等诸多核心能力,正在研发的DragonBase3.0版本将在Oracle兼容、分布式计算引擎和自动化运维等方面进行迭代。
 
目前,DragonBase已在金融、互联网、政企等多领域实践应用。DragonBase可提供稳定、高性能、安全可靠的数据库服务。
 
DragonBase的总体架构分为两部分:数据库云平台和内核。数据库内核支持单体式和分布式两种部署形态。余邵在表示,DragonBase除了能支持X86平台,像主流的ARM平台等也能支持。DragonBase的内核架构采用Share-Nothing架构,主要包括计算节点DragonServer(DS)、DragonData(DD)和全局管理服务GMS,能够实现性能和容量的水平扩展,支持Hash、Range、List等分片方式。
 
DragonBase有六大特性,包括强一致、高可用、易扩展、高兼容、高性能及安全可控。余邵在围绕DragonBase几个重要的能力展开阐述。
 
高可用性方面,提供主动+被动探活,提供协议层和应用层探活,支持熔断机制,不可用节点个数超过设定阈值会停止切换,通过人工介入进行确认,避免高可用服务自身的异常导致大规模切换,影响服务可用性,可以确保RTO<30秒
 
高可靠性方面,支持三种复制模式异步、半同步、强同步,由用户去选择。“比如一些边缘业务,追求的是性能的极致,但对于数据可靠性有一定的容忍,我们推荐用户去用异步的方式。”余邵在说。DragonBase的DTS可以支持数据迁移和跨地域数据同步,能够做到表级别同步,甚至是行级别的,它的延迟能够在秒级甚至毫秒级。除了在线数据的可靠性以外,DragonBase还做了离线数据可靠性验证。
 
易扩展方面,DragonBase能够支持计算节点和存储节点的横向(scale-out)和纵向(scale-up)的扩展能力。Scale-out计算节点具有实现集群的吞吐和性能的水平扩展的能力。Scale-out存储节点支持基于分库分表、按子表自动迁移,并支持按容量迁移和按访问热度迁移。此外Scale-up可以实现节点的升配和读写分离能力,能够支持多种读写分离和负载均衡策略,来满足不同业务的需求。
 
一致性方面,DragonBase的分布式事务,通过优化读写强一致,性能可以提升30%以上。主要包含两个优化部分,一是事务处理优化,引入了一阶段本地事务+异步管理,能够提高事务吞吐。二是全局中心时钟优化,实现分布式事务的分布式一致性读,通过使用Batch和Pipeline技术实现更小的SQL时延损耗,同时可以做到分布式事务的RC隔离级别。
 
高性能方面,DragonBase通过深度优化数据库内核引擎,包括线程池、异步事务提交和异步死锁检测等多种优化技术。“在高并发的情况下,DragonBase单节点性能比社区版本高40%以上,同时可以实现水平扩展”余邵在说。
 
可运维方面,DragonBase的智能管控平台提供多维度的监控服务,监控大屏能够针对资源和实例粒度,展示整体的使用情况。此外,DragonBase具有完备的管理功能,支持实例创建升级、备份恢复、弹性扩展、数据迁移等。
 
最后,余邵在介绍了DragonBase使用的成功案例。在互金行业的灾备方案,支持两地三中心,能够实现同城双活、异地灾备和单元化,其中单元化能保证每个AZ里面的应用和数据都是完整的。“在数据层面我们通过多副本的同步机制,保证数据是一致的。从而保证同地域的RPO趋于0。跨地域则使用DTS异步复制,通过并行复制和灵活任务调度等优化手段,使得RPO可以达到秒级。”余邵在说。
 
在AI场景,面对海量标注信息存储,DragonBase能够提供上百个存储节点,提供百TB级存储能力,支撑每秒100w行写入,并执行定期稳步删除策略。

责任编辑:吴昊