[发明专利]一种基于多线程的长事务并行执行方法有效
申请号: | 201210579859.3 | 申请日: | 2012-12-27 |
公开(公告)号: | CN103077006B | 公开(公告)日: | 2015-08-26 |
发明(设计)人: | 张元鸣;肖刚;高飞;陆佳炜;徐俊;吴利群 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵;黄美娟 |
地址: | 310014 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 长事务是指包含多个原子事务且执行时间较长的事务,串行地执行这些原子事务不仅将使长事务执行时间较长,而且还占用较多的系统资源,导致系统运行效率降低。本发明公开了一种基于多线程的长事务并行执行方法,包括以下步骤:(1)将长事务形式化描述为一个扩展的有向图;(2)将LT分割为若干个可以并行执行的子事务LT,给出了其分割算法;(3) 基于POSIX线程库(或者Windows线程API)派生若干个子线程以并行嵌套的模式执行长事务。(4)并行化后的代码需要运行在多核处理器(或多CPU处理器)上。该发明可以显著缩短长事务的执行时间,提高长事务执行效率,可应用于面向服务架构SOA、服务组合、事务处理等领域。 | ||
搜索关键词: | 一种 基于 多线程 事务 并行 执行 方法 | ||
【主权项】:
一种基于多线程的长事务并行执行方法,其特征在于:并行执行长事务包括以下步骤:(1)、将长事务描述为一个扩展的有向图;长事务可以形式化表示为一个扩展的有向图LT=(T,E,R),其中T={t1,t2,…,tn}是原子事务集合,且每个原子事务且都具有ACID特性;E={e1,e2,…em}是原子事务间依赖关系集合,如ei=ti→tk表示原子事务tk的开始由ti的执行结果决定,若ti提交时tk开始执行,则称为提交依赖,若ti回滚时tk开始执行,则称为回滚依赖;R={r1,r2,…,rn}是逻辑关系的集合,如ri表示一个以ti为终点的事务之间的“与”、“或”逻辑表关系;(2)、将长事务LT分割为若干个可以并行执行的子事务LT’;LT’是长事务的一个子集,可以包含一个或多个原子事务,即子事务LT’=(T’,E’,R’),其中![]()
通过将长事务划分为若干个子事务,当子事务之间不存在依赖关系时即可并行执行;其分割过程包括以下步骤:(2.1)、分析长事务中所包含的原子事务、原子事务之间的依赖关系、原子事务直接的逻辑关系实现,建立长事务扩展有向图EDG;(2.2)、根据长事务扩展有向图EDG,合并有环子图,生成扩展有向无环图EDAG;(2.3)、循环查找EDAG中的顺序事务;若当前事务只有唯一的孩子事务并且该孩子事务的父事务也是唯一的,则将它们是顺序事务,合并它们;(2.4)、如果EDAG中仅包含一个子事务,则说明该长事务无法并行执行,否则输出并行结果,该结果是包含多个可并行执行的子事务;(3)、基于POSIX线程库派生若干个子线程并行执行长事务,所述的POSIX线程库采用OpenM语言或者Windows线程API;长事务被划分为若干个子事务之 后,其执行过程如下:(3.1)、在长事务开始执行时,只生成一个线程,所述的线程称为主线程,由它负责执行;(3.2)如果遇到可以并行执行的子事务时,则根据子事务的数量派生出若干个子线程并行执行,所述的子线程称为辅助线程;(3.3)、在并行子事务执行过程中,如果又遇到可以并行执行的子事务,则继续派生新的辅助线程来执行新的并行子事务,此即为并行嵌套,可派生的辅助线程数目依赖于多核处理器的核数;(3.4)、当辅助线程执行完毕后,则与主线程会和,由主线程单独执行长事务,如果又遇到可并行的子事务,则转到(3.2),否则直到长事务执行完毕;(4)、长事务并行执行的硬件环境是多核处理器或多CPU处理器,这些平台为TLP技术提供了平台支撑。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210579859.3/,转载请声明来源钻瓜专利网。
- 上一篇:双极型电池
- 下一篇:一种针对移动体目标异地同步测量数据采集系统及方法