[发明专利]一种硬件事务内存系统中的伪相联多版本数据管理方法有效
申请号: | 201210125359.2 | 申请日: | 2012-04-25 |
公开(公告)号: | CN102722401A | 公开(公告)日: | 2012-10-10 |
发明(设计)人: | 冯丹;晏志超;江泓;谭玉娟 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李佑宏 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 硬件 事务 内存 系统 中的 相联 版本 数据管理 方法 | ||
技术领域
本发明属于计算机硬件事务内存系统领域,具体涉及一种事务内存系统中多版本数据的管理方法。
背景技术
事务内存系统将对共享数据的操作以事务为单位管理,使事务具备原子性和隔离性。其中,原子性表现为事务执行的结果要么是提交后生效,要么是撤销后无效;隔离性表现为事务提交前其对共享数据的修改不被事务外的程序所感知。
因此,每个事务需要将其执行期间对共享数据的修改记录下来,同时为了应对事务因撤销需要恢复原始状态,被修改的共享数据的原始值也同样要保存起来,并在一个事务结束(提交或者撤销)时,将其中的新版本或者旧版本提交到内容一致的存储空间中去,这些操作被称之为事务内存系统中的版本管理,是事务内存系统的一个重要组成部分。
同时,事务内存系统在多个事务并发执行期间,还要同时检查事务之间的冲突情况,并根据冲突情况调度冲突事务按照一定的顺序执行以确保共享数据的一致性。其中,事务冲突定义为多个事务的内存访问操作同时访问同一个共享数据,并且在这些访问操作中至少有一个执行的是写操作,相应的事务就因为对该共享数据的访问而导致了事务冲突,事务内存系统中检测和解决事务冲突的模块被称之为事务内存的冲突管 理模块,同版本管理模块一样,也是事务内存系统的一个重要组成部分。
现有硬件事务内存系统中的额外开销主要来自于版本管理中数据的移动操作和对于冲突事务调度时造成的额外的撤销和等待操作。现有的版本管理方式多将事务新旧版本数据存储在不同的存储层次上,这样会带来数据移动的开销。专利文献CN201010231134.6中提出了一种采用重定向表格的方式避免数据移动的方法,但是需要维护重定向表格,需要增加额外的硬件开销。同时针对冲突的事务,并发对共享数据的访问照成的冲突在很多情况下是可以通过一定的调度在保证共享数据一致的前提下,使更多的事务可以并发的执行,而不是像传统的方式那样将冲突的事务暂停或者撤销。
但是,现有硬件事务内存系统在数据版本管理方式上要么存在数据额外移动开销的弊病,要么是需要额外增加硬件模块去消除这类开销。同时,现有的事务内存系统冲突管理方式对于多个并发事务同时对同一个共享数据的修改通常采取了比较严格的调度控制策略,使过多的冲突事务被暂停或撤销,降低了并行程序的线程级并行度。
伪相联数据缓存技术最早被提出是为了解决传统直接映射数据缓存中缓存块命中率过低的弊端,该技术将在传统直接映射数据缓存技术中需要被替换出数据缓存的数据块放置在相应的伪相联空间上(伪相联空间实际上就是将缓存块地址中SET地址的最高位反转后的那个空间),后续访问在直接映射空间没有找到相应数据块时,还会直接去检查伪相联的空间,以降低因为缓存块缺失导致需要访问内存而造成更大的访存开销。
多版本并发控制技术在传统的分布式系统中应用比较多,主要是将数据被修改的版本按照一定的顺序维持其依赖关系,提高整个系统的并发性,传统的方式一般在实现中采用软件方式在分布式系统中实现这个功能。
发明内容
本发明的目的在于提出一种硬件事务内存系统中的伪相联多版本数据管理方法,将伪相联缓存一致性协议引入到硬件事务内存系统中,同时在伪相联缓存一直性协议中添加对共享数据多版本的管理,通过维护多版本数据之间的相互依赖关系来调度冲突的事务,从而可以避免不同版本数据在事务结束时的移动,同时使系统支持共享数据的多版本管理,维护多版本数据值的依赖关系调度冲突的事务同时运行,降低因为冲突而直接简单地撤销或者挂起冲突的事务。采用本发明可以挖掘出更大的并发性,提高系统的性能。
实现本发明的目的所采用的具体技术方案如下。
一种硬件事务内存系统中的伪相联多版本数据管理方法,用于对新加入硬件事务内存系统中的事务进行并发处理控制,其具体步骤如下:
(1)检查硬件事务内存系统中已有的多版本共享数据的事务依赖关系,同时判断该事务是否可以正常调度执行;
(2)如果判断该事务可能会引起事务环状依赖,撤销该事务,或等待重新执行;
(3)如果该事务可以正常调度,
对于读操作,则指派未提交的共享数据的多个版本中的任一个版本 给该事务,并将该事务的依赖关系加入到所述多版本共享数据的事务依赖关系中去,最后再访问该任一个版本数据;
对于写操作,则在未提交的共享数据的多个版本中添加一个新的版本给该事务,并将该事务的依赖关系加入到多版本共享数据的事务依赖关系中去,最后再访问该新的版本的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210125359.2/2.html,转载请声明来源钻瓜专利网。