一致性协议之2PC,3PC

2PC

 

  • 简述:2PC是用来解决分布式事务的原子性问题,通过将事务的操作分成两步来完成。在执行的过程中,有两种角色,分别是协调者和参与者,协调者负责整体的调度和协调,参与者负责具体事务的执行
  • 执行过程
    • 阶段一:提交事务请求阶段。协调者向参与者提交事务请求,参与者在接收到请求之后执行事务操作,同时记录Undo和Redo信息,以便事务的回滚,同时需将执行结果反馈给i协调者
    • 阶段二:执行事务提交阶段。协调者根据阶段一参与者的反馈结果执行具体操作。如果参与者全部执行成功的话,协调者会发送事务提交请求,各个参与者执行提交并反馈结果。如果有参与者执行不成功或等待超时的话,事务便会中断,各个参与者需执行回滚操作,同时提交反馈结果
  • 总结:2PC协议存在容错性方面的问题,如果协调者发生异常或者网络通信发生异常,整个协议便无法工作,还可能会导致不一致状态的出现,即任意一个节点的失败都会导致整个事务的失败。另外参与者在等待期间是同步阻塞的即一直持有资源并不做其他操作

3PC

  • 简述:3PC是2PC的改进版,将事务操作分为三阶段来完成,用于降低参与者的阻塞范围,并能在出现协调者单点故障的情况下达成一致
  • 执行过程
    • 阶段一:CanCommit阶段。事务询问阶段,协调者询问参与者 并获取反馈
    • 阶段二:PreCommint阶段。若参与者无法正常反馈,则结束事务。否则,发送执行事务操作指令,参与者执行具体事务并记录Undo和Redo信息,并反馈结果
    • 阶段三:DoCommit阶段。协调者正常工作且通信正常时,发送事务提交请求或者取消请求。否则,参与者会在等待超时之后自行提案事务。
  • 总结:相比2PC,3PC通过将事务进一步细分来降低参与者的阻塞范围,并且能够在协调者单点故障的时候继续达成一致,但这种做法也可能会导致数据的不一致。
时间: 2024-10-17 20:16:22

一致性协议之2PC,3PC的相关文章

分布式系统的一致性协议之 2PC 和 3PC

