并行修改事务处理系统索引树的方法和装置制造方法及图纸

技术编号:2893393 阅读:243 留言:0更新日期:2012-04-11 18:40
本方法和装置允许并行修改事务处理系统索引树。遍及索引树到被选节点执行包括结构修改操作的事务,然后置位结构修改操作未决指示。在没有未决结构修改操作指示的位置,允许通过索引树执行并行关键字记录插入或删除;在指示未决结构修改操作的位置,延迟并行关键字记录插入或删除。每个尚未到达新的一致性点的关键字记录删除的指示被置位,并行关键字记录插入或删除也被延迟,直到结构修改操作的可能性结束。(*该技术在2009年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及数据处理方法和装置,在其所述实施例中更具体地涉及用于记录的数据库管理的方法和装置。在现有技术中已经公知了多种数据库管理或事务处理系统。通常采用这些系统,以便实现对包含多个数据记录的数据库表进行快速访问。关系事务处理系统能对多个数据库表进行访问,在这些数据库表中,一个数据库表中的单元通常与另一个数据库表中的单元相关。关系数据库允许一个用户通过使用一个或多个特定的单元或字段,检索、存取和变更包含在多个数据库表中的数据。所有这种数据库系统的一个重要方面就是系统具有对每个数据库中的各个记录实现快速有效访问的能力。近来已经有多种数据库管理系统,这些系统支援多个用户同时使用数据库,允许这些用户并行访问特定的数据。通常由数据管理程序使用索引文件,以便实现对表中的记录进行快速有效的访问。这些索引文件通常被构形在B树结构中。一份讨论B树的参考文献是“EfficientLookingForConcurrentOperationonB-Tree”,Lehman和Yao著,《ACMTransactionsonDatabaseSystems》,第6卷第4期,1981年12月,第650页至第670页。其它论及B树结构的参考文献有“TheUbiquitousB-Tree,Comer著,《ComputingSurveys》,第11卷第2期,1979年6月,第121页至第137页,和“ConcurrentOperationonB-TreeWithOverTaking”,Sagiv著,《ProceedingsACMSIGACT-SIGMODSymposiumonPrinciplesofDatabaseSystems》,1985年3月,第28页至第37页。构成B树结构的索引文件包含一个根节点,多层的节点从这个据根节点分支出来。包含在这些节点中的信息包括对下层节点的指示字或对数据库中记录的指示字。这些指示字中进一步包括被称为关键字记录信息的信息,这些信息可以引用数据库中的记录。记录关键字以有序格式存在于所有节点中。例如一个索引树可以有对雇员姓名按字母顺序列的表。根节点将包括与由下一层节点间接或直接引用的记录相关的引用关键字数据。引用关键字包含有关索引文件的信息,即雇员姓名按字母顺序的拼法。因此根节点中的有序关键字将指向下一后续层的节点。换句话说,下一后续节点可以间接或直接引用所有字母A、B和C开始的雇员姓名。与第一个后续节点并行的另一个下一后续节点可以包含姓氏用字母D-M开始的雇员记录。这一层上的最后一个后续节点将引用姓氏用字母N-Z开始的雇员记录。当通过索引文件树进行检索时,最终到达一个底节点。该底节点的内容包括指向存储器中各个记录关键字。在实现对数据库表进行并行访问的情况下,当多个事务同时试图对一个记录进行访问时,就产生一个问题。具体地说,当一个用户想变更一个记录,而另一个用户想对该记录进行存取时,就会产生争用状态。对于争用问题的一个解决方案是对记录或对B树索引的区段实现排他访问(或封锁),以便确保索引节点或记录在用户想对它进行访问时不致被变更。在下述文章中论及了封锁“IndexLockingandSplitting”,《IBMTechnicalDisclosureBulletin》,第25卷第7B期,1982年12月,第3725页至3729页;和“LockingProtocolsforConcurrentOperationsonB-Trees”,《IBMTechnicalDisclosureBulletin》,第19卷第10期,1977年3月,第3887页至第3889页。封锁解决方案的缺点在于当允许一个用户进行访问时,封锁阻止了任何其他用户进行的访问。因此对于本领域的技术人员显而易见通过把使用的封锁次数减到最小值就能提高系统的并行操作能力。数据处理系统的另一个重要方面是这种系统具有以可恢复方式变更包含在数据库中的数据的能力。也就是说,这些系统要确保持续保留特定用户输入的所有变更,或在由于各种部件的故障中断系统操作的情况下,不保留任何变更。同样也给予用户一种能力,去请求直到时间上的某个特定点之前,把该用户已经对数据库所作的变更撤消。因此,用户对数据库的变更被称为“可恢复的”。这种设计方案被编入以“事务”处理方式操作的数据库系统。一个事务是工作的一个逻辑部件,包括一个操作序列,这个操作序列把可恢复数据库资源的最初一致状态变换成另一个一致状态,而无需在该序列的所有中间点上保持一致性。使用事务处理系统将保证如果一个事务执行对可恢复数据库资源的某些更新,并且在事务到达其正常终端或一个临时一致性点之前发生故障,那末就取消那些更新。因为一个事务包括一个特定应用操作序列的执行,所以它在系统中的存在通常由一个特定的“开始工作”(“BEGINWORK”)操作启动,而由“执行”(“COMMIT”)或“异常结束”(“ABORT”)操作结束。上述的COMMIT和ABORT操作在系统中具有原子性。在系统中COMMIT操作表示已经到达一个新的一致性点,所有由所涉及的事务进行的更新必须持续地进行。ABORT操作表示已经发生故障,由所涉及的特定事务进行的任何变更都必须“重新进行”(“volledback”)或取消变更,可恢复数据库资源返回到先前的一致性点。为了实现这种事务恢复保证,数据库系统必须能够记住那些在执行的跨越系统停机时间前后的事务以及其更新操作的状态,以便当系统被重新启动时,可以正确地反映这些操作对可恢复数据的影响。通过把每个事务从开始到结束的进程和那些导致可恢复数据资源变更的操作记录到存储在稳定存储器中的一个运行记录里,就能实现上述方案。该运行记录就成为一个资源,用于确保反映事务已执行的操作,或确保其未执行的操作被撤消,以便保证数据库保持一致性。当事务操作运行记录反映数据目标内容时,这些运行记录也就成为用于重构损坏或丢失数据的资源。这些系统通常在记录被写入运行记录时,给每个运行记录赋予一个特有的运行记录序号(LSN)。这种LSN通常以升序号序列赋值。对数据库中一个存储页面的更新运行记录一完成,一般就把对应该更新的那个运行记录的LSN存储在该页面上。上述这种系统通常称为运行记录先写系统。运行记录先写系统要求在被变更数据的新版本更换非易失存储器中数据的在先版本之前,必须把对应特定操作的一个运行记录项目实际写入稳定存储器。这里所述的稳定存储器是指非易失存储器,经过系统故障时间之后它还保持原样并有效。一个这种存储器的实例就是使用存储磁盘。此外,这种系统在运行记录中存储事务状态,直到事务执行的状态和事务所有的运行记录数据被稳定地记录在稳定存储器中之前,不认为该事务已经完成。因此在系统故障的情况下,重新启动过程将恢复该事务中已经顺利地完成但还没能先于系统故障把其更新的资源实际写入稳定存储器的任何操作。并且在用于该事务的所有运行记录的所有区段都被写入实际运行记录之前,这种系统不允许事务去完成COMMIT处理。本专利技术的一个目的是提供一种更有效的通过索引树访问在数据库中的记录方法。本专利技术的另一个目的是提供一种更有效的通过索引树访问在数据库中的记录的方法,该方法允许多个用户更有效地对数据库进行并行访问。本专利技术还有一个目的是提供一种更有效的通过本文档来自技高网...

【技术保护点】
一种用于在执行包括多个操作(该多个操作至少包括一个结构修改操作)的事务期间允许在索引树中访问高度并行操作的方法,其特征是由以下步骤组成:顺序执行所述多个操作;存储一个在所述结构修改操作之前执行的被选操作顺序的指示;根据所述结构修 改操作的完成,写一个指向所述被选操作顺序的所述存储指示的记录;在所述结构修改操作完成之前所述事务终止的情况下,重新执行所述多个操作中的每个操作;在所述结构修改操作完成之后所述事务终止的情况下,仅重新执行目的不是结构修改的那些操作。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:弗兰克埃略特来弗尼坎德拉塞卡兰莫汉
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1