2PC

作者: 萝灏 | 来源:发表于2018-12-10 16:21 被阅读53次

2PC,是Two-Phase Commit 的缩写,也就是二阶段提交,是在数据库领域处理事务,保证原子性的一种常用算法。通常会把二阶段提交协议认为是一种一致性协议,在处理成功的时候统一执行事务,在处理失败的时候统一进行回滚,从而来有效的保证分布式数据的一致性。

协议说明

顾名思义,二阶段提交协议就是把事务的提交过程分为俩个阶段来进行处理,执行的过程如下:

  • 一、提交事务请求:
    协调者对所有的参与者发送事务内容并询问是否可以提交操作,并开始等待参与者的相应。参与者节点来执行事务操作,并把Undo和Redo的信息记录在日志中,当参与者成功的执行了事务就反馈给协调者Yes,表示事务可以执行;如果参与者没有成功的执行事务,那么就会反馈给协调者No相应,表示事务不可以执行。

  • 二、执行事务提交:
    当协调者从所有的参与者获得的反馈都是Yes的时候,就会执行事务的提交。协调者对所有的参与者发起一个Commit请求,当参与者收到了Commit请求之后就会正式的进行事务的提交,在完成了提交之后会反馈协调者一个Ack消息,当协调者收到了所有的Ack消息后完成事务。
    当协调者从所有的参与者获得的反馈包含了No,或者在等待超时之后没有获得所有的响应,就会中断事务,向所有的参与者发出rollback请求,参与者在收到了请求之后,回去查询在阶段一里记录的Undo信息来执行事务的回滚操作,并在完成回滚之后释放整个事务执行期间占用的资源,同样完成了回滚之后会反馈协调者一个Ack消息,当协调者收到了所有的Ack消息后完成事务中断。

优缺点

优点:原理简单,实现方便
缺点:同步阻塞,单点问题,数据不一致,太过保守。

缺点的前俩个都很容易理解,至于数据不一致的情况是在二阶段的commit的时候,可能有节点没有收到commit指令,于是出现了有的事务进行了提交,有的没有办法提交事务。太过保守则是任意一个节点的失败都会导致整个事务的失败。

相关文章

  • 第2章 一致性协议

    目录 2.1 2pc和3pc 2.2 paxos算法 2.1 2pc和3pc 2PC两阶段提交,分为两个阶段...

  • POXAS算法

    注:这里谈论的2PC不同于事务中的2PC,而是专门为了同步和高可用改过的2PC协议问题:寻求一种能够保证,在给定多...

  • 2PC和3PC

    2PC 两阶段提交又称2PC,2PC是一个非常经典的强一致、中心化的原子提交协议。 中心化是指协议中有两类节点:一...

  • (13)分布式协议对比

    一、2PC(XA),3PC是一路 因为实现“Atomic Commit”。生产中2PC(XA)有个严重问题,1)事...

  • 分布式事务解决方案-Seata实现2PC方案

    1 什么是2PC ​ 2PC即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)...

  • 分布式事务

    事务类型 2PC 2PC全称Two-phaseCommit,中文名是二阶段提交,是XA规范的实现思路,XA规范是 ...

  • 分布式事务之二阶段提交

    二阶段提交 2PC 2PC(Two-phase commit protocol)中文叫二阶段提交。二阶段提交是一种...

  • zookeeper 入门(二)

    本文主要内容: 2pc 3pczookeeper 能做什么? 2PC 和 3PC 在分布式系统中,每一个机器节点虽...

  • 2PC

    2PC,是Two-Phase Commit 的缩写,也就是二阶段提交,是在数据库领域处理事务,保证原子性的一种常用...

  • 2PC

    读写语义 分布式系统一致性保证要求各数据节点按同样的数据版本进行推进 写入成功的数据来读要保证读到 用户看到事务A...

网友评论

    本文标题:2PC

    本文链接:https://www.haomeiwen.com/subject/fvxdhqtx.html