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

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

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

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

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

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

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

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

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

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

刚刚查询:事务管理 由下向上 柑橘实蝇 素火腿津白 化学作用 站笼 狂妄自大 钮祜禄·额亦都 妻儿老小 租售宝 金子美穗 酸辣红烧鲫鱼 Turkish 也可能 Wolff定律 基层组织 规划局 sidence ��Ȼ���� 岁月掠影 十公里 咖哩洋葱木樨 pneumonia 日本海上保安厅 设计奖 丝绸之路 黄胄绘画大展 驾驶台 哈瓦尔群岛 市中区 非物质 薛志正 岁以上 安图县 黑衣人 丘陵地 宜兴电大 何塞·塞拉诺 contortus 秦穆公 装卸桥 当涂老年大学 沈劳 1987.9. 核物理 肝硬化 三大类 分洪闸 农历正月 ����ɢ���� Bleeding 乌柏林根空难 安吉县 Marisat Paleosyops 新化县 和歌山 春亚纺 谏大夫 风信子 软弱性 各部门 评论员 孝登寺 小飞传 有计划 未受到 波伦亚 心上人 处世经 光洁度 鹅卵石 火腿肠 林业厅 茶褐色 日式炸猪排手卷 集安五女峰隧道 气垫船 王三八二一 贫穷落后
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 消耗时间:0.024秒 内存2.49MB