赛迪联合中兴、华为、蚂蚁科技、腾讯云等发布《分布式数据库发展路径研究》
发布时间:2021年03月10日 16:48 来源:中国软件评测中心

前言

分布式数据库是传统数据库技术与计算机网络的有机结合,具有平滑扩展、高性能、高可靠、高可用、低成本以及容灾备份等技术优势,特别是在性能方面可突破集中式数据库的瓶颈,具有很强的研究和应用价值,目前很多数据库企业研发了分布式数据库产品,并在金融、电信、互联网等重点行业进行了成功应用,具有良好的发展前景。

为了明确分布式数据库的概念,梳理分布式数据库的技术体系和应用现状,对未来的技术和应用趋势进行研判,中国软件评测中心牵头组织,中兴通讯、华为、蚂蚁科技、贵州易鲸捷、腾讯云、武汉达梦等国内分布式数据库产品厂商参与,调研了国内主要分布式数据库产品厂商,并对部分产品进行了测评,参考了国内外主要研究机构的学术成果,历时半年共同编制了《分布式数据库发展路径研究》报告,为我国的分布式数据库产业和技术发展提供参考,为分布式数据库的发展路径提出建议。

目 录

01、分布式数据库的概念及分类

1、分布式数据库的概念

分布式数据库最早于20世纪80年代提出,受限于当时的计算机软硬件及网络发展水平,数据库专家 M.Tamer Özsu和 Patrick Valduriez 在经典著作《分布式数据库系统原理(第3版)》中,把分布式数据库定义为一群分布在计算机网络上、逻辑上相互关联的数据库。随着信息技术的发展,集中式数据库也正向基于网络的共享集群路线发展,而市场上的分布式数据库也不仅限于网络分布、逻辑关联等特性,经典的分布式数据库定义显然已不能体现分布式数据库当前技术特点,难以满足数据库种类区分要求。

根据目前我国分布式数据库技术现状,我们认为分布式数据库是具备分布式事务处理能力、可平滑扩展、分布于计算机网络且逻辑上统一的数据库。

主要特征如下:

1.分布式事务处理

2.平滑扩展

3.物理分布、逻辑统一

2、分布式数据库的主要技术

分布式事务处理技术

分布式数据库为保障跨多个节点的事务原子性、一致性,一般使用分布式协议来处理分布式事务。常用两阶段提交协议、三阶段提交协议保障事务的原子性;使用Paxos、 RAFT等协议保障事务的一致性。

分布式存储技术

分布式数据库一般采用无共享(Shared-nothing)架构,数据分布在网络上多个互联的节点上,这样做有多种好处:

1.数据量、读取负载、写入负载超过单台机器的处理能力。

2.满足容错和高可用需求,单台机器(或多台机器、网络或整个数据中心)出现故障的情况下,仍然能继续工作。多台机器可以提供冗余,一台出现故障,另一台可以接管。

3.降低延迟,每个用户可以从地理上最近的数据中心获取服务,避免等待数据包远距离传输。

数据分布存储有两种常见方式:复制(Replication)和分区(Partitioning),两者通常结合使用,使得每个分区的副本存储在多个节点上。这意味着,即使每条记录属于一个分区,它仍然可以存储在多个不同的节点上以获得容错能力。

3、分布式数据库的分类

分布式数据库分类与传统集中式关系数据库相类似,按对数据处理的方式不同一般分为两类:联机事务处理、联机分析处理。随着技术的发展,用户对于数据库的要求越来越高,事务处理类的数据库在满足功能、性能时,还需要有一定的数据分析能力,因此目前分布式数据库又产生一个新的分类—混合事务分析处理。

以上是报告部分内容,点击文末阅读原文,即可免费获取完整版报告~

02、分布式数据库发展的现状及问题

1、分布式数据库的发展现状

技术现状

相比教于集中式数据,分布式数据库具有平滑扩展、高可靠、高可用、低成本等关键特性和显著优点。目前部分分布式数据库实现了分布式事务的强一致性,保证分布式事务的ACID要求,为分布式数据库在关键领域的领域奠定了基础,而且成熟的分布式数据库透明性较好,上层应用系统可以像使用集中式数据库一样使用分布式数据库事务,无需关注分布式数据库的内部细节。

重点领域应用

互联网领域

