发明名称 一种基于延时策略的软件事务内存的实现方法
摘要 本发明涉及基于多处理器系统软件事物内存的实现技术,旨在提供一种基于延时策略的软件事务内存的实现方法。该方法包括以下步骤:事务创建、事务冲突产生、事务冲突延时仲裁、事务提交或者终止。本发明采用延时策略来仲裁事务间发生冲突时的情况。这样的冲突仲裁策略简单高效,有效地缓解了由于仲裁策略不当而造成的效率低下,提高了软件事物内存系统的性能。
申请公布号 CN101510162B 申请公布日期 2011.11.02
申请号 CN200910096959.9 申请日期 2009.03.26
申请人 浙江大学 发明人 陈天洲;马建良;曹满;乔福明;章铁飞;项凌翔;王春昊;刘敬伟;陈剑;缪良华
分类号 G06F9/46(2006.01)I 主分类号 G06F9/46(2006.01)I
代理机构 杭州中成专利事务所有限公司 33212 代理人 唐银益
主权项 一种基于延时策略的软件事务内存的实现方法,包括以下步骤:1)事务创建为软件事务提供四个状态:Active,Aborted,Committing和Committed,分别表示事务正在运行、事务已经终止、软件事务已经完成对对象的操作等待提交、事务已经提交成功;在程序执行过程中碰到需要对一个对象进行读写操作时事务被创建,事务是一串连续的对同一个对象进行操作的指令集合;在事务i中,用Si表示创建事务i时的系统时间,作为事务i的开始时间;用flag表示事务i是否有读写操作,如果有,则flag为真,如果没有,则flag为假;2)事务冲突产生在事务进行读写操作时,有两种情况会导致软件事务间的冲突:a.一事务进行读操作,在获取数据的过程中,发现有其他事务已经在写该数据;b.一事务进行写操作,在获取数据的过程中,发现有其他事务已经在读或写该数据;3)事务冲突延时仲裁在事务i和j发生冲突时,采用延迟策略进行仲裁,仲裁方式如下:a.当Si<Sj或者Si=Sj时,延迟策略就将j事务终止;b.当Si>Sj时,延迟策略就让事务i等待一定的时间,在指定的时间T过后,去读取事务j的状态;如果事务j的状态是Committed,表明事务j已经提交了,这时冲突在没有中止任何事务的情况下得到了解决;如果事务j的状态是Active,则将事务j的标记字段flag设置为False,事务再等待相同的时间T,如果在这段时间内,事务j进行了读写操作,则将事务j的flag标记字段设置为True;在T时间过后,如果事务j的状态仍然为Active而且flag仍然为False,说明这段时间内事务j没有读写操作,这样的话,延迟策略将事务j终止;否则,事务i自己终止;4)事务提交或者终止事务i和j的冲突经过延迟策略仲裁以后,事务i和j中将有一个事务被终止,另外一个事务继续执行,具体情况分为两种,分别如下:a.事务i终止,则把事务i的状态置为aborted;b.事务j终止,事务i继续执行;如果事务i又和另外一个事务k冲突,则再次进行事务冲突延时仲裁;如果事务i读写操作已经完成,则把事务i的状态置为committing,等待提交。
地址 310027 浙江省杭州市西湖区浙大路38号