现代事务的事务集群模型

上传人:jiups****uk12 文档编号:40335967 上传时间:2018-05-25 格式:PDF 页数:5 大小:408.92KB
返回 下载 相关 举报
现代事务的事务集群模型_第1页
第1页 / 共5页
现代事务的事务集群模型_第2页
第2页 / 共5页
现代事务的事务集群模型_第3页
第3页 / 共5页
现代事务的事务集群模型_第4页
第4页 / 共5页
现代事务的事务集群模型_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《现代事务的事务集群模型》由会员分享,可在线阅读,更多相关《现代事务的事务集群模型(5页珍藏版)》请在金锄头文库上搜索。

1、计算机科学2 0 0 2 V 0 1 2 9 N 9 - 8 ( 增刊)现代事务的事务集群模型AT r a n s a c t i o n S e tM o d e lf o rA d v a n c eT r a n s a c t i o n陈明 ( 上海水产大学计算机学院上海2 0 0 0 9 0 )A b s t r a c tW ep r e s e n tat r a n s a c t i o nm o d e li nt h i sp a p e r T h em o d e lc h a r a c t e r i z e st h ep r o p e r t i e so

2、 fa d v a n c e st r a n s a c t i o n ,s u c ha sg e n e r a l i z e da t o m i c i t y ,s e ti s o l a t i o n ,s e tc o n s i s t e n c ya n dd u r a b i l i t y A f t e rc o m p a r i n gw i t ho t h e ra d v a n c et r a n s a c t i o nm o d e l s ,w ea l s od i s c u s st h ef i n e n e s sc o

3、 n c u r r e n tt e c h n o l o g y K e y w o r d sA d v a n c et r a n s a c t i o n ,V e r s i o nd a t a b a s e ,G e n e r a l i z e da t o m i c i t y ,S e ti s o l a t i o n ,C o o p e r a t i v ec o m m i ts e t ,S e tc o n s i s t e n c y ,S e ts e r i a l i z a b i l i t y1 引言传统事务模型中事务是数据库系

4、统的基本工作单元,具有原子性、隔离性、一致性和持久性( 简称A C I D n 3 ) 。这四种特性使得传统事务能保证数据库从一种一致性状态转到另一种一致性状态。而恰 恰是A C I D 特性影响了传统事务模型在现代数据库领域应用,因为这些应用往往包含有一些长寿的、彼此合作的、嵌套的或有内部结构的活动。长寿是指应用的持续时间长。嵌套是指彼此有 数据的交换和功能的嵌套。现代事务本身就是存活期长的事务,嵌套的事务 2 J 6 ,现代事务不一定具有原子性、隔离性等传统特性。本文将现代事务分解成事务树,提出版本数据库的概念和事务模型的构 架。并对应于传统事务的A C I D 属性提出广义原子性、集群隔

5、离性和集群一致性等概念。2 相关工作的分析人们对非传统事务进行了许多的研究。大多数 的研究都是基于将事务分解成更小满足A C I D 的逻辑单元。2 1S a g a s 和基于语义的分解模型 S a g a s 的基本思想是将一个现代事务T 分解成 一系列相关的独立步骤集。对其中的前n 一1 个步骤,每个步骤T 。都给一个补偿步骤C 。,用以语意地U n d o 步骤T 。提交后的结果。如果T 的所有步骤都 提交后,事务T 才提交并终止,如果T 的步骤序列 中的某个步骤A b o r t e d ,则这个步骤后的所有步骤都将A b o r t e d ,并对这个步骤前的已提交的步骤进行结果补

6、偿,然后事务T 本身夭折。与S a g a s 类似,基于语义的事务分解模型也是 将一个事务分解成原子步骤来执行。同样在这个模2 】2 型中也定义类似的补偿步骤,但补偿步骤是补偿夭折步骤前的所有提交步骤的结果,即一次性补偿。这两个模型的特点是结果的补偿性。另外,都允许其他事务存取中间结果,这将提高并发度。其缺点是:1 采用传统的加锁机制,由予现代事务的长寿性,加锁将影响事务的并发性。2 一个步骤A b o r t e d 时,整个事务将A b o r t e d 。3 一旦系统崩溃,所有活动事务都将A b o r t e d 。2 2S p l i t J o i n 模型S p l i t

