专栏名称: 数据分析与开发
伯乐在线旗下账号,分享数据库相关技术文章、教程和工具,另外还包括数据库相关的工作。偶尔也谈谈程序员人生 :)
目录
相关文章推荐
数据中心运维管理  ·  施耐德电气PowerLogic™ ... ·  18 小时前  
数据中心运维管理  ·  6月1日起实施!我国首部绿色数据中心评价国标 ... ·  昨天  
数据中心运维管理  ·  应急预案和应急演练到底怎么做? ·  18 小时前  
51好读  ›  专栏  ›  数据分析与开发

分布式系统常见的事务处理机制

数据分析与开发  · 公众号  · 数据库  · 2017-05-17 20:18

正文

请到「今天看啥」查看全文



  • 保证执行结果的正确性

  • 保证数据的一致性

  • ACID


常见的事务处理机制


Master-Slave 复制


Slave 一般是 Master 的备份。在这样的系统中,一般是如下设计的:


  • 读写请求都由 Master 负责。

  • 写请求写到 Master 上后,由 Master 同步到 Slave 上。


这种机制的特点是:


  • 数据同步通常是异步的

  • 有良好的吞吐量,低延迟 * 在大多数 RDBMS 中支持,比如 MySQL二进制日志

  • 弱/最终一致性


这种机制的缺点是,如果 Master 挂了,Slave 只能提供读服务,而没有写服务。


Master-Master 多主复制


指一个系统存在两个或多个Master,每个Master都提供读写服务。这个机制是Master-Slave的加强版,数据间同步一般是通过Master间的异步完成,所以是最终一致性。 Master-Master的好处是,一台Master挂了,别的Master可以正常做读写服务,他和Master-Slave一样,当数据没有被复制到别的Master上时,数据会丢失。很多数据库都支持Master-Master的Replication的机制。


这种机制的特点是:


  • 异步

  • 最终的一致性

  • 多个节点间需要序列化协议


两阶段提交


两阶段提交协议 (Two-phase commit protocol,2PC)的过程涉及到协调者和参与者。协调者可以看做成事务的发起者,同时也是事务的一个参与者。对于一个分布式事务来说,一个事务是涉及到多个参与者的。具体的两阶段提交的过程如下:


第一阶段(准备阶段)


  • 协调者节点向所有参与者节点询问是否可以执行提交操作(vote),并开始等待各参与者节点的响应。


  • 参与者节点执行询问发起为止的所有事务操作,并将 Undo 信息和 Redo 信息写入日志。(注意:若成功这里其实每个参与者已经执行了事务操作)








请到「今天看啥」查看全文