互联网是分布式数据库首先被重点应用的领域。从成本考虑,随着数据量和系统访问量增加,依赖纵向扩展的传统数据库架构,采用小型机、磁阵和商用数据库软件的购买和维护成本会越来越高。

而采用廉价PC服务器、使用本地存储的分布式数据库,成本显著下降,同时还带来良好的系统成长性。另外,互联网应用,包括各种大促、春节抢票、秒杀等场景,都有短时间内并发量激增的情形。如果按照业务峰值提前采购计算资源,必然会导致资源浪费。借助分布式数据库的弹性扩缩容的能力,能更好满足业务场景的需求,并避免资源浪费。

金融领域

金融领域是使用分布式数据库的另外一个重要场景,但和互联网在应用场景、技术条件和关键诉求上存在显著差异。

以分布式事务一致性方案为例,互联网普遍采用最终一致性方案以获得更高的性能,同时对该方案存在的同步阻塞、数据脏读等问题,需要应用代码参与控制一致性,互联网企业因为应用和数据库都是自己开发,所以不存在相互配合等问题。但金融核心业务要求数据库必须支持强一致性方案,这是金融行业对数据正确性的基本要求,同时也是减少现有第三方开发的数百个应用迁移和改造成本的必然要求。

2、分布式数据库发展面临的问题

分布式数据库虽然具备独特技术应用优势,但其发展也面临一系列问题。

应用系统面对分布式数据库的合理选择问题

按照CAP理论,分布式系统不可能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),而最多只能同时满足其中两个。

在分布式系统中,由于网络可能会出现延迟、丢包甚至中断等问题,导致分区容错性是必须要实现的,因此一般在一致性和可用性之间进行权衡,而不同的应用系统对一致性、可用性和性能的要求各不相同。例如,很多互联网应用对一致性要求相对较低,但希望可用性较高;而金融核心应用常常需要优先保证较高的一致性又要保证5个9及以上的高可用。因此,在CAP理论约束下,如何根据应用的特点从种类繁多的分布式数据库系统中做出合理选择,是大多数软件开发人员面临的一大难题。

▲CAP理论示意图

遗留系统面对分布式数据库的迁移改造问题

分布式数据库的本质是在全局范围内,通过各种调度设计保证多个具备集中式数据库功能的单节点数据库协同工作。在集中式数据库中应用比较成熟的存储过程、触发器、视图、DBLink、外键约束等功能需要迁移到全局层面实现,实现难度较大。

即使部分分布式数据库已经实现上述功能,也可能是受限使用,并且执行效率低于集中式数据库。上层业务在实现或者改造时,需要额外关心数据模型,数据模型的主要工作是设计数据和数据之间的关系,后续的业务实现是围绕数据关系实现相应的逻辑。考虑到硬件开销和充分发挥性能优势,数据模型要考虑本数据及其相关的一组数据的数据分布规则,后续的应用实现也需要考虑这点,例如要尽力避免分布式事务。如果分区设计良好,分布式数据库将表现出非常高的并发能力和水平扩展特性,从而使迁移至分布式数据库的应用受益,反之可能影响整体系统的性能。

值得注意的是,目前大量的外围业务由于功能杂以及关联数据多、复杂语句比例高,使用了较多的集中式数据库的特定语法或者功能,迁移到新的分布式数据库上必须充分评估改造和迁移工作量、投入收益比。相反不少核心业务一方面因为性能要求高、业务相对简单等原因使用集中式数据库的特定语法和功能要比外围应用少得多,另外一方面核心业务改造迁移后可以获得原来不具备的高可用、高性能等收益。

分布式数据库运维管理较为复杂

分布式数据通常由几十台至数千台服务器组成,相对于传统集中式数据库,分布式数据库的硬件、软件维护都是非常大的挑战,对运维人员的要求很高,这也是为什么分布式数据库在互联网和金融领域率先应用的原因之一,因为互联网企业和金融机构的运维队伍水平较高,这就需要数据库厂商提供简单、方便的统一图形化运维管理控制平台,实现一些常用的运维操作,比如:服务器资源管理、创建/删除数据库集群、查看集群状态信息、监控各个节点/核心组件的运行情况、备份、恢复等,以来降低分布式数据库的日常运维难度,方便分布式数据库使用。未来还要考虑借助人工智能等技术进一步降低运维工作量和难度。