7、T r a n s a c t i o n 在一个事务正在执行时将其分解成两个申行执行的互相独立新事务。这种模型就是S p l i t J o i n 模型。显然,它支持事务的动态重构,并且支持广义原子性。其缺点也是采用传统的加锁机制并且系统崩溃后,所有活动事务都将A b o r t e d 。2 5 嵌套事务一个嵌套事务就是一棵事务树或叫子事务的层 次。根上事务包含下一层的子事务,每个子事务又可以分成下一层的嵌套子事务和原子子事务n 引,在叶节点上的事务都是原子子事务。每个父事务持有的对象只有其子事务才可存取,而每个子事务提交后 的结果也只有其父事务才可见。如果事务在任何嵌套的层次上回滚,则

8、不管其子事务是否提交,他们都将回滚。这个模型支持事务组隔离性和组一致性。但 是,中间结果不可见。同时,系统的崩溃也必然导致所有活动事务的A b o r t e d 。 2 4 契约模型 契约被定义为带有一系列控制操作流的预定义行为的集合。他强调契约执行必须是向前恢复的。契 约模型支持两层事务结构,其中的事务都满足A C I D 特性,并且所有子事务都是外涵子事务。但当将事务树当作一个事务组时,不支持组独立性,也不支持事务的动态构造。 综上所述,如果能提出一个事务模型既能保留以上模型的优点如组隔离性、组一致性、某些中间结 果的可见性,又能在某些子事务A b o r t e d 后,不需要将整个事

9、务的结果都回滚,而且当系统崩溃后,活动 事务一般都能够从某些状态开始继续往下执行,这 些对寿命非常长的现代事务来说将是很重要的。正是基于这些想法,我们提出了以下现代事务的新模型。5 现代事务模型的新构架将不满足A C I D 属性事务都叫现代事务,而将 满足A C I D 四属性事务叫原子事务。设一个现代事 务集为T = T t ,T 。) ,我们将每个事务T i 分解 成一个事务树,但对每个非原子的子事务都建立它们的版本数据库以临时管理其中间结果,并且让外涵子事务的结果能让其他事务的子事务存取,同时 对满足广义原子性的事务动态分解。当一个事务要夭折时,在保证系统一致性的情 况下,用户能够保留

10、某些操作的结果,这种事务就满 足广义原子性。所谓系统的一致性是指数据库中的所有对象都是一致的。定义5 1 ( 广义原子性)设T 是一个非原子事 务,如果T 必需A b o r t 时,T 可以分解成T 1 和T 2 ,这时T 。可以提交,而让T 。A b o r t ,则就说事务T 具有广义原子性。定义5 2 ( 内部子事务) 如果一个子事务T i j 提 交后所修改或产生的数据库对象只能由其父事务 T i 或T i 的其他子事务T i l 存取,则这个子事务T j j 叫内部子事务,记为:S u b l 。( T i j ) 。定义5 5 ( 外涵予事务)如果一个子事务T i j 提交后其修

11、改或产生的数据库对象不但能由其父事务 T t 和T i 的子事务存取,而且能被与其并行处理的其他事务的子事务存取,则这个子事务T t j 叫外涵子事务,记为:S u b E 。( T i j ) 。 5 1 版本数据库 在本模型中,当一个事务T t 启动时,原始数据 库对T i 要存取的数据对象通过授权读或写建立T t的版本数据库。这样T t 存取的数据对象都在其版本数据库中保存和操纵。在这个事务提交或夭折前。没 有拥有这个版本数据库的事务允许,其他任何事务 都不能存取其中间结果。同样,对于事务T i 的非叶结点T i j 也从其父数据库或它能存取的其他子事务 版本库中产生其版本数据库,对于叶

