[发明专利]一种可控重复执行次数的多线程事务存储编程模型方法有效
申请号: | 201711308530.2 | 申请日: | 2017-12-11 |
公开(公告)号: | CN109901913B | 公开(公告)日: | 2023-08-22 |
发明(设计)人: | 曾璇;周海;严昌浩;陆昆 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/48;G06F9/52 |
代理公司: | 上海元一成知识产权代理事务所(普通合伙) 31268 | 代理人: | 吴桂琴 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 可控 重复 执行 次数 多线程 事务 存储 编程 模型 方法 | ||
1.一种可控重复执行次数的多线程事务存储编程模型方法,其特征在于,其包括:
a)在多线程事务存储模型内部,事务执行失败若干次后,不再重复执行原事务,将该事务所执行的任务放回任务队列尾部;提高基于事务存储模型的多线程程序的并行效率;
b)可控重复执行的多线程事务存储编程模型,能够实现为可控重复执行次数的软件事务存储模型和可控重复执行次数的硬件事务存储模型;其中包括:
b1) 在所述可控重复执行次数的软件事务存储模型中,可控重复执行次数的软件事务存储模型N-retry TL2的应用层代码中,线程从任务队列中取出一个任务并开始执行,由STM_BEGIN和STM_END进入事务存储,N-retry TL2模型对成功或失败的事务设立一个标志位;事务执行失败时,语句flag=0将不会被执行,程序直接跳转到
所述的N-retry TL2的实现包括:N-retry TL2模型在事务处理失败后跳到事务开始阶段STM_BEGIN,其增加了检查重复次数的步骤;在事务的开始执行阶段,定义一个环境变量stm_jmpbuf并且调用sigsetjmp指令存储当前环境;若事务执行期间,事务因某原因被废止,则程序使失败次数retry time加1,然后调用sigjmp指令恢复被sigsetjmp指令保存的环境,事务回滚;若失败次数不大于给定的N,则重新执行该事务;若其大于N,则跳转到事务的结束阶段STM_
b2) 在所述可控重复执行次数的硬件事务存储模型N-retry RTM中,如果事务由于数据冲突原因废止的次数小于N,线程将重新执行该事务,如果大于N则事务失败并将该任务放回任务队列队尾;由其它原因导致的事务失败,则采用锁机制解决;在失败的回退路径中,选择不同类型的锁;在所述的在失败的回退路径中,选择高票锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711308530.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种推荐云主机配置的方法
- 下一篇:事务处理方法、装置及设备