事务和事务管理是数据库系统中的两个重要概念。图8.1事务模型图8.1中,事务T将数据库从一致状态转换成另一个一致状态,事务执行期间,数据库可能临时处于不一致状态。事务管理就是这样一种机制,它负责让数据库始终保持一个一致状态,即便是并发存取或发生故障。例8.1中有一个假设,即事务总是会按目的终止。如果事务成功完成,我们称为事务提交。事务夭折的原因多种多样。......
2023-10-28
引入事务的概念,我们需要重新回顾体系结构模型,主要是对分布式执行管理器(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)等。这是因特网崛起出现的新形态,这里不再赘述。
有关分布式数据库技术的文章
事务和事务管理是数据库系统中的两个重要概念。图8.1事务模型图8.1中,事务T将数据库从一致状态转换成另一个一致状态,事务执行期间,数据库可能临时处于不一致状态。事务管理就是这样一种机制,它负责让数据库始终保持一个一致状态,即便是并发存取或发生故障。例8.1中有一个假设,即事务总是会按目的终止。如果事务成功完成,我们称为事务提交。事务夭折的原因多种多样。......
2023-10-28
例如,可以按照各种方式将事务进行分类。也可以将事务分为在线处理事务和批处理事务。图8.3各种事务模型 下面看一些事务的例子。按事务结构可分为平面事务和嵌套事务。子事务的提交是父事务提交的条件。......
2023-10-28
首先我们讨论并行计算机及其体系结构。并行系统与并行计算密切关联。图14.1共享内存体系结构对于数据库系统来说,大部分共享内存的商务产品可以使用查询间并行算法来提高事务吞吐量和使用查询内并行算法来节省决策支持查询的响应时间。图14.2共享磁盘体系结构共享磁盘的优点:成本低、高可扩展性、负载均衡、高可用性,以及能方便地迁移到单处理器系统。图14.3无共享体系结构无共享的并行数据库系统如Teradata的DBC和Tandem的NonStop SQL等。......
2023-10-28
查询优化器体系结构如图6.2所示。图6.2查询优化器体系结构查询优化器的工作过程一般分为两个阶段:重写阶段和规划阶段。在集中式系统中,查询执行策略可以很好地使用扩展关系代数来表示。集中式查询处理器的主要角色是为给定查询根据等价原理选择最好的关系代数查询表达形式。同时,除了要选出关系代数运算的顺序外,分布查询处理器还需确定最佳的运算执行节点。......
2023-10-28
体系结构是计算机科学中常用的概念。什么是体系结构呢?图2.1数据库系统的基本结构由图2.1可知,数据库管理系统构建在操作系统上,用于管理数据库,给用户提供所需的服务。那么,数据库管理系统的体系结构是怎样的呢?图2.22层数据库系统结构图2.33层数据库系统结构3.多层结构对于大型、复杂的应用,3层结构显得力不从心,因此更多的层次出现在系统中。......
2023-10-28
要讨论体系结构问题,首先要回顾前面提到的体系结构模型,再讨论本块恢复管理器和数据库缓冲管理器间的接口。要指出的是,LRM执行的事务操作仅对易失数据库实施。如果没有空余的缓冲空间,LRM就选择一个缓冲页面写入稳定数据库,空出一个页面,再读一个请求的页面到空出来的缓冲空间。数据库缓冲管理器也提供接口,借助该接口,LRM可以让它写回缓冲页面。......
2023-10-28
事务的性质可以用ACID来表示,即原子性、一致性、隔离性和持续性。在这类故障中维持事务原子性的机制称为故障恢复。验证事务是否一致是由语义数据控制实现的。 假设有两个并发事务对用户的银行账户x进行处理,它们都要存取数据项x。......
2023-10-28
可串行化是经典数据库事务并发控制的正确性判据。 抽象数据类型集合的前向交换关系兼容和后向交换关系兼容分别如表15.3和表15.4所示。下面从可交换性上来讨论面向对象数据库的事务管理问题。对象系统中,如果使用封锁技术,则封锁颗粒会有变化。这是因为没有把对象的语义考虑在内。ADT上的事务执行需要多级机制。......
2023-10-28
相关推荐