12、结点直接存取其父数据库。每个版本数据库都有自己的管理系统,提供数据库管理,授权管理及事务管理。 授权读有两种情况:( 1 ) 原始数据库授权读:G r a n t R ( x ,T i ) 当事务T i 请求读数据对象x ,原始数据库授权T ;在它的版 本数据库中产生一个x 的新版本x t = G r a n t R ( x , T i ) 。这种授权当T i 提交或夭折时不需传回任何结果给原始数据库,只需发回一个信息。( 2 ) 对子事务授权读:G r a n t R ( x i ,T i j T H ) 当非 原子子事务T u 请求对象X 的第i 个版本的拥有者 T 日读这个对象时,T t

13、 j 的版本数据库授权h 在它的 版本数据库中从x t 产生一个新版本x ,一G r a n t R( X i ,T i j T l 【1 ) 。同样这种授权当T 提交或夭折时不 需将结果传回T i i 的版本库中只需发回一个信息,而且这种授权只能是父事务授权子事务或并行执行的其他事务的子事务。 授权写有两种情况:( 1 ) 原始数据库授权写:G r a n t W ( x ,T t ) 当事务 T i 请求写数据对象X ,原始数据库授权T i 在它的版 本数据库中产生一个x 的新版本X - = G r a n t W ( x ,T t ) 。这种授权当T t 提交时回传结果给原始数据库,夭拆

14、时结果不回传,只发回一个信息。( 2 ) 对子事务授权写:G r a n t W ( x i ,T i i ,T H ) 当 非原子子事务T H 请求对象X 的第i 个版本的拥有 者T i j 写这个对象时,T i j 的版本数据库授权T u 在它 的版本数据库中从X ;产生一个新版本x j G r a n t W ( x t ,T i j T u ) 。同样这种授权当T H 提交需将结果回传到T ;i 的版本库中,夭折时不需回传,只是发回一 个信息。而且这种授权只能是父事务授权子事务或并行执行的其他事务的子事务。 版本数据库的层次结构:由于事务是一个树型结构,对于事务集T = T l T 。

15、) ,每个事务及其 非原子手事务都有其版本数据库,每个数据库都有 数据库管理器、事务管理器、授权管理器,故版本数据库结构是一个层次结构。授权协议:外涵子事务的结果,能被其他子事务 存取。因此在授权读或写时必须有一个协议来协调,授权管理器将根据协议来进行授权管理。 ( 1 ) - - 个数据对象x 或其某个版本X t 被授权某 个子事务读或写,原始数据库或版本数据库还能授 权其他事务或子事务读这个对象x 或其版本X i ; ( 2 ) 一个对象X 或其某个版本x t 被授权某个子事务读时,原始数据库或版本数据库还能授权其他 事务或子事务写这个对象X 或其版本x ; ( 3 ) 原始数据库在授权某

16、个事务写x 时,只有当它收回授权后才能授权其他事务写这个对象x ; ( 4 ) 除外涵子事务产生的对象版本x i 能被其他 并行执行的子事务存取外,其他对象的版本数据库只能授权其本身的子事务读或写; ( 5 ) 一个对象的某个版本X t 被授权写后,只能当收回授权后才能授权其他子事务写这个版本。 协议的复杂性:包括时间和信息传递复杂性。时2 1 3 间复杂性是指根据协议产生一次授权的时间,包括 三个阶段:申请授权、响应和产生授权阶段。信息传递复杂性是指产生一次授权要传递多少信息,设n 是授权读或写x i 的事务数量,上面每个阶段都要传递一次信息,因此发生一次授权要传递3 n 次信息。 5 2 版本数据库的动态产生和撤消版本数据库的产生包括两个方面:一方面,当一个事务集T T 1 ”,T 。) 并行执行时原始数据库的 授权管理根据协议授权每个事务T i 产生它要存取 的对象的版本,在这里只有当数据库授权一个事务写一个对象时,其他事务要得到这个对象

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号