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





《分布式数据库发展路径研究7622.pdf》由会员分享,可在线阅读,更多相关《分布式数据库发展路径研究7622.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、分布式数据库发展路径研究 相比集中式数据库,分布式数据库具有平滑扩展、高可靠、高可用、低成本等关键特性和显著优点,特别是在性能方面可突破集中式数据库的瓶颈,具有很强的研究和应用价值。分布式数据库是传统数据库技术与计算机网络的有机结合,相比于传统的单机或主备模式的集中式数据库,分布式数据库在平滑扩展、高性能、高可靠、高可用、低成本、容灾备份等方面具有优势,特别是在性能方面可突破集中式数据库的瓶颈,具有很强的研究和应用价值,目前很多数据库企业研发了分布式数据库产品,并在金融、电信、互联网等重点行业进行了成功应用,具有良好的发展前景。本报告旨在梳理分布式数据库的技术体系和应用现状,结合金融、互联网等
2、领域的应用需求,分析制约分布式数据库大规模应用的因素,对未来的技术和应用趋势进行研判,并提出发展路径建议。分布式数据库的概念及分类 分布式数据库的概念 分布式数据库最早于 20 世纪 80 年代提出,受限于当时的计算机软硬件及网络发展水平,数据库专家 M.Tamer?zsu 和 Patrick Valduriez 在经典著作分布式数据库系统原理(第 3 版)中,把分布式数据库定义为一群分布在计算机网络上、逻辑上相互关联的数据库。随着信息技术的发展,集中式数据库也正向基于网络的共享集群路线发展,而市场上的分布式数据库也不仅限于网络分布、逻辑关联等特性,经典的分布式数据库定义显然已不能体现分布式数
3、据库当前的技术特点,难以满足数据库种类区分的要求。根据目前我国分布式数据库技术现状,我们认为分布式数据库是具备分布式事务处理能力、可平滑扩展、分布于计算机网络且逻辑上统一的数据库,主要特征如下。第一,分布式事务处理。分布式数据库与集中式数据库的主要区别在于是否具备分布式事务的处理能力。通过对数据库各种操作的并行计算、全局事务管理等机制,实现真正的分布式事务处理,并实现与集中式数据库一致的 ACID 特性。第二,平滑扩展。分布式数据库可根据业务的增长需要,动态扩展物理节点,以提升整体处理能力,且扩展过程不需停机,不影响在线业务。理论上可以进行无限扩展,扩展之后在逻辑上仍然是一个统一的数据库。第三
4、,物理分布、逻辑统一。分布式数据库的数据不是存储在一个物理节点中,而是存储在计算机网络上的多个节点上,且通过网络实现了真正的物理分布。而逻辑上仍是一个数据库,为用户提供统一的访问入口,实现对分布在网络节点上的数据的统一操作,即用户可以像使用传统集中式数据库一样使用分布式数据库,而不是分别操作多个数据库。分布式数据库的主要技术 分布式事务处理技术 分布式数据库为了保障跨多个节点的事务原子性、一致性,一般使用分布式协议来处理分布式事务。常用两阶段提交协议、三阶段提交协议保障事务的原子性;使用 Paxos、RAFT 等协议保障事务的一致性。两阶段提交协议:在事务处理、网络通信等领域,两阶段提交(to
5、w-phase commit,下文简称 2PC)是一种常用的分布式一致性协议。在分布式事务场景下,2PC 能够协调所有参与者共同达到 commit/rollback 的结果,保证事务的原子性。该协议分为两步(PREPARE,COMMIT),因此称为两阶段提交。2PC协 议 中 包 含 两 种 角 色,分 别 为 协 调 者(Coordinator)和 参 与 者(Participant)。其中协调者推动参与者执行,负责整个协议的推进,从而最终达到一致的决议。参与者负责提出决议并接受决议。协调者收到COMMIT/ROLLBACK 的命令,开启两阶段提交。在没有宕机的情况下,2PC 很好地完成了事
6、务提交原子性保证,但如果协调者收齐所有的 prepare 完成之后发生宕机,此时参与者会一直等待协调者恢复,2PC 的状态机会卡住,无法推进。因此 2PC 协议是一个阻塞性协议,在机器宕机情况下会影响系统的可用性。三阶段提交协议:为了解决 2PC 协议在宕机情况下状态机卡住的问题,三阶段提交协议(Three-Phase Commit,3PC)诞生了。3PC 是为了解决两阶段提交的阻塞问题,即在执行过程中需要锁住其他更新且不能容错的缺点,而在两阶段协议上进行的改进。阶段节点的角色分配与两阶段协议一致,在执行过程中,3PC 协议在 2PC 基础之上,增加了一个 PRE_COMMIT 阶段。针对2P
7、C 的问题,参与者宕机重启之后,会问询其他参与者的状态,如果其他参与者均处于 PREPARE 阶段,则该参与者告诉其他参与者事务回滚。如果其他参与者至少有一个处于 PRE_COMMIT 或者 COMMIT 阶段,则通知所有参与者事务提交。因此,有了 3PC 协议,即使协调者宕机,参与者也能通过回查其他参与者的状态,把事务状态机推进结束。Paxos 协议:Paxos 协议用来解决的问题可以用一句话来概括:将所有节点都写入同一个值,且被写入后不再更改。Paxos 协议涉及三个角色,提议发起者(Proposer),提议接受者(Acceptor)和提议学习者(Learner)。提议发起者可以有多个,他
8、们都可以提出议案(Value),但对同一轮 Paxos 过程,最多只有一个 Value 被批准。提议 Acceptor 有 N 个,发起者提出的 Value必须获得超过半数(N/2+1)的接受者批准后才能通过。Acceptor 之间完全对等独立。上面提到只要超过半数 Acceptor 通过即可获得通过,那么提议学习者角色的目的就是把通过的确定性取值同步给其他未确定的 Acceptor。Raft 协议:Raft 协议是 Paxos 协议的一种简化实现。包括三种角色:Leader、Candidate 和 Follower。所有节点都以 Follower 的状态开始,如果没有收到 Leader 消息
9、则会变成 Candidate 状态。Candidate 会向其他节点拉选票,如果得到大部分的票则成为 Leader,这个过程是 Leader 选举。相比 Paxos,Raft 强化了节点间的日志同步,在领导者选举方面和选举之后的日志同步方面更加清晰。Raft 相较于 Paxos 有大幅度的简化且在分布式一致性上具有完全等价的特性,这使得 Raft 应用广泛。但 Raft 相较于 Paxos 也有其自身的不足,主要体现在两个方面:一方面,Raft 相较于 Paxos 的并发度是不足的。Paxos支持多 Leader,这本身就带来了并发度上的优势。其次,每一个 Paxos 节点能够同时进行多个投票
10、而 Raft 则不支持,其 Follower 节点必须一个一个地处理投票,这两点就决定了在并发度上 Raft 无法和 Paxos 媲美。另一方面,Raft 相较于 Paxos 在新节点加入的时候不太友好。Paxos 在新节点加入的时候可以立刻投入服务不用确认节点加入前的数据或日志,但是 Raft 则不然,新的节点加入后 Raft 要进行日志复制操作,必须要等之前的日志得到确认之后才能提供服务,这无疑带来了额外的风险。分布式存储技术:分布式数据库一般采用无共享(Shared-nothing)架构,数据分布在网络上多个互联的节点上,这样做有多种好处:数据量、读取负载、写入负载超过单台机器的处理能力
11、;满足容错和高可用需求,单台机器(或多台机器、网络或整个数据中心)出现故障的情况下,仍然能继续工作,多台机器可以提供冗余,一台出现故障,另一台可以接管;降低延迟,每个用户可以从地理上最近的数据中心获取服务,避免等待数据包远距离传输。数 据 分 布 存 储 有 两 种 常 见 方 式:复 制(Replication)和 分 区(Partitioning),两者通常结合使用,使得每个分区的副本存储在多个节点上。这意味着,即使每条记录属于一个分区,它仍然可以存储在多个不同的节点上以获得容错能力。数据分区技术:对于数据量很大的数据集,将数据进行拆分,分布存储在不同物理节点上,每个节点存储全部数据的一个
12、子集,这种对数据进行拆分的方式叫做分区(partition)。不同数据库中对分区的名称定义有所差异,有些称之为分区(partition),有些称之为分片(sharding),还有一些称之为区域(Region),但是其含义都是基本相同的。分区可以采用不同的策略,如 Hash、Range、List 等。分区的目标是将大量数据和访问请求均匀分布在多个节点上。分区的优点有:一是提高可扩展性,一个表的不同分区可以分布在不同的机器上,使得单表的容量可以超过单机的容量。二是提高可管理性,对于数据操作的粒度可以控制在单个分区,例如按照时间分区的数据,可以通过删除一个分区来实现数据过期功能。三是提高性能,通过分
13、区裁剪,可以快速定位到用户需要查询的分区,提高查询性能。数据复制技术:数据复制是一种实现数据备份的技术,指在不同节点上保存相同的数据副本,提供冗余。当一个节点故障后,可以从其他存储该数据的节点获取数据,避免数据丢失,进而提高了系统可靠性。分布式数据库一般具有多个副本,副本间通过Paxos或Raft协议保证副本间的数据强一致。分布式数据库的分类 分布式数据库分类与传统集中式关系数据库相似,按对数据处理的方式不同一般分为两类:联机事务处理、联机分析处理。随着技术的发展,用户对于数据库的要求越来越高,事务处理类的数据库在满足功能、性能时,还需要有一定的数据分析能力,因此目前分布式数据库又产生一个新的
14、分类混合事务分析处理。联机事务处理(On-Line Transaction Processing,OLTP)是事件驱动、面向应用的,也称为面向交易的处理过程。其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作的快速响应。例如银行类、电子商务类的交易系统就是典型的 OLTP系统。其具备以下特点:直接面向应用,数据在系统中产生;基于交易的处理系统;每次交易牵涉的数据量很小;对响应时间要求非常高;用户数量非常庞大,其用户是操作人员,并发度很高;数据库的各种操作主要基于索引进行;以 SQL 作为交互载体;总体数据量相对较小。联机分析处理(On-Li
15、ne Analytical Processing,OLAP)是面向数据分析的,也称为面向信息分析处理过程。它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。其特征是应对海量数据,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。例如数据仓库是典型的 OLAP 系统。其具备以下特点:本身不产生数据,其基础数据来源于生产系统中的操作数据;基于查询的分析系统;复杂查询经常使用多表联结、全表扫描等,牵涉的数量往往十分庞大;每次查询设计的数据量很大,响应时间与具体查询有很大关系;用户数量相对较少,其用户主要是业务人员与管理人员;由于业务问题不固定,数据库的各种操
16、作不能完全基于索引进行;以 SQL 为主要载体,也支持语言类交互;总体数据量相对较大。混合事务分析处理(Hybrid Transaction/Analytical Process,HTAP)由 Gartner 于 2014 年提出。目前 HTAP 方案主流大体有两个方向,根据 OLTP和 OLAP 负载是否使用相同的节点或者引擎,分为统一架构和分离架构。统一架构的特点是一个节点同时提供 OLTP 和 OLAP 能力,存储结构上通常使用行列混合的架构。分离架构采用不同的子系统实现 OLTP 和 OLAP 功能,中间使用高效的同步协议把 OLTP 子系统的数据更新实时同步到 OLAP 子系统,而用
17、户层(SQL)可以自动选择最优的数据源。HTAP 避免了繁琐且昂贵的 ETL 抽取、转换、加载)操作,而且可以更快地对最新数据进行分析。这种快速分析数据的能力将成为未来企业的核心竞争力。其主要特点如下:底层数据要么只有一份,要么可快速复制,并且同时满足高并发的实时更新;满足海量数据的容量问题,在存储、计算都具有很好的线性扩展能力;具有很好的优化器,可满足事务类、分析类的语句需求;具备标准的 SQL,并支持诸如二级索引、分区、列式存储等技术。分布式数据库发展的现状及问题 分布式数据库的发展现状 技术现状 相比于集中式数据,分布式数据库具有平滑扩展、高可靠、高可用、低成本等关键特性和显著优点。目前
18、部分分布式数据库实现了分布式事务的强一致性,保证分布式事务的 ACID 要求,为分布式数据库在关键领域奠定了基础,而且成熟的分布式数据库透明性较好,上层应用系统可以像使用集中式数据库一样使用分布式数据库事务,无需关注分布式数据库的内部细节。平滑扩展与高性能:分布式数据库的最大优势就是可以平滑地进行节点扩展,这样使得在系统运行初期,分布式数据库暂时不需要规划部署大量机器,随着业务增长,可动态增加节点,提升整体存储容量和处理性能,同时实现了业务无感知的平滑扩容,以满足业务连续性要求。正是通过这种扩展能力,使得分布式数据库通过机器横向堆叠实现存储容量和处理性能的提升,突破了集中式数据库由于硬件配置带
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 数据库 发展 路径 研究 7622

限制150内