|
知识路径: > 数据库主流应用技术 > 数据库主流应用技术 > 数据库主流应用技术 > 分布式数据库 > 分布事务管理 >
|
相关知识点:14个
|
|
|
|
分布式事务和集中式数据库中的事务一样具有下面的特性:
|
|
|
(1)原子性:事务的操作要么全部执行,要么全部不执行。当事务非正常终止时,其中间结果将被取消。事务的原子性保证数据库的状态总是从一个一致的状态变化到另一个一致的状态,而不会出现不一致的中间状态。
|
|
|
(2)可串行性或一致性:并发执行的几个事务,其操作的结果应与以某种顺序串行执行这几个事务所得出的结果相同,因此称为可串行性。这种可串行化的并行调度是由数据库系统的并发控制机制来完成,以保证并发事务执行时的数据库状态的一致。所以这种性质也称为事务的一致性。
|
|
|
(3)隔离性:一个没执行完的事务不能在其提交之前把自己的中间结果提供给其他的事务使用。因为未提交事务的结果不是最终结果,它有可能在以后的执行中被迫取消,如果其他的事务用到了它的中间结果,那么该事务也要夭折。
|
|
|
(4)持久性:当一个事务正常结束后,即提交后,其操作的结果将永久化,提交后发生的故障不会影响提交结果。即使发生了故障,系统应能够保证可以把事务的操作结果恢复过来。
|
|
|
人们常把事务的原子性(Atomicity)、可串行性(Serializability)或一致性(Consistency)、隔离性(Isolation)和持久性(Durability),称为事务的四个特性,简写为ASID或ACID。
|
|
|
由于分布式数据库系统的分布特性,分布式事务的四性更带有分布执行时的特性。例如,在分布式数据库系统中,为了保证事务的原子,组成这个分布式事务的各个子事务,要么全部都提交(成功结束),要么全都撤销(不成功结束),这就需要对各子事务进行协调和控制。此外,在分布式事务中,除了需要考虑访问数据互斥的存取操作序列外,还必须考虑大量的数据传送、通信原语和控制报文等,这些都是分布式事务所特有的性质。因此分布式事务与集中式数据库中的事务相比,在下面几个特性有所区别:
|
|
|
(1)执行特性:由于分布式事务执行时被分解成多个子事务执行,而各子事务间的操作需要进行协调,因此每一个分布式事务必须创建一个控制进程(亦称协调进程),以协调各子事务的操作,协调数据及控制报文的收发,决定事务的提交与夭折。而集中式事务的执行由并行调度算法调度,不必产生一个控制进程,也不必分解为子事务。
|
|
|
(2)操作特性:在分布式事务中,除了应用对数据的存取操作序列之外,还必须加入大量的通信原语,负责协调进程和代理进程(负责完成子事务)之间的数据传送,以及代理进程之间的数据传送。此外,为了协调子事务的执行,还要加入大量的控制原语。因此,分布式事务比集中式事务的组成要复杂,而且执行的方式也要复杂得多。
|
|
|
(3)控制报文:分布式数据库系统中,除了数据报文外,更增加了控制报文。因为除了要对数据进行存取操作外,还要对各子事务的操作进行协调,这样就有了大量的控制报文要在网上传输。
|
|
|