在分布式系统领域,有一个理论,对于分布式系统的设计影响非常大,那就是 CAP 理论,即对于一个分布式系统而言,它是无法同时满足 Consistency(强一致性).Availability(可用性) 和 Partition tolerance(分区容忍性) 这三个条件的,最多只能满足其中两个.但在实际中,由于网络环境是不可信的,所以分区容忍性几乎是必不可选的,设计者基本就是在一致性和可用性之间做选择,当然大部分情况下,大家都会选择牺牲一部分的一致性来保证可用性(可用性较差的系统非常影响用户体验的

三:分布式事务一致性协议2pc和3pc

一:分布式一致性协议--->对于一个分布式系统进行架构设计的过程中,往往会在系统的可用性和数据一致性之间进行反复的权衡,于是就产生了一系列的一致性协议.--->长期探索涌现出一大批经典的一致性协议和算法.其中最著名的就是二阶段提交协议,三阶段提交协议和paxos算法. 二:2PC与3PC--->在分布式系统中,每一个机器节点虽然都能够明确知道自己在进行事务操作过程中的结果是成功或失败,但却无法直接获取到其他分布式节点的操作结果.因此,当一个事务操作需要跨越多个分布式节点的时候,为了保持事

【分布式】一致性协议

一.前言 继续前面的学习,这篇我们来学习在分布式系统中最重要的一块,一致性协议,其中就包括了大名鼎鼎的Paxos算法. 二.2PC与3PC 在分布式系统中,每一个机器节点虽然能够明确知道自己在进行事务操作过程中的结果是成功或是失败,但是却无法直接获取到其他分布式节点的操作结果,因此,当一个事务操作需要跨越多个分布式节点的时候,为了保持事务处理的ACID的特性,需要引入协调者的组件来统一调度所有分布式节点的执行逻辑,而被调度的节点则被称为参与者,协调者负责调度参与者的行为并最终决定这些参与者是否要

一致性协议

2PC与3PC 在分布式系统中,每一个机器节点虽然都能够明确地知道自己在进行事务操作过程中的结果是成功或失败,但却无法直接获取到其他分布式节点的操作结果.因此,当一个事务操作需要跨越多个分布式节点的时候,为了保持事务处理的ACID特性,就需要引入一个称为"协调者(Coordinator)"的组件来统一调度所有分布式节点的执行逻辑,这些被调度的分布式节点则被称为"参与者(Participant)".协调者负责调度参与者的行为,并最终决定这些参与者是否要把事务真正提交.

2PC,3PC,Paxos,Raft,ISR

本文主要讲述2PC及3PC,以及Paxos以及Raft协议. 两类一致性(操作原子性与副本一致性) 2PC协议用于保证属于多个数据分片上的操作的原子性.这些数据分片可能分布在不同的服务器上,2PC协议保证多台服务器上的操作要么全部成功,要么全部失败. Paxos协议用于保证同一个数据分片的多个副本之间的数据一致性.当这些副本分布到不同的数据中心时,这个需求尤其强烈. 一.2PC(阻塞.数据不一致问题.单点问题) Two-Phase Commit,两阶段提交 1.阶段一:提交事务请求(投票阶段)

[从Paxos到ZooKeeper][分布式一致性原理与实践]<二>一致性协议

Overview 在<一>有介绍到,一个分布式系统的架构设计,往往会在系统的可用性和数据一致性之间进行反复的权衡,于是产生了一系列的一致性协议. 为解决分布式一致性问题,在长期的探索过程中,涌现了一大批经典的一致性协议和算法,其中最著名的就是二阶段提交协议.三阶段提交协议和Paxos算法了. 2PC与3PC 分布式系统中,每个机器节点虽然都能明确知道自己在进行事务操作过程中的结果是失败or成功,但却无法直接获取到其他分布式节点的操作结果. 因此,当一个事务操作需要跨越多个分布式节点的时候,为了

2-分布式一致性协议

分布式系统的设计,往往会反复权衡可用性和一致性,于是就产生了一系列的一致性协议,其中最著名的就是二阶段提交一些(2PC).三阶段提交协议(3PC)和Paxos协议. 一.二阶段提交协议(2PC) 在分布式系统中,各个节点之间在物理上相互独立,通过网络进行沟通和协调.由于存在事务机制,可以保证每个独立节点上的数据操作可以满足ACID.但是,相互独立的节点之间无法准确的知道其他节点中的事务执行情况.所以从理论上讲,两台机器理论上无法达到一致的状态.如果想让分布式部署的多台机器中的数据保持一致性,那么

2PC&3PC

在分布式系统中,每一个机器节点虽然都能够明确地知道自己在进行实物操作过程中的结果是成功或失败,但却无法直接获取到其他分布式节点的操作结果.为了保持实物处理的ACID特性,就需要引入一个称为"协调者(Coordinator)"的组件来统一调度所有分布式节点的执行逻辑,这些被调度的分布式节点则被称为"参与者(Participant)".协调者负责调度参与者的行为,并最终决定这些参与者是否要把事务真正进行提交. 2PC(Two-Phase Commit) 二阶段提交,是一

分布式系统中的一致性协议

前言 在分布式系统设计的过程中,我们需要考虑cap理论的指导思想,如下图所示,P分区容错性,考虑到分布式系统部署在多个结点上,因此分区容错性是分布式系统的最基本要具备的.因此我们只能在一致性和可用性之间作权衡.于是就出现了很多一致性协议.著名的协议有二阶段提交协议,三阶段提交协议和Paxos算法.本文主要介绍二阶段提交协议和三阶段提交协议的理论基础. 基本概念 ①二阶段提交. 2pc,是two-phase-commit的缩写,即二阶段提交.二阶段分为提交事务请求.执行事务提交. ②三阶段提交 3