深入理解分布式事务

作者: admin 分类: 事务 发布时间: 2017-05-07 22:22

从2Phase Lock到2Phase Commit

先来看一个单机事务模型

上面的单机事务我们很容易理解,问题来了在分布式系统中A、B不在同一台机器上如何做到Commit(unlockBob,unlockSmith)呢?

我们这里需要引入一个第三者(协调器)负责跨机提交,这里的协调器的选取为第一次提交到哪一个数据库节点,那么该节点即为协调器。

如果Bob或Smith账户有一个提交成功,另外一个提交失败,那么系统会等在这里,直到成功为止。

Oracle、Mysql的分布式事务是无法使用MVCC的(分布式中无法维护MVCC中的逻辑时间戳)

1、分布式事务的实现很可能会大大降低系统的TPS
2、分布式事务只能基于最基本的锁来做,而不能基础MVCC来做,这样一来读写之间是阻塞的
3、分布式事务的最大问题是延迟增加,如果实现了分布式事务的系统,当有一批热点数据的更新时,你要考虑与单机系统相比你的系统性能到底是提升了呢?还是下降了呢?
4、容易理解的系统,性能都不好,不容易理解的系统,性能往往都很好!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注