版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8.5数据一致性控制
在实际应用中,经常会在多个文件中都含有同一个数据。所谓数据一致性问题是指,保存在多个文件中的同一数据,在任何情况下都必需能保证相同。8.5.1事务
1.事务的定义
事务是用于访问和修改各种数据项的一个程序单位。事务也可以被看做是一系列相关读和写操作。
2.事务记录(TransactionRecord)
为了实现上述的原子修改,通常须借助于称为事务记录的数据结构来实现。这些数据结构被放在一个非常可靠的存储器(又称稳定存储器)中,用来记录在事务运行时数据项修改的全部信息,故又称为运行记录(Log)。
3.恢复算法
由于一组被事务Ti修改的数据以及它们被修改前和修改后的值都能在事务记录表中找到,因此,利用事务记录表系统能处理任何故障而不致使故障造成非易失性存储器中信息的丢失。恢复算法可利用以下两个过程:
(1) undo〈Ti〉。该过程把所有被事务Ti修改过的数据恢复为修改前的值。
(2) redo〈Ti〉。该过程能把所有被事务Ti修改过的数据设置为新值。8.5.2检查点
1.检查点(CheckPoints)的作用
如前所述,当系统发生故障时,必须去检查整个Log表,以确定哪些事务需要利用redo〈Ti〉过程去设置新值,而哪些事务又需要利用undo〈Ti〉过程去恢复数据的旧值。由于在系统中可能存在着许多并发执行的事务,因而在事务记录表中就会有许多事务执行操作的记录。随着时间的推移,记录的数据也会愈来愈多。因此,一旦系统发生故障,在事务记录表中的记录清理起来就非常费时。
2.新的恢复算法
在引入检查点后,可以大大减少恢复处理的开销。因为在发生故障后,并不需要对事务记录表中的所有事务记录进行处理,而只需对最后一个检查点之后的事务记录进行处理。因此,恢复例程首先查找事务记录表,确定在最近检查点以前开始执行的最后的事务Ti。在找到这样的事务后,再返回去搜索事务记录表,便可找到第一个检查点记录,恢复例程便从该检查点开始返回搜索各个事务的记录,并利用redo和undo过程对它们进行处理。8.5.3并发控制(ConcurrentControl)
1.利用互斥锁实现“顺序性”
实现顺序性的一种最简单的方法,是设置一种用于实现互斥的锁,简称为互斥锁(ExclusiveLock)。在利用互斥锁实现顺序性时,应为每一个共享对象设置一把互斥锁。当某一事务Ti要去访问某对象时,应先获得该对象的互斥锁。若成功,便用该锁将该对象锁住,于是事务T便可对该对象执行读或写操作;而其它事务由于未能获得该锁,因而不能访问该对象。如果Ti需要对一批对象进行访问,则为了保证事务操作的原子性,Ti应先获得这一批对象的互斥锁,以将这些对象全部锁住。
2.利用互斥锁和共享锁实现顺序性
利用互斥锁实现顺序性的方法简单易行。目前有不少系统都是采用这种方法来保证事务操作的顺序性,但这却存在着效率不高的问题。因为一个共享文件虽然只允许一个事务去写,但却允许多个事务同时去读;而在利用互斥锁来锁住文件后,则只允许一个事务去读。为了提高运行效率而又引入了另一种形式的锁——共享锁(SharedLock)。共享锁与互斥锁的区别在于:互斥锁仅允许一个事务对相应对象执行读或写操作,而共享锁则允许多个事务对相应对象执行读操作,但不允许其中任何一个事务对对象执行写操作。8.5.4重复数据的数据一致性问题
1.重复文件的一致性
我们以UNIX类型的文件系统为例来说明如何保证重复文件的一致性问题。对于通常的UNIX文件目录,其每个目录项中含有一个ASCII码的文件名和一个索引结点号,后者指向一个索引结点。当有重复文件时,一个目录项可由一个文件名和若干个索引结点号组成,每个索引结点号都是指向各自的索引结点。图8-18示出了UNIX类型的目录和具有重复文件的目录。图8-18UNIX类型的目录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东科技职业学院高职单招职业适应性测试备考试题有答案解析
- 2026年上海健康医学院单招综合素质笔试模拟试题带答案解析
- 教师活动策划方案格式(3篇)
- 2026年四川中医药高等专科学校高职单招职业适应性测试备考题库有答案解析
- 语聊跨年活动策划方案(3篇)
- 新品订货活动策划方案(3篇)
- 乌鲁木齐校园活动策划方案(3篇)
- 2026年新疆职业大学高职单招职业适应性测试模拟试题有答案解析
- 2026年濮阳职业技术学院高职单招职业适应性测试备考试题有答案解析
- 三年(2023-2025)辽宁中考语文真题分类汇编:专题10 非文学文本阅读(解析版)
- 医疗项目年度总结模板
- 武器装备科研生产单位保密自检报告
- 2024-2025学年上学期上海六年级英语期末复习卷3
- 2024-2030年中国材料疲劳试验机行业市场发展趋势与前景展望战略分析报告
- 内河船舶制造行业发展前景及投资风险预测分析报告
- GB/T 43795-2024磁性氧化物制成的磁心机械强度测试方法
- 【川教版】《生命 生态 安全》三年级上册 第18课《学会垃圾分类》课件
- 自信自卑主题班会
- YY/T 1718-2020人类体外辅助生殖技术用医疗器械胚胎移植导管
- GB/T 28837-2012木质包装检疫处理服务质量要求
- 铜盐加速醋酸盐雾试验标准
评论
0/150
提交评论