通用的基于递归微重启技术的快速自恢复方法技术

技术编号:2822075 阅读:306 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供的是一种通用的基于递归微重启技术的快速自恢复方法。其形式化的表述为一个四元组R=(S,E,C,Ψ),Ψ:S×E×C→Ψ;其工作流程包括:将系统中可能产生异常的地方包装成可微重启元素s↓[i];若可微重启元素在执行过程中发生异常e,若e∈Ei,则捕获异常e,对该元素进行重启操作;设该元素正常执行时间为Tn,取系统最大容忍执行时间SysTime=k↓[l].Tn,若该元素执行时间Te>SysTime,对其执行释放资源操作,若该元素执行时间Te>UserTime,则释放资源,重启该元素;若可微重启元素重启次数Nr>k,则将异常抛向上层,进行更大范围重启;若重启至宏重启层次仍未解决,则通知管理员;若该元素正常执行完毕,则程序正常向下执行。本发明专利技术提高了系统可用性,同时降低了系统平均恢复时间。

【技术实现步骤摘要】

本专利技术涉及一种计算机任务关键系统的快速自恢复方法,尤其是基于重启技 术的任务关键系统快速自恢复方法。(二)
技术介绍
随着任务关键系统功能的R益强大,其结构也越来越复杂,不可避免的bug (程序缺陷)也越来越多。完全消除bug已成为不可能,但是人们对任务关键系 统不间断运行的要求却并没有降低。因此,如何在系统失效后快速得恢复已成为 学术界与业界的研究的重点。'系统恢复方法有很多,而其中最简单有效的非重启莫数。而传统的宏重启无 论系统出现什么故障,都对整个系统进行重启,耗费很多无谓的资源与时间。在 宏重启的基础上,George Candea等人在ROC (面向恢复计算)框架下提出了微 重启的概念。微重启是这样定义的当系统发生失效时,只重启失效的组件,若 未能解决问题,则根据递归恢复图逐层扩大重启范围,直至问题解决或宏重启。 这种方法只重启失效的组件,而避免了宏重启中需要同时重启健康组件需花费的 额外开销,降低了系统的平均恢复时间,提高了系统的可用性。微重启提出至今已经有八年时间,但是国内外相关研究并不多。比较有代表 性的文章只有《Improving availability with recursive microreboots: a soft-state system case study》(Performance Evaluation, v 56, n 1-4, March, 2004, p 213-248),(译《应用微重启提高可用性 一个软状态系统案例研究》 (性能评价期刊第56巻,l-4期,213-248页,2004年3月))以及《JAGR: An Autonomous Self-Recovering Application Server》 (Proceedings of the Autonomic Computing Workshop. Fifth Annual International Workshop on Active Middleware Services. AMS 2003, p 168-77)(译:《JAGR: —种自治自 恢复的应用服务器》(自律计算会议第五次关于现役中间件国际会议。AMS2003, 168-77页))两篇提出了具体的微重启方法。但是,前者提出的微重启方法只 适用于具体的系统,不具有通用性,且未实现递归微重启,对每个失效组件只执行单次的重启动作。而JAGR文章中提出的方法需修改jboss服务器(一种开源 的J2EE应用服务器),依赖于jboss服务器的特性实施重启,且只对部署于jboss 服务器的java应用程序有效。其他的文章都是针对现有方法提出的一些系统模 型和约束条件等。目前文献可考的微重启实验有Merxury卫呈地面接受站系统, JAGR项目和RUBiS (—个模仿eBay的拍卖网站)实验。实验数据表明,微重启 技术可以使系统从瞬时失效中快速恢复,降低了系统平均恢复时间。微重启只是 一种概念,其实现方法并不唯一,现有的微重启方法仍有很多缺点。如对目标系 .统的限制较多,要求目标系统组件化,组件无状态,并且组件间松耦合;只针对 java编写的软件或j2ee服务器实施,不具备跨语言的通用性;实现方法较复杂, 如需修改jboss服务器等。
技术实现思路
本专利技术的目的在于提供一种具有跨语言通用的、对目标系统基本无限制的、 简单实用的。本专利技术的目的是这样实现的本专利技术形式化的表述为一个四元组R=(S,E,C, W),其中SHs,,S2…,5 }是指 系统中可微重启元素的集合;E—E,,E2,…,EJ是各可微重启元素所有能触发微重 启行为的异常集合;C={T, Nr)是指微重启执行条件判定的集合,包括执行时间 T和重启次数Nr; W是指微重启中的相应动作,W: SXEXC—W;其工作流程如下 ,,a) 将系统中可能产生异常的地方包装成可微重启元素Si;b) 若可微重启元素在执行过程中发生异常e,若eEEi,其中 Ei= (exc印tioriii, exceptioni2,…,exceptionin}是该元素i所定义的微 重启触发异常的集合,则捕获异常e,对该元素进行重启操作;c) 设该元素正常执行时间为Tn,取系统最大容忍执行时间SysTime=A Tn, 其中A为正整数,用户可根据需求自行定义A,若该元素执行时间 Te〉SysTime,则认为该元素响应缓慢,对其执行释放资源操作;取用户 最大容忍执行时伺USerTirae= & Tn,其中^为正整数,用户可根据需 求自行定义&,若该元素执行时间TeH)serTime,则释放资源,重启该 元素,其中&〉 A;d) 若可微重启元素重启次数Nr〉A,其中A为正整数,若用户可根据需求自 行定义A仍未解决问题,则将异常抛向上层,进行更大范围重启,转步 骤a),依次递归;若重启至宏重启层次仍未解决,则通知管理员;e) 若该元素正常执行完毕,则程序正常向下执行。本专利技术的基于微重启的任务关键系统快速自恢复方法适用于有异常捕获机 制的语言编写的任务关键系统,而不论其面向过程或是面向对象。可用该方法对 现有系统进行改造使其具有可微重启特性,也可作为规则直接丌发具有可微重启 特性的系统。相对于现有微重启方法,本专利技术的优点有(1)本方法适用于所有提供异常 处理机制的语言编写的任务关键系统,实现了跨语言的通用性(已成功实验于 vb6. O平台,vb. net平台,jdkl. 5和vc6. 0平台),而现有方法只针对Java编 写的系统;(2)不同于现有的微重启方法,不依赖于具体的应用服务器,在(1) 的基础上,可应用于各种层次和形式的任务关键系统。现有方法中,mercury实 验中的方法只针对特定系统有效,JAGR实验中的方法需依赖于jboss服务器的 特性,且只对部署于jboss服务器上的应用程序有效;(3)不同于现有的微重启 方法,不要求系统组件化,不要求组件间松耦合,对系统限制较少;(4)现有微 重启方法只实现了无状态组件的微重启,本方法可只用较少开销完成可微重启元 素间的状态传递。(四) 附图说明图1为示例程序的重启树。 图2为本方法的流程图。具体实施方式 下面结合附图举例对本专利技术做更详细地描述本专利技术是一种通用的基于递归微重启的任务关键系统快速自恢复方法,针对 系统瞬时失效,不需人为干预地对失效元素进行重启恢复。本方法可以形式化的 表述为一个四元组R=(S,E,C, W),其中S^&,S2…,sJ是指系统中可微重启元素 的集合;E^E,,E2,…,EJ是各可微重启元素所有能触发微重启行为的异常集合; C={T, Nrl是指微重启执行条件判定的集合,包括执行时间T和重启次数Nr; W 是指微重启中的相应动作,SXEXC—W。其工作流程如下f) 将系统中可能产生异常的地方包装成可微重启元素S,,其形式类似于 Java中置于无限循环中的try-catch-finally结构,具体方法将结合代 码与附图详细说明;g) 若可微重启元素在执行过程中发生异常e,若eEEi,其中 Ei= {exceptionu, exception",…,exception^是该兀素i所定义的微 重启触发异常本文档来自技高网
...

【技术保护点】
一种通用的基于递归微重启技术的快速自恢复方法,其特征是:其形式化的表述为一个四元组R=(S,E,C,Ψ),其中S={s↓[1],s↓[2]…,s↓[n]}是指系统中可微重启元素的集合;E={E↓[1],E↓[2],…,E↓[n]}是各可微重启元素所有能触发微重启行为的异常集合;C={T,Nr}是指微重启执行条件判定的集合,包括执行时间T和重启次数Nr;Ψ是指微重启中的相应动作,Ψ:S×E×C→Ψ;其工作流程如下:a)将系统中可能产生异常的地方包装成可微重启元素s↓[i];b )若可微重启元素在执行过程中发生异常e,若e∈Ei,其中Ei={exception↓[i1],exception↓[i2],…,exception↓[in]}是该元素i所定义的微重启触发异常的集合,则捕获异常e,对该元素进行重启操作;c) 设该元素正常执行时间为Tn,取系统最大容忍执行时间SysTime=k↓[1].Tn,其中k↓[1]为正整数,用户可根据需求自行定义k↓[1],若该元素执行时间Te>SysTime,则认为该元素响应缓慢,对其执行释放资源操作;取用户最大容忍执行时间UserTime=k↓[2].Tn,其中k↓[2]为正整数,用户可根据需求自行定义k↓[2],若该元素执行时间Te>UserTime,则释放资源,重启该元素,其中k↓[2]>k↓[1];d)若可微重启元素重启次数Nr>k,其中k为正 整数,若用户可根据需求自行定义k仍未解决问题,则将异常抛向上层,进行更大范围重启,转步骤a),依次递归;若重启至宏重启层次仍未解决,则通知管理员;e)若该元素正常执行完毕,则程序正常向下执行。...

【技术特征摘要】

【专利技术属性】
技术研发人员:王慧强董玺坤吕宏武
申请(专利权)人:哈尔滨工程大学
类型:发明
国别省市:93[中国|哈尔滨]

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

1