一个事务是对数据库进行读和写的一个序列。传统数据库(RDB)中事务有两个明显的特性:原子性和可串行性。原子性意指事务中的读和写操作可看作是对数据库的单个原子操作。可串行性意指多个事务并发执行的效果与一次执行这些事务中的一个的效果相同。因而事务管理的任务就是保证事务的原子性和可串行性,它由两部分组成:并发控制和恢复。并发控制涉及到多个事务对数据库的某个公共部分进行同时存取的自动控制。恢复则涉及到将数据库恢复到事务故障之前业已存在的状态。[1]

事务处理系统由事务管理器、恢复管理器、锁管理器、死锁管理器、缓存管理器构成。

事务管理器负责产生事务并为其分配事务标识,那么它应该可以根据需要产生足够多的子事务并分配足够多的事务标识。当子事务提交时,事务管理器需要知道其父事务标识并执行一系列操作,那么,如果能从子事务标识中直接得到其父事务标识,将大大提高事务处理的效率。

在嵌套事务模型中,子事务相对于父事务及兄弟事务来说,能独立地提交,子事务的卷回也不会导致父事务及兄弟事务的卷回。如果任何一级上的(子)事务回退,则它的所有子事务均回退,不管它们是否实施了局部的提交。因此,子事务提交时,恢复管理器需要将它的日志链接到父事务的日志上,这就要求恢复管理器知道父事务标识。那么,如果能从子事务标识中直接得到其父事务标识,将大大提高恢复管理器的工作效率。

在嵌套事务模型中,子事务一旦提交,父事务就可观察到它作出的所有改变。父事务在子事务开始前作出的改变对子事务是可见的。子事务并发运行时,变化不向兄弟事务显示;否则,子事务一旦提交,其变化向兄弟事务显示。因此,子事务提交时,它将拥有的锁转交给父事务。当事务申请锁时,锁管理器负责判断锁的相容性:如果相容,则分配给事务相应的锁;否则,判断申请锁的事务是否是拥有锁的事务的后代,若是则可以为其分配相应的锁,否则不能满足它的申请要求。那么,如果能从两个事务的标识上直接判断出它们之间是否具有祖先一后代关系,将大大提高锁管理器的工作效率。

新型应用要求允许事务结构中最大程度的并行性,包括兄弟事务之间的并行和父子事务之间的并行。这些导致了事务之间等待关系的多样化,并进一步引起死锁类型的多样化,这无疑增加了死锁检测的难度。为了提高死锁检测的效率,尽早发现“隐藏”的死锁,首先必须有效地表示各种等待关系。在嵌套事务模型下,死锁管理器主要处理三种等待关系 :

(1)申请锁的事务等待拥有锁的事务;

(2)父事务等待所有子事务的提交;

(3)申请锁的事务等待拥有锁的事务的满足下列条件的最高层的祖先:它不是申请锁的事务的祖先。

第三种等待关系的有效表示能够避免大量无意义的工作,但这需要找出两个事务的最高层的非共同祖先。为了达到目的,需要对事务层次结构进行不断的向上搜索和比较,这是一项开销很大的工作。那么,如果能从两个事务的标识上直接找出它们的最高层的非共同祖先,将避免一项开销很大的工作,从而大大提高死锁管理器的工作效率。

刚刚查询:事务管理 土壤胶体 鞭毛虫 凤尾金针 七冲原始森林 重要的 鲤鱼荸荠鸡内金炖汤 Directindustry 电影导演 文学家 天添爱营养包 土木工程结构检测鉴定与加固改造新进展及工程实例 江西省粮食局 永春牌坊 良浅水电站 外果皮 丝氨酸 什么话 ������С�� 不协调 �������Ϻ��̻� 西双版纳原始森林 印刷机 Mueller- 过氧化物 黄花菜 事实证明 聆听中国·月舞 花神炎舞 Automobile 代笔人 沙头角 大学生创新实践基地 代表会 东平湖管理局 泰安出入境检验检疫局 紫藤花 自筹资金 边防连 白杨树 彼得·麦维亚 非正常 古璇 Pegmatite 紫外吸收检测器 万海峰将军旧居 语音控制播放器 卢森堡的杰奎塔 东倒西歪小老鼠 香蕉果酱蛋糕卷 荭蓼 都必须 冈萨雷斯 卡伦·卡朋特 蒂皮·德格雷 鸿源御都温泉 我们是一个人 远古工程巡礼 罗迪尼亚大陆 油咖喱蒸肉 大孢黑蛋巢 法兰西内战 玩世不恭 兵家必争 了解到 又一个 肠胃速康方 折叠式 亚利桑那州 敏思博客 圣玛尔塔 萝卜牛仔骨汤 宁县 打印机 戒毒所 磨料水射流切割 幸存者第24季 冬暖夏凉 显现出 指甲油
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 消耗时间:0.007秒 内存2.5MB