分布式数据库产品成熟度有待提升

相比于集中式数据库,分布式数据库还处于发展的初期,自身的技术体系、标准规范、测评机制、产品推广等方面尚不健全,甚至很多用户单位对分布式数据的理解也不尽相同。分布式数据库的优化器、数据类型、复杂查询、自定义函数、存储过程等高级特性参差不齐,有待进一步提升,而传统集中式数据库已经过数十年的发展,语法丰富、功能完善,部分主流集中式数据库在标准的 SQL 基础上衍生出很多该数据库的特殊用法,应用系统如果过多的使用了这些特殊用法,在迁移到分布式数据库时,语法适配改造通常会异常困难,是推广分布式数据库使用的一大门槛。

03、分布式数据库发展趋势

1、分布式数据库的产品化日趋成熟

随着国产分布式数据库在金融、互联网等重点行业中的应用,促使产品技术不断迭代,兼容性、易用性、可扩展性等问题将一一克服。未来随着分布式数据库等的标准体系及评价体系的健全,分布式数据库产品的生态体系也将逐渐完善,在运维保障和数据迁移、运行监测等方面的配套工具也将逐步成熟。

2、分布式数据库的服务方式将向云化发展

在数字经济的推动下,数据的全生命周期管理尤为重要,而分布式数据库数据通常由几十台至数千台服务器组成,数据库的运维显得尤为重要。随着人工智能技术的发展,将人工智能技术融入分布式数据库的全生命周期,实现自运维、自管理、自调优、故障自诊断以及自愈,是未来发展的必然趋势。另外,在交易、分析和混合负载场景下,可以通过人工智能的学习算法,实现数据库的自动调优。

3、分布式数据库的服务方式将向云化发展

云计算技术已在我国各行业信息化建设中大规模应用,为适应未来信创领域信息化建设技术方向,降低数据库运维成本,灵活调度资源,国内数据库厂商积极布局云数据库产品及服务。阿里云、腾讯云、华为等已经发布了基于自有云平台的云数据库产品,传统数据库厂商达梦也推出了云数据库产品。总体上,国内云数据库与国际先进水平基本持平,为未来信创云数据库发展提供良好基础。

04、分布式数据库发展路径建议

目前,国内绝大部分数据库企业均推出了分布式数据库产品,我国分布式数据库发展基本与国际同步,在一些技术指标和应用层面处于领先水平,而且互联网、金融等领域应用场景对分布式数据库具有切实需求,当前应大力发展分布式数据库的技术产品,加快行业应用,促进数据库产业高质量发展。

政策引导,形成分布式数据库的典型案例

客观的说,分布式数据库不是传统集中式数据库的更新换代,而是充分结合分布式计算技术,使得在一定规模的节点和付出一定规模的成本后,实现了较高的性能水平,并不是所有的应用场景都适合使用分布式数据库,既没有必要神话分布式数据库的作用,也不应该去贬低其作用。因此我们希望在政产学研用等多方努力下,共同打造分布式数据库的最佳实践,树立一批典型的行业解决方案,并加以宣传推广。

产用协同,提升分布式数据库产品成熟度

分布式数据库作为数据库领域的创新,目前其产品化程度不高,甚至目前的一些所谓分布式数据库产品,其实更像是产品与应用融合后的解决方案,并不利于市场推广。因此我们建议充分利用好数据库以及基础软件领域的创新中心、适配基地及重点实验室等机构,加强供需双方的产用协同,形成良性的问题反馈机制,共同解决一些共性的技术和产品问题,逐步打磨优秀的分布式数据库产品。

营造环境,打造分布式数据库的生态体系

从产业发展的角度来看,相比于集中式数据库,分布式数据库还处于发展的初期,技术体系、标准规范、测评机制以及产品推广等方面尚不健全。建议第三方研究和服务机构前牵头,联合推进技术标准、测评认证、迁移验证以及示范试点等工作,共同营造良性的分布式数据库生态体系。目前华为以及PingCAP等企业发起了分布式数据库的开源社区,并形成了部分商业发行版产品,这可能也是建设分布式数据库生态体系的新思路。

以上是报告部分内容, 点击可获取完整版报告:分布式数据库发展路径研究