两阶段提交是一种为了始终保持两个独立逻辑体一致的执行方式。
如果要完成提交操作在执行层面被分成了两个部分(prepare->commit),prepare阶段可以理解为询问所有参与者是否已经准备好,commit阶段确认完所有参与者准备完成那么具体执行相关操作。
通过两阶段提交保证了当一个事物会涉及多方参与时状态的一致性。
mysql客户端显示输入"commit"时候或者隐式提交都会触发的2PC过程。
举个例子:
update kid_info set age=18 where id=1
执行流程如下:
innodb在写redolog日志的时候,会先写log buffer,执行阶段就会写,提交阶段就写磁盘(先prepare,后commit阶段)。binlog 是在提交阶段写。
参考:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。