分布式数据库

#分布式数据库

##分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于分布式系统的不同节点上,在分布式事务中,会有多个节点参与。

##相关概念
1、事务 一个事务是一个完整的工作单元,由多个独立的计算任务组成,多个任务在逻辑上是原子的。
2、全局事务 一次性操作多个资源管理器的事务就是全局事务。
3、分支事务 在全局事务中,每个资源管理器都有自己独立的任务,这些任务的集合就是这个资源管理器的分支任务。
4、控制线程 用来表示一个工作线程,主要关联AP TM RM三者的线程,也就是事务的上下文环境,简单来说就是用来标识全局事务和分支事务关系的线程。


##分布式事务模型与规范
1、X/Open组织提出了XA分布式事务的规范
2、DTP模型 定义了三个组件,即Application Program、 Resoiurce Manager、 Transaction Manager
3、AP 应用程序,定义了事务的边界,并定义了构成该事务的应用程序的特定操作。
4、RM 资源管理器 可以理解为消息服务器管理系统,应用程序通过资源管理器对资源进行控制,资源必须实现XA定义的接口。资源管理器提供了存储共享资源的支持。
5、TM 事务管理器,负责协调和管理事务,提供给AP编程接口并管理资源管理器。事务管理器向事务指定标识,监视它们的进程,并负责处理事务的完成和失败。
AP和RM是一定需要的,而事务管理器TM是额外引入的,在分布式系统中,两台机器理论上无法达到一致的状态,需要引入一个单点进行协调。事务管理器控制着全局事务,管理事务的生命周期,并协调资源。

##AP、RM、TM之间通信
1、AP和RM之间可以使用RM自带的native API交互,这种方式不在TM管理范围内.
当AP和RM之间进行分布式事务的时候,AP需要得到由TM管理的RM的连接,然后使用XA 的native API进行交互。
2、AP和TM之间通过TX接口交互
3、TM和RM之间通过XA接口交互,TM管理RM的连接,实现了两阶段提交。

##两阶段提交协议 2PC
第一阶段
prepare
---------->资源1
TM
prepare
----------->资源2


第二阶段
commit
---------->资源1
TM
commit
----------->资源2


事务管理器在多个资源之间进行协调,自身需要进行很多日志记录,网络交互增多,引入事务管理器的开销。

##大型网站一致性理论CAP

1、Consistency 所有的节点在同一时间读到相同的数据,当数据写入成功后,所有的节点会同时看到这个新数据。
2、Availability 无论成功还是失败,系统一定要有响应。
3、Partition-Tolerance 分区容忍性,系统一部分出现了问题,系统任能继续工作。

 

posted @ 2016-12-09 20:59  John95  阅读(200)  评论(0编辑  收藏  举报