事故处理的制作方法

文档序号:6485084阅读:174来源:国知局
事故处理的制作方法
【专利摘要】第一将来时间比第二将来时间出现得早。第一将来时间指示第一和第二将来时间何时要被评估。第二将来时间提供出现得较早的调度与出现得较迟的调度之间的边界。生成调度并将调度添加到存储在非易失性贮存器中的数据库。该调度用于与事故有关地执行与匹配于该事故的条件相对应的事故处理动作。该调度具有与该事故有关地执行事故处理动作的执行时间。在该执行时间比第二将来时间早的情况下,将该调度添加到存储在易失性存储器中的队列。在当前时间等于该执行时间时,从队列中移除该调度,并且对应地,与该事故有关地执行事故处理动作。
【专利说明】事故处理
【背景技术】
[0001]大规模且复杂的系统可能例行地生成必须被解决以确保这样的系统的平稳运行的事故。例如,特别在大规模且复杂的计算系统中,除其他类型的事故外,硬件和软件两者都可能生成故障或者甚至失效。为了确保这些系统继续适当运行,必须迅速地处理这样的事故。
【专利附图】

【附图说明】
[0002]图1是示例环境的图,其中事故处理系统处理由事故生成组件生成的事故。
[0003]图2是不例事故处理系统的图。
[0004]图3A、3B、3C和3D是事故处理系统能够如何响应于相应事件而进行操作的示例方法的流程图。
[0005]图4A、4B、4C和4E是描绘了响应于示例事件序列而对事故处理系统的执行的时序图。
【具体实施方式】
[0006]如【背景技术】中表明的,除其他类型的系统外,大规模且复杂的系统可能生成必须被解决以确保它们的平稳运行的事故。然而,现有事故处理架构没有随着所生成的事故在数量上大大增加而较好地扩缩。这样的架构可能必须具有例如越来越大量的易失性半导体存储器,以便确保事故被及时地且迅速地解决。
[0007]这里公开了用于以比现有事故处理架构好得多地扩缩的方式处理事故的技术。调度的数据库被存储在像硬盘驱动器之类的非易失性贮存器设备中。每个调度涉及事故,并指定与匹配于事故的条件相对应的事故处理动作要被执行时的执行时间。
[0008]第一和第二将来时间被指定,其中前者出现在后者之前。第一将来时间指示第一和第二将来时间何时要被再次评估或指定。第二将来时间提供出现得较早的调度与出现得较迟的调度之间的边界。队列被存储在像易失性半导体存储器之类的易失性存储器设备中。队列仅仅具有指定比第二将来时间早的执行时间的那些调度。
[0009]当当前时间与队列内的调度的执行时间匹配时,从队列以及数据库中移除该调度,并且与对应的事故有关地执行该调度的事故处理动作。当当前时间与第一将来时间匹配时,进行第一和第二将来时间的适当管理。具体地,队列能够被管理为容纳增加数量的事故,其中几乎没有增加或者没有增加被分配给队列的易失性存储器的量。
[0010]例如,第一和第二将来时间能够被再指定以使得队列在大小上不必增加或在大小上增加有限量。在第一和第二将来时间被再指定时,将具有比新的第二将来时间早的执行时间的调度从数据库拷贝到队列。同样地,从队列中移除具有比新的第二将来时间迟的执行时间的调度。
[0011]图1示出包括事故生成组件102和事故处理系统104的通用化的示例环境100,事故处理系统104用于处理组件102所生成的事故106。事故生成组件102能够包括生成事故106的软件和硬件组件以及其他类型的组件。事故生成组件102可以是大规模且复杂的系统的一部分,例如,其可以是与事故处理系统104相比相同的系统或不同的系统。
[0012]事故处理系统104接收由事故生成组件102生成的事故106。作为响应,事故处理系统104适当地处理事故106以解决它们。例如,事故处理系统104可以操纵事故生成组件102或使事故生成组件102被操纵。在这方面,图1内的总体事故处理方法具有反馈环的形式,其中事故生成组件102生成事故106,并且事故处理系统104通过操纵组件102或使组件102被操纵来解决事故106。
[0013]图2详细地示出示例事故处理系统104。系统104能够被实现为像计算机之类的一个或多个计算设备或者被实现在该一个或多个计算设备上。系统104能够包括处理器202、非易失性贮存器设备204、易失性存储器设备206和208以及计算机可读数据贮存器介质 210。
[0014]非易失性贮存器设备204是非易失性的,因为贮存器装置204永久地存储数据。因而,即使当从贮存器设备204移除功率时,数据也保持存储在贮存器设备204内。非易失性贮存器设备204可以是硬盘驱动器、固态驱动器或另一种类型的非易失性贮存器设备。
[0015]非易失性贮存器设备204存储包括调度的数据库212。每个调度用于与事故有关地执行与事故所匹配的条件相对应的对应事故处理动作。每个调度指定要与事故有关地执行或运行正被讨论的事故处理动作的执行时间。
[0016]数据库212还包括事故和条件的匹配状态。每个匹配状态能够是事故和条件对。这样的对的事故满足或匹配于该对的条件。
[0017]易失性存储器设备206和208能够是相同的易失性存储器设备或不同的易失性存储器设备。存储器设备206和208是易失性的,因为设备206和208不永久地存储数据。因而,当从存储器设备206和208移除功率时,已存储在设备206和208内的数据丢失。存储器设备206和208均可以是像动态随机存取存储器(DRAM)之类的半导体存储器设备或者另一种类型的易失性存储器设备。
[0018]易失性存储器设备206存储队列214。队列214可以是先进先出(FIFO)队列。队列214仅仅包括具有与较迟的执行时间相对的较早的执行时间的调度。具体地,指定了将来时间,其被称为如下面详细描述的第二将来时间,其将出现在当前时间之后的被称为如下面详细描述的第二时间增量(time delta)的时间增量。队列214包括具有比该(第二)将来时间早的执行时间的调度。队列214内的调度能够通过该调度的执行时间加以组织或排序。
[0019]易失性存储器设备208存储高速缓存216。高速缓存216是一种机构,借助于、通过或经由该机构来访问数据库212的匹配状态。相比之下,可能不借助于、通过或经由高速缓存216来访问数据库212的调度。
[0020]计算机可读数据贮存器介质210能够是或包括诸如非易失性贮存器设备204之类的非易失性贮存器设备和/或诸如易失性存储器设备206和/或208之类的易失性存储器设备。计算机可读数据贮存器介质210存储处理器202所执行的计算机可读代码218。计算机可读代码218实现规则检查器220、调度管理器222和动作运行器224。相同或不同的计算机可读代码218可以实现规则检查器220、调度管理器222和动作运行器224。
[0021]规则检查器220接收事故,并将它们匹配到规则,并且更具体地,匹配到条件。规则可以用于指定条件、执行时间和事故处理动作的每个组合。事故可以包括在先事故不再存在,或者规则检查器220可以检验传入的事故以确定在先事故是否不再存在。
[0022]规则检查器220经由高速缓存216来管理数据库212的匹配状态。当接收到事故时,规则检查器220确定事故是否匹配于任何规则的条件,并将对应的匹配状态添加到数据库212。规则检查器220生成每个这样的匹配的规则的调度(包括执行时间和事故处理动作)并将该调度传递到调度管理器222。规则检查器220能够进一步确定数据库212的每个先前添加的匹配状态是否仍然是有效的,从数据库212中移除那些不有效的匹配状态,并向调度管理器222通知这样的移除。
[0023]调度管理器222基于当前时间、第一将来时间、第二将来时间和调度的执行时间来管理数据库212内和队列214内的调度。调度管理器222还管理第一和第二将来时间。第一将来时间指示第一和第二将来时间何时要被(再)评估或(再)指定。第二将来时间提供出现得较早的调度与出现得较迟的调度之间的边界。
[0024]当调度管理器222从规则检查器220接收到调度时,管理器222将该调度添加到数据库212。如果该调度的执行时间出现在第二将来时间之前,那么调度管理器222将该调度添加到队列214。如果该调度的执行时间出现在第二将来时间之后,那么调度管理器222不将该调度添加到队列214。
[0025]当当前时间等于第一将来时间时,调度管理器222重置第一和第二将来时间,如下面详细描述的。然而,通常,第一将来时间被重置为经过当前时间动态或静态的第一时间增量,并且第二将来时间被重置为经过当前时间动态或静态的第二时间增量。第一和第二时间增量可以彼此相等或者不同于彼此。
[0026]在第一和第二将来时间已经被重置(即,被再评估和/或再指定)之后,调度管理器222将数据库212内的具有现在比第二将来时间早的执行时间的任何调度添加到队列214。类似地,在第一和第二将来时间已经被重置之后,调度管理器222将不再具有比第二将来时间早的执行时间的任何调度从队列214中移除。此外,对于规则检查器220已从数据库212中移除的任何匹配状态,调度管理器222从数据库212和队列214中移除先前由于这些匹配状态而被添加到数据库212的调度。
[0027]动作运行器224监视队列214内的调度。动作运行器224执行队列214内的具有与当前时间匹配的执行时间的调度的事故处理动作。动作运行器224还从数据库212和队列214两者中移除这些调度。
[0028]事故处理系统104是事件驱动的。随着事件出现,在系统104内执行各个操作和功能。下面是对响应于至少四个不同事件发生而执行的此类操作和功能的描述。第一事件是事故已经被生成。第二事件是事故已经被解决或不再存在。第三事件是当前时间等于或匹配于第一将来时间。第四事件是当前时间等于或匹配于至少一个调度的执行时间。第五事件也可能发生,其中现有的事故已经被修改但尚未被解决。
[0029]图3A、3B、3C和3D分别示出事故处理系统104如何响应于这前四个事件而操作和起作用的示例方法300、320、340和360。此外,方法300和320或其变型两者都能够响应于第五事件而操作和起作用,如下所述。方法300、320、340和360均能够由处理器202执行。例如,处理器202能够通过执行来自计算机可读数据贮存器介质210的计算机可读代码218来执行方法300、320、340和360,该计算机可读代码218可以具有实现规则检查器220、调度管理器222和动作运行器224的计算机程序的形式。
[0030]响应于事故已经被生成而执行图3A的方法300。规则检查器220接收事故(302),并将事故匹配到一个或多个规则的条件(304)。规则检查器220经由高速缓存216将用于每个这样的规则的匹配状态添加到数据库212,并生成包括规则的执行时间和规则的事故处理动作的调度(308)。
[0031]调度管理器222将每个这样的调度添加到数据库212(310)。如果调度的执行时间出现得比第二将来时间早,那么调度管理器222还将该调度添加到队列214 (312)。然而,如果调度的执行时间没有出现得比第二将来时间早,那么调度管理器222不将该调度添加到队列214。
[0032]还能够响应于现有事故已经被修改而执行图3A的方法300。在该情况下,与在修改的事故是新生成的情况下相比没有不同地,按照方法300,规则检查器220将修改的事故匹配到一个或多个规则的条件,添加用于每个这样的规则的匹配状态,并生成调度。类似地,与在修改的事故是新生成的情况下相比没有不同地,调度管理器222将每个这样的调度添加到数据库212和可能地添加到队列214。也就是说,关于方法300的执行,能够与新的事故相比没有不同地对待修改的事故。
[0033]响应于事故已经被解决或其以其他方式不再存在而执行图3B的方法320。规则检查器220接收该事故不再存在的通知或确定该事故不再存在(322 )。规则检查器220从数据库212中移除先前被添加到数据库212的与该事故有关的任何匹配状态(324)。调度管理器222从数据库212中移除先前被添加到数据库212的与该事故有关的(即,与这样的匹配状态有关的)任何调度(326),并从队列214中移除处于队列214中的任何这些调度(328)。
[0034]在针对已被修改的现有事故执行图3A的方法300之前,还能够响应于这样的事故而执行图3B的方法320。在该情况下,与在该事故被解决而不是已经被修改的情况下相比没有不同地,规则检查器320在该事故的修改之前移除与该事故有关的任何匹配状态,移除先前被添加到数据库212的与该事故有关的任何调度,并移除先前被添加到队列214的任何调度。也就是说,关于方法320的执行,能够与解决的事故相比没有不同地对待修改的事故。
[0035]已针对修改的事故描绘的方法因此要执行图3B的方法320以首先将该事故视为已被解决,并且然后执行图3A的方法300以随后将该事故(如已被修改)视为已被新生成。然而,还能够针对修改的事故采用组合方法300和320的混合方法。在这样的混合方法中,只有当事故的每个现有匹配状态和调度不再适用于修改后的事故时,才将事故的每个现有匹配状态和调度移除,并且如果新的匹配状态和调度现在适用于修改后的事故,则添加新的匹配状态和调度。
[0036]响应于当前时间等于或匹配于第一将来时间而执行图3C的方法340。调度管理器222 (再)指定或(再)评估第一和第二将来时间(342)。调度管理器222将存储在数据库212中的具有现在比(如所更新的)第二将来时间早的执行时间的任何调度添加到队列214(344)。类似地,调度管理器222将当前处于队列214中的具有现在比(如所更新的)第二将来时间迟的执行时间的任何调度从队列214中移除(346)。
[0037]一示例帮助理解方法340。假定第一将来时间Fl最初由从当时的当前时间T=Tl起的时间增量Dl指定,使得F1=T1+D1。同样地,假定第二将来时间F2最初由从当时的当前时间T=Tl起的时间增量D2指定,使得F2=T1+D2。将来时间Fl出现在将来时间F2之前,使得F1〈F2并且使得D1〈D2。
[0038]当时间已经过去以使得当前时间现在是T=T2=F1时,那么执行方法340。在部分342中,重置将来时间Fl和F2。在一个场景中,时间增量Dl和D2是静态的且不改变。因此,第一将来时间Fl被重置为F1=T2+D1,并且第二将来时间F2被重置为F2=T2+D2。然后,在部分344中,将具有比旧的第二将来时间F2迟但比新的第二将来时间F2早的执行时间的调度添加到队列214。
[0039]然而,在另一个场景中,时间增量Dl和D2是动态的,且能够改变。调度管理器222可以基于例如队列214的大小以及队列214和/或数据库212内的调度的数量和执行时间来重置将来时间Fl和F2。例如,如果队列214的大小使得队列214接近满容量,则可以通过减小时间增量D2来有效地减少队列214内的调度的数量。因而,在部分346中,可以移除队列214内的一些调度,这是因为它们的执行时间不再小于第二将来时间F2。也可以减小时间增量D1,以使得下次较早地评估将来时间Fl和F2。
[0040]响应于当前时间等于或匹配于队列214内的一个或多个调度的执行时间而执行图3D的方法360。动作运行器224执行这样的调度的事故处理动作(362)。动作运行器224还从队列214中移除这些调度(364)以及从数据库212中移除这些调度(366)。
[0041]图4A、4B、4C、4D和4E描绘如何能够响应于事件的示例序列而在事故处理系统104内执行方法300、320、340和360的时序图。首先,在图4A中,在当前时间T处,生成事故。因此,按照方法300,在部分302中接收事故,并且在部分304中,将事故假定为已经匹配于两个规则。在部分306中添加两个匹配状态,并且在部分308中生成两个调度。第一调度具有执行时间ET1,并且第二调度具有执行时间ET2。在部分310中将调度添加到数据库212。
[0042]如图4A中所描绘的,第一调度的执行时间ETl与第一和第二将来时间FTl和FT2相比,得到FT1〈ET1〈FT2。因此,在部分312中将第一调度添加到队列214。同样如图4A中所描绘的,第二调度的执行时间ET2与第一和第二将来时间FTl和FT2相比,得到ET2>FT1并且ET2>FT2。因此,在部分312中不将第二调度添加到队列214。
[0043]在图4B中,当前时间T已经前进到图4A的原始第一将来时间FT1。因此,按照图3C的方法340,在部分342中将第一和第二将来时间FTl和FT2重置,如图4B中所描绘的。注意,与图4A中相比,在图4B中,第二将来时间FT2出现得较早。尽管在图4A中,第一调度的执行时间ETl比第二将来时间FT2早,但在图4B中,执行时间ETl现在比第二将来时间FT2迟。因此,在部分346中将第一调度从队列214中移除。
[0044]在图4C中,当前时间T已经前进到图4B的修正的第一将来时间FT1。再次按照图3C的方法340,在部分342中将第一和第二将来时间FTl和FT2重置,如图4C中所描绘的。与其在图4B中相比,第二将来时间FT2在图4C中出现得迟得多。因而,调度的执行时间ETl和ET2现在均比第二将来时间FT2早。因此,在部分344中将第一和第二调度添加到队列214。
[0045]在图4D中,当前时间T已经前进到第一调度的执行时间ET1。因此,按照图3D的方法360,在部分362中执行第一调度的事故处理动作。然后在部分364中从队列214中移除第一调度,并且在部分366中从数据库212中移除第一调度。然而,第二调度仍然保持在队列214和数据库212两者中。[0046]在图4E中,在现在的当前时间T处,大概由于第一调度的事故处理动作已经被执行,导致第一和第二调度的生成的事故已经被解决。因此,按照图3D的方法320,在部分322中,确定事故不再存在,或接收关于事故不再存在的通知。在部分312中,从数据库中移除先前被添加到数据库212的与事故有关的匹配状态。
[0047]虽然如上面关于图4D所描述的,已经从队列214且从数据库212中移除了第一调度,但是与该事故有关的第二调度仍然保持在队列214和数据库212两者中。因此,在部分326中从数据库212中移除第二调度,并且在部分328中从队列214中移除第二调度。因而,在图4E中没有描绘该现在移除的第二调度的执行时间ET2。
【权利要求】
1.一种方法,包括: 指定第一和第二将来时间,第一将来时间出现得比第二将来时间早,第一将来时间指示第一和第二将来时间何时要被再次指定,第二将来时间提供出现得较早的调度与出现得较迟的调度之间的边界; 由处理器生成调度并将调度添加到存储在非易失性贮存器中的数据库,所述调度用于与事故有关地执行与匹配于所述事故的条件相对应的事故处理动作,所述调度具有与所述事故有关地执行事故处理动作的执行时间; 在所述执行时间比第二将来时间早的情况下,由处理器将所述调度添加到存储在易失性存储器中的队列;以及 在当前时间等于所述执行时间时,由处理器从队列中移除所述调度并对应地与所述事故有关地执行事故处理动作。
2.根据权利要求1所述的方法,进一步包括: 在所述执行时间比第二指定时间迟的情况下,不将所述调度添加到队列。
3.根据权利要求1所述的方法,进一步包括: 在当前时间等于第一将来时间时, 再次指定第一将来时 间和第二将来时间; 在所述调度不在队列中的情况下并且在所述执行时间比已经被再次指定的第二将来时间早的情况下,由处理器将所述调度添加到队列;以及 在所述调度在队列中的情况下并且在所述执行时间比已经被再次指定的第二将来时间迟的情况下,由处理器将所述调度从队列中移除。
4.根据权利要求3所述的方法,其中第一时间增量将第一将来时间与当前时间分离,并且第二时间增量将第二将来时间与当前时间分离, 并且其中再次指定第一将来时间和第二将来时间包括:将第一将来时间指定为当前时间加第一时间增量,并且将第二将来时间指定为当前时间加第二时间增量。
5.根据权利要求4所述的方法,其中第一时间增量和第二时间增量是静态的,使得当再次指定第一将来时间和第二将来时间时,第一时间增量和第二时间增量保持不变。
6.根据权利要求4所述的方法,其中第一时间增量和第二时间增量中的一个或多个是动态的,使得当再次指定第一将来时间和第二将来时间时,第一时间增量和第二时间增量中的所述一个或多个改变。
7.根据权利要求6所述的方法,其中第一时间增量和第二时间增量中的所述一个或多个基于以下各项中的一个或多个而改变: 队列的大小; 队列中的调度的数量。
8.根据权利要求1所述的方法,进一步包括: 当事故不再出现时, 从数据库中移除所述调度;以及 在所述调度在队列中的情况下,从队列中移除所述调度。
9.根据权利要求1所述的方法,进一步包括: 在与所述事故有关地执行事故处理动作之后,从数据库中移除所述调度。
10.根据权利要求1所述的方法,进一步包括: 由处理器确定所述事故与所述条件匹配。
11.一种系统,包括: 处理器; 非易失性贮存器设备,用于存储调度的数据库,每个调度用于与事故有关地且在执行时间处执行与匹配于所述事故的条件相对应的事故处理动作; 易失性存储器设备,用于存储仅执行时间比出现得迟于第一将来时间的第二将来时间早的调度的队列,第一将来时间指示第一和第二将来时间何时要被评估,第二将来时间提供出现得较早的调度与出现得较迟的调度之间的边界;以及 计算机可读数据贮存器介质,用于存储能够由处理器执行以实现调度管理器的计算机可读代码,所述调度管理器用于基于当前时间、第一和第二将来时间和调度的执行时间来管理数据库内和队列内的调度。
12.根据权利要求11所述的系统,其中数据库进一步具有所述事故和所述条件的匹配状态, 并且其中计算机可读数据贮存器介质进一步用于存储能够由处理器执行以实现规则检查器的计算机可读代码,所述规则检查器用于管理所述事故和所述条件的匹配状态。
13.根据权利要求12所述的系统,其中易失性存储器设备进一步用于存储高速缓存,通过该高速缓存,由动作运行器访问数据库的匹配状态。
14.根据权利要求11所述的系统,其中计算机可读数据贮存器介质进一步用于存储能够由处理器执行以实现动作运行器的计算机可读代码,所述动作运行器用于执行其执行时间与当前时间匹配的队列中的调度的事故处理动作。
15.一种非瞬变计算机可读数据贮存器介质,其存储计算机程序,该计算机程序能够由处理器执行以执行包括以下步骤的方法: 生成调度并将调度添加到存储在非易失性贮存器中的数据库,所述调度用于与事故有关地执行与匹配于所述事故的条件相对应的事故处理动作,所述调度具有与所述事故有关地执行事故处理动作的执行时间; 在所述执行时间比出现得迟于第一将来时间的第二将来时间早的情况下,将所述调度添加到存储在易失性存储器中的队列,第一将来时间指示第一和第二将来时间何时要被评估,第二将来时间提供出现得较早的调度与出现得较迟的调度之间的边界;以及 在当前时间等于所述执行时间时,从队列中移除所述调度并对应地与所述事故有关地执行事故处理动作。
【文档编号】G06F9/06GK103827808SQ201180073873
【公开日】2014年5月28日 申请日期:2011年7月31日 优先权日:2011年7月31日
【发明者】B.古特加尔, M.博斯勒, C.谢菲尔 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1