1.一种面向流计算系统异常感知的容错系统,其特征在于:包括计算模块、系统监控模块、动态扩展模块、错误恢复模块和计算资源池模块;其中所述系统监控模块和动态扩展模块部署在管理节点上,计算模块和错误恢复模块部署在所有的工作节点上;
所述计算模块,用于执行流计算系统中的查询任务;
所述系统监控模块,用于周期性的监控各个工作节点的状态,并向动态扩展模块和错误恢复模块发送指令;
所述动态扩展模块,用于为处于警告状态的工作节点动态的扩展一个容错节点;
所述错误恢复模块,用于对发生错误的工作节点进行容错处理;
所述计算资源池模块,用于为动态扩展模块提供节点资源。
2.利用权利要求1所述系统的一种面向流计算系统异常感知的容错方法,包括以下步骤:系统监控模块周期性的监控流计算系统中各个节点状态;当发现有工作节点处于警告状态时,通知动态扩展模块和错误恢复模块对处于警告状态的节点进行预防性的错误恢复;
动态扩展模块为处于警告状态的节点动态性的扩展一个容错节点;
系统监控模块进一步监控处于警告状态的节点,如果该节点的状态由警告转为错误,则通知错误恢复模块,错误恢复模块直接用容错节点代替该节点,完成系统的错误恢复;如果该节点的状态由警告转为正常,则通知错误恢复模块停止对该节点的预防性错误恢复;
如果该节点的状态由警告转为异常,则通知错误恢复模块,错误恢复模块一直对比处于异常状态的工作节点和容错点的计算进度,当检测到容错节点的计算进度快于处于异常状态的节点以后,用容错节点代替处于异常状态的节点。
3.根据权利要求2所述一种面向流计算系统异常感知的容错方法,其特征在于,所述判断工作节点处于警告状态的方法为:当系统监控模块在周期性接收工作节点心跳包的过程中,若第一次未接收到任意一个工作节点的心跳包,则该节点的状态为警告状态。
4.根据权利要求3所述一种面向流计算系统异常感知的容错方法,其特征在于,所述系统监控模块进一步监控处于警告状态的节点判断该节点状态包括:(1)当系统监控模块检测到工作节点处于警告状态以后,系统监控模块在连续的n个周期都没有接收到该处于警告状态的工作节点的心跳包,其中n>1,则该工作节点的状态由警告转为错误;
(2)当系统监控模块检测到工作节点处于警告状态以后,在接下来的连续m个周期里面,系统监控模块都收到了该工作节点的心跳包,则系统监控模块把该工作节点的状态由警告转为正常,其中m>n;
(3)当系统监控模块检测到工作节点处于警告状态以后,在接下来的连续k个周期里面,处于警告状态的工作节点的状态既没有从警告转为错误也没有从警告转变为正常,则系统监控模块把该工作节点的状态由警告转变为异常,其中k>m。
5.根据权利要求2或3或4所述一种面向流计算系统异常感知的容错方法,其特征在于,所述错误恢复模块用容错节点代替错误状态节点的过程为:错误状态节点不接受任何信息,错误状态节点的上游节点把储存在它的输出队列中的已经计算过且没有被删除的元组发送到容错节点上,容错节点重新计算这些元组并把计算结果发送到下游节点,然后上游节点从输出队列中删除相关的元组。
6.根据权利要求5所述一种面向流计算系统异常感知的容错方法,其特征在于,所述对比处于异常状态的工作节点和容错点的计算进度的方法为:错误恢复模块根据处于异常状态的工作节点和该节点的容错节点向上游节点发送的确认消息的时间戳信息的前后关系判断节点的计算进度。