[分布式系统][事务]对2PC的理解

2PC(两阶段提交)是一种确保分布式事务原子性的提交协议。它分为投票表决阶段和提交阶段,通过协调者与参与者之间的通信来决定是否提交事务。在分布式系统中,2PC可能导致同步阻塞、单点故障和数据不一致等问题。学习2PC有助于理解分布式事务处理的基本原理。
摘要由CSDN通过智能技术生成

今天学习2PC相关知识,结合论文概念和具体的例子理解。之后会编程自己实现一下。

全文关键词:提交协议、原子性、协调者、阻塞、关键缺点。

P.S. 通过右侧自动目录查找相关内容更方便噢~


2PC概念

两阶段提交(two-phase commit,2PC)是一种保证分布式事务原子性提交协议

回顾一下原子性:事务的所有动作要么全被执行,要么全都不执行。

在数据一致性中的含义是:要么所有副本(备份数据)同时修改某个数值,要么都不更改,以此来保证数据的强一致性。

协议内容简单概括为:每个参与者(participant)将自己的操作成败通知协调者(coordinator),再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是取消操作。

在分布式系统中,每个节点只知道自己操作的成功或者失败。因此当一个事务跨越多个节点时,为了保持ACID特性,引入协调者和参与者机制。协调者是该事务的起源站点,负责协调所有参与者并决定是否提交事务。协调者遵循全局提交规则进行全局决策。


2PC站点间通信方法

集中式2PC通信

当通信只存在于协调者和参与者之间,参与者之间不通信时。

线性2PC通信

无并行性,性能较低。

分布式2PC通信

每个参与者在第一阶段结束的时候就会依据全局提交规则做出自己的决策,故不需要线性2PC的第二阶段。

每个参与者需要知道其他参与者,故协调者发送“prepare”消息时应附加一个所有参与者的列表。


2PC具体内容

状态转移图:(左协调者,右参与者)

流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>