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

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

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

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

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

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

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

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

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

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

刚刚查询:事务管理 Encyclopedia ɽ�º��� 单功能 生活经验 反射器 脑脊髓 Polistes 计算机所 箜篌吟 �´����� 芭拉花 长安街 大别山主峰景区 雷沙汤圆 陈启峻 犯罪嫌疑人 乔·佩里 丁基橡胶 小奥兹Jr 手把手教你成为理财行家 Acadagnostus 虽然是 两大党 三把火 Momentum 葡萄牙语 反射线 群众办报 �л������� lol加速器 公元468年 中国边疆研究资料文库·中国边疆方志续编:东北及北部.全22册 麦翠娴 辣酱油 不好过 retrieval 当地时间 中华革命党 f-blockelement 一九三五年 章德平 牧羊犬 scattered 宽容度 到处都 �ݹ������� 新城镇 79.08513 Match Factor 全力以赴 自体移植 高流圩 金牛座 达不到 工业家 达索汉 中高档 嗅神经 沙松平 不分开 羊毛衫 看热闹 洪巧玲 看得懂 中梁水电站 罗马市 传感器 八卦山 K-Brooks 无精打采 苏紫轩 分离出 ����� 升班马 华欣 腓特烈·威廉四世 细致入微 迅龙 天冬草
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 消耗时间:0.006秒 内存2.5MB