美文网首页
为什么需要两阶段提交

为什么需要两阶段提交

作者: 摸摸脸上的胡渣 | 来源:发表于2020-03-03 17:13 被阅读0次

如果不是两阶段提交,只能要么先redo,再binlog。要么先binlog,再redolog。看一下会有什么问题
假设使用一下语句进行更改

update table set id = 1 where id =0;

先redo 再binlog

先写redo,然后crash了,binlog没同步上。就会导致crash重建时,有了id=1的记录,但是用binlog去同步其他从节点时,依旧是id=0;

先binlog再redo

先写binlog,然后crash了,redo log没同步上。就会导致crash重建时无法进行id=1记录的恢复,实际上id=1的操作就丢失了,但是在binlog中却保存了,用binlog去同步其他从节点时,id=1;

相关文章

  • 为什么需要两阶段提交

    如果不是两阶段提交,只能要么先redo,再binlog。要么先binlog,再redolog。看一下会有什么问题假...

  • MySQL如何保证crash-safe的?

    背景知识 可以先看一下我写的为什么需要两阶段提交,两阶段提交+redo log保证了crash-safe 疑问 两...

  • 分布式事务

    XA分布式事务协议 - 两阶段提交 & 三阶段提交 两阶段提交 两阶段提交存在的缺点 三阶段提交

  • redolog与binlog为什么需要两阶段提交?

    MySQL事务提交的时候,需要同时完成redo log和binlog的提交,为了保证两个日志的一致性,需要用到两阶...

  • 两阶段提交

    一、两阶段事务提交模型 二、实现方案1、数据库层实现 缺点:锁持有时间长、单点、阻塞等 2、业务层面实现 1、tc...

  • 分布式事务

    对分布式事务及两阶段提交、三阶段提交的理解 关于分布式事务、两阶段提交协议、三阶提交协议

  • 分布式事务解决方案之2PC(一)

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

  • zk分布式一致性

    1.两阶段提交(2PC) 2pc:两阶段提交算法,需要保证任何一个资源都成功,整个分布式事务才成功; 它本身是一致...

  • 三阶段提交3PC(3-phase commit)

    三阶段提交3PC(3-phase commit) [TOC] 三阶段提交是为解决两阶段提交协议的缺点而设计的。与两...

  • 两阶段提交协议(2PC)、三阶提交协议(3PC)

    两阶段提交协议(2PC)、三阶提交协议(3PC) 2PC 二阶段提交协议是将事务的提交过程拆分为两个阶段来执行,分...

网友评论

      本文标题:为什么需要两阶段提交

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