分布式数据库发展路径研究

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

  本报告旨在梳理分布式数据库的技术体系和应用现状,结合金融、互联网等领域应用需求,分析制约分布式数据库大规模应用的因素,对未来的技术和应用趋势进行研判,并提出发展路径建议。给出分布式数据库的概念和分类;综合分析分布式数据库发展现状,分布式数据库发展趋势,分布式数据库技术发展和行业应用的路径建议。

  分布式数据库是具备分布式事务处理能力、可平滑扩展、分布于计算机网络且逻辑上统一的数据库。主要特征如下:

  ——分布式事务处理。分布式数据库与集中式数据库的主要区别就是是否具备分布式事务的处理能力。通过对数据库各种操作的并行计算、全局事务管理等机制,实现真正的分布式事务处理,并实现与集中式数据库一致的 ACID 特性。

  ——平滑扩展。分布式数据库可根据业务的增长需要,动态扩展物理节点,以提升整体处理能力,且扩展过程不需停机,不影响在线业务。理论上可以进行无限扩展,扩展之后在逻辑上仍然是一个统一的数据库。

  ——物理分布、逻辑统一。分布式数据库的数据不是存储在一个物理节点中,而是存储在计算机网络上的多个节点上,且通过网络实现了真正的物理分布。而逻辑上仍是一个数据库,为用户提供统一的访问入口,实现对分布在网络节点上的数据的统一操作,即用户可以像使用传统集中式数据库一样使用分布式数据库,而不是分别操作多个数据库。

  分布式数据库的主要技术

  分布式事务处理技术

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

  分布式存储技术

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

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

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

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

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

  数据分区技术

  对于数据量很大的数据集,将数据进行拆分,分布存储在不同物理节点上,每个节点存储全部数据的一个子集,这种对数据进行拆分的方式叫做分区(partition)。不同数据库中对分区的名称定义有所差异,有些称之为分区(partition),有些称之为分片(sharding),还有一些称之为区域(Region),但是其含义都是基本相同的。分区可以采用不同的策略,如Hash、Range、List 等。分区的目标是将大量数据和访问请求均匀分布在多个节点上。

  分区的优点一是提高可扩展性,一个表的不同分区可以分布在不同的机器上,使得单表的容量可以超过单机的容量。二是提高可管理性,对于数据操作的粒度可以控制在单个分区,例如按照时间分区的数据,可以通过删除一个分区来实现数据过期功能。三是提高性能,通过分区裁剪,可以快速定位到用户需要查询的分区,提高查询性能。

  数据复制技术

  数据复制是一种实现数据备份的技术,指在不同节点上保存相同的数据副本,提供冗余。当一个节点故障后,可以从其他存储该数据的节点获取数据,避免数据丢失,进而提高了系统可靠性。分布式数据库一般具有多个副本,副本间通过 Paxos 或 Raft 协议保证副本间的数据强一致。

  分布式数据库的分类

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

  混合事务分析处理(Hybrid Transaction/Analytical Process,HTAP)由 Gartner 于 2014 年提出。目前 HTAP 方案主流大体有两个方向,根据 OLTP 和 OLAP 负载是否使用相同的节点或者引擎,分为统一架构和分离架构。

  1)统一架构的特点是一个节点同时提供 OLTP 和 OLAP能力,存储结构上通常使用行列混合的架构。

  2)分离架构采用不同的子系统实现 OLTP 和 OLAP 功能,中间使用高效的同步协议把 OLTP 子系统的数据更新实时同步到 OLAP 子系统,而用户层(SQL)可以自动选择最优的数据源。

  HTAP 避免了繁琐且昂贵的 ETL(抽取、转换、加载)操作,而且可以更快地对最新数据进行分析。这种快速分析数据的能力将成为未来企业的核心竞争力之一。主要特点如下:

  底层数据要么只有一份,要么可快速复制,并且同时满足高并发的实时更新。

  满足海量数据的容量问题,在存储、计算都具有很好的线性扩展能力。

  具有很好的优化器,可满足事务类、分析类的语句需求。

  具备标准的 SQL,并支持诸如二级索引、分区、列式存储等技术。

  分布式数据库的发展现状

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

  平滑扩展与高性能。分布式数据库的最大优势就是可以平滑地进行节点扩展,这样使得在系统运行初期,分布式数据库暂时不需要规划部署大量机器,随着业务增长,可动态增加节点,提升整体存储容量和处理性能,同时实现了业务无感知的平滑扩容,以满足业务连续性要求。

  通过这种扩展能力,使得分布式数据库通过机器横向堆叠实现存储容量和处理性能的提升,突破了集中式数据库由于硬件配置带来的存储和性能限制,以满足海量数据存储和高并发处理要求,可以达到几十万级 TPS、百万级 QPS 以上的处理性能。

  容灾备份与高可靠。分布式数据库通常都会采用多副本机制,比如三副本或五副本,一份数据在多个节点上保存,副本间通过 Raft、Paxos 等一致性协议保证数据一致性。

  高可用。可用性一般是指在要求的外部资源得到保证的前提下,系统在规定的条件下和规定的时间内(不包括计划内服务中断时间)处于可执行规定功能状态的能力,一般按允许计划外年服务中断时间、可用程度至少达到“n 个 9”来衡量。比如一个服务如果有 5 个 9 的可用性,指的就是一年里99.999%时间里服务都是可用的。

  低成本。分布式数据库一般基于通用的 PC 服务器和操作系统,数据也存储在本地磁盘中,使得在硬件成本上,比传统小型机和高端磁阵有明显优势。

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

  分布式数据库虽然具备独特技术应用优势,但其发展也面临一系列问题。按照 CAP 理论,分布式系统不可能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),而最多只能同时满足其中两个。

  在分布式系统中,由于网络可能会出现延迟、丢包甚至中断等问题,导致分区容错性是必须要实现的,因此一般在一致性和可用性之间进行权衡,而不同的应用系统对一致性、可用性和性能的要求各不相同。

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

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

  相比于集中式数据库,分布式数据库还处于发展的初期,自身的技术体系、标准规范、测评机制、产品推广等方面尚不健全,甚至很多用户单位对分布式数据的理解也不尽相同。

  分布式数据库发展趋势

  分布式数据库的产品化日趋成熟,随着国产分布式数据库在金融、互联网等重点行业中的应用,促使产品技术不断迭代,兼容性、易用性、可扩展性等问题将一一克服。

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

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

项目实践:https://www.yunduoketang.com/article/zhiboshangkepingtai.html

https://www.yunduoketang.com/article/kaiwangxiao.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值