首页 理论教育事务管理机制体系结构-分布式数据库技术

事务管理机制体系结构-分布式数据库技术

【摘要】:事务管理器负责协调属于同一个应用的数据库操作的执行。图8.4所示的是分布式执行管理器的详细模型。基本的事务模型和机制在此阶段成型。针对不同的应用领域,大量先进的事务模型和机制涌现出来。图8.5事务管理的发展为了便于理解,有些概念略作如下介绍。性能系改变数据库状态的一种成功提交事务遇到故障时不丢失结果的能力。事务从平面变成嵌套形态,一个事务会由一系列子事务构成。

引入事务的概念,我们需要重新回顾体系结构模型,主要是对分布式执行管理器(distributed execution monitor)的角色做一些必要的扩充。

分布式执行管理器至少包含两个模块:事务管理器(transaction manager,TM)和调度器(scheduler,SC)。事务管理器负责协调属于同一个应用的数据库操作的执行。调度器则负责实现特定的并发控制算法,同步数据库存取。

分布事务管理中参与者的第三个成分是每个节点都有的本地恢复管理器。它们的功能是让每个本地数据库在出现故障时都能恢复到故障前的一致状态。

每个事务都从一个节点启动,称为启动节点(originating site)。一个事务的数据库操作的执行由该事务启动节点的事务管理器负责协调。

事务管理器用于实现与应用程序的接口,该应用程序的支持至少包括5个命令,即begintransaction、read、write、commit和abort。

●begin-transaction:对TM而言,这是一个新事务启动的标志。TM做的是一些记录工作,如记录事务名称、启动的应用,等等。

●read:如果数据项x存放在本地,则读出其值,返回给事务。否则,TM选择x的一个副本,请求其副本予以返回。

●write:TM负责协调x所在的每个节点上的更新。

●commit:TM负责协调前面写操作实施过程中的与数据项相关的数据库的物理更新。

●abort:TM保证事务的任何影响都不会反映在数据库里。

TM可以同时与不同节点上的SC和数据处理器通信。图8.4所示的是分布式执行管理器的详细模型。

图8.4 分布式执行管理器的详细模型

下面会按分布式执行管理器的模型进行讨论,尤其是对算法的讨论。

从数据库技术诞生开始,就对事务管理展开了讨论。Ting Wang等在其《A survey on the history of transaction management:from flat to grid transactions》论文中作了很好的分析。我们在这里借助其分析作一介绍。

在早期的集中式数据库系统里,事务机制开发成“debit-credit”形态的数据库操作。随后的发展十分迅速,分布式数据库、松耦合的数据库甚至更多复杂数据库的出现,带来了新的挑战。

参考文献[7]把最初的数据库事务管理阶段称为石器时代(stone age)。在石器时代,没有明显的事务模型和机制概念。

第二阶段被称为经典时代(classic history)。在经典时代,人们认识到,实现多用户、并发环境可靠性是其主要目标。基本的事务模型和机制在此阶段成型。

第三阶段称为中世纪时代(middle age)。在中世纪时代,商务应用越来越复杂,对事务管理的需求也迅速增长。经典时代发展的简单模型和机制已不能满足需求。针对不同的应用领域,大量先进的事务模型和机制涌现出来。(www.chuimin.cn)

第四阶段是文艺复兴时代(renaissance age)。在这一阶段,一些过程控制系统,如工作流管理系统(Wf MS)等的事务模型与机制涌现出来。这类事务也称工作流事务。

第五阶段称为现代(modern times)。最新的发展可以列入现代,尤其是因特网时代的需求和移动计算的需求在这个阶段很明显,对协作的要求也越来越迫切。

我们可以用一张图(请参见参考文献[7])来描述事务管理的发展,如图8.5所示。图中,Tx M即事务管理的缩写,每个阶段下面的文字说明该阶段提出的新概念与新技术,其中用的都是缩写。Wf Tx即工作流事务(workflow transaction),WS-Tx即Web Service transaction。限于篇幅,细节不再赘述,有兴趣的读者请参见相关文献。

图8.5 事务管理的发展

为了便于理解,有些概念略作如下介绍。

●save points:表示保存点,即事务信息保存的时间点。

●check points:表示校验点。

●distributed Tx M:表示分布式事务管理。

1.经典时代:经典事务模型

在经典时代,大容量多用户、并发存取的经典思想与模型在此奠定。这也是下面几章要深入讨论的内容。

经典时代对ACID性质有了严格定义,鉴于前面已有深入讨论,这里不再赘述。值得一提的是,人们也用VCRP性质来讨论事务。所谓VCRP,即可见性(visibility)、一致性(consistency)、恢复性(recovery)和性能(permanence),可以看成是ACID的另一种通用表示。可见性代表一个执行事务看到其他事务结果的能力。一致性是指事务提交后数据库状态的正确性。恢复性表示发生故障后数据库能恢复到前面正确状态的能力。性能系改变数据库状态的一种成功提交事务遇到故障时不丢失结果的能力。这时面对的是平面事务。

2.中世纪时代:先进事务模型

在这个时代,事务的持续性变长,也变得更复杂。此时的事务模型可以称为先进事务模型。事务从平面变成嵌套形态,一个事务会由一系列子事务构成。事务出现故障时不一定必须从头开始重启动,有时也可以从中间开始重启动。分布式数据库系统事务模型就属于这一时代。这类事务是嵌套事务,持续时间也较常规事务长,校验点技术在这里很重要。

3.文艺复兴时代:工作流事务

参考文献[7]把这一阶段称为文艺复兴时代。最典型的是工作流系统的大量出现。有一个国际组织——工作流管理论坛(Wf MC)[2]负责工作流技术的规范与定义。工作流是指业务流程的全部或部分自动化。工作流技术的研究聚焦在业务流程建模、业务流程设计、业务流程重组等,细节这里不讨论,有兴趣的读者可以参阅参考文献[8]。

4.现代

这个时代的事务模型可以称为Web服务事务(Web services transactions)和网格事务(grid transactions)等。这是因特网崛起出现的新形态,这里不再赘述。