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

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

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

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

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

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

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

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

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

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

刚刚查询:事务管理 科研成果 效果律 戏剧界 安娜·金斯卡娅 长短不一 离间计 柯屿海堤 政务院 电视接收机 宁成春 nominal 成批生产 红细胞 自我价值 ICU护士工作指南 里应外合 电影明星 长汀县 孝感市地方税务局2013年度依法行政工作报告 integrity. 拉家常 雅兰亭 入射角 condensed 新平社自然村 殊不知 双硫仑 3DMark06 苦瓜红枣羹 Project 勇立潮头唱大风且看今朝踏歌行 劲松书画协会 怎么杀死你邻居家的狗 佛说大乘圣无量寿决定光明王如来陀罗尼经 白俄罗斯国立经济大学 应用题 תӡӡ 他们俩 利润管理 伊丽莎白级战列舰 绵羊妹妹 中国民主党派上海市地方组织志 全神贯注 优秀成果 男孩的冒险书:极地冰河冒险书 CNG双燃料汽车 苦不堪言 事出有姻 刺猬的爱情:亲密关系的心理故事 不动产 儿童美术起步速写书:动物 语言障碍 史卡夫一家 见闻录 设计图 Rhinopithecuslantianensis 肯尼思•汤普森 天津大学建筑学院青年校友作品集:方案卷 抗菌素 中国90-Ⅱ装甲抢救牵引车 凉拌墨鱼丝 油泼辣子菠菜棍棍面 新篇章 爬行动物 任期制 CF终结者 武装采矿车 中国文学:明清卷 机械运动 布朗斯顿 相机夺取 飞行家 为亲负米 蓄水池防水涂料 斑弓莹尺蛾 桑间濮上 万向节 Hamilton 来访者
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 消耗时间:0.025秒 内存2.5MB