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

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

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

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

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

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

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

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

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

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

相关查询: 数据库 事务管理 两部分 自动控制
最新查询:虎门大桥 小兔蛋糕 白乌鱼 官渡古镇 广东海丰湿地 五福大帝 天叙堂 半棱华 杨龙芳 同步性 幻彩红宝石雷龙鱼 鲜脆面 恩波利足球俱乐部 束之高阁 抗病毒 阿尔迪斯 南湖自然保护区 Keywords 博罗县 有所作为 大气分层 分解和弦 繁殖场 倍频器 庐山会议 宝兴硗碛上九节 辟谷 电表节电器 国际友谊日 壮剧 罗德尼 肾功能受损 cr12mov模具钢 落叶月 悠木碧 阎锡山 夺淮入海 氟化钙 欺世盗名 斑额黑蛛峰 需求量 范菲蓉 握不住的他 缪秉魁 渤海诗词集 二十六 图解周易预测学第三部:百事分占 运动项目 灵长类 Enrique 合资经营 Hanyangaspis 周转率 不平常 管乐队 头孢美唑钠 五大夫松 王式丹 立法院 挑大梁 达喀尔 时代与艺术:关于清末与民国海派艺术的社会学诠释 加勒比水上世界 动量指标 李斯列传 战前中国经济的增长 王宏燕 穿越寻爱情错深宫:重生之山寨皇妃 宣武门 综合利用 信道编码及其识别分析 电磁振荡和电谐振 走向计算主义 细叶榕榕管蓟马 单簧管五重奏 一次做对:管理从心开始 安徽省科学家企业家协会 事务管理
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 豫ICP备14030218号-3 消耗时间:0.039秒 内存2.83MB