[发明专利]一种面向实时云平台的故障检测与容错方法及系统有效
申请号: | 201310681028.1 | 申请日: | 2013-12-12 |
公开(公告)号: | CN103716182A | 公开(公告)日: | 2014-04-09 |
发明(设计)人: | 张闯;李钊;徐克付;张鹏 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L12/26 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 实时 平台 故障 检测 容错 方法 系统 | ||
技术领域
本发明涉及实时云计算领域,尤其涉及一种面向实时云平台的故障检测与容错方法及系统。
背景技术
随着云计算、物联网等技术的兴起,数据正以前所未有的速度不断地增长和积累,并且越来越多地以大规模、连续的流的形式出现在应用程序中,其中最典型的应用就是监控应用,例如金融市场监控、网络监控、移动对象监控、入侵检查和生态系统监控等,实时应用对故障检测恢复及容错有着更高的需求。
为此工业界和学术界开发了很多数据流处理系统,包括斯坦福大学的STREAM、施乐公司的Tapestry、加州大学伯克利分校的Telegraph、布朗大学和麻省理工学院合作的Aurora,Apache的Hadoop Online以及Yahoo的S4。
低延迟数据流处理的新需求,给程序级及节点级的故障检测与恢复带来了新的挑战,目前主流云平台存在以下一些问题:
1、无法完全克服节点故障时的状态丢失,通常在节点上保存着状态信息,以及配置信息,业务程序文件等,一旦节点发生故障,将丢失状态信息。
2、无法完全消除主节点依赖。如twitter storm,虽然主节点故障时,工作节点依然可以运行,但大部分功能将会失效,如提交任务、故障检测等。
3、缺少一套全面、整体的故障检测与容错机制,使得程序级与节点级故障都能够及时检测与修复。
因此,我们需要一种面向实时云平台的多级故障检测与容错机制,以保障实时云平台的高可用性。
发明内容
本发明所要解决的技术问题是提供一种面向实时云平台的故障检测与容错方法及系统,实现所有节点无状态,能够及时准确的检测平台程序级与节点级故障,并采用相应策略进行故障恢复。
本发明解决上述技术问题的技术方案如下:一种面向实时云平台的故障检测与容错方法包括如下步骤:
步骤1:客户端向全局状态存储模块发送待处理的任务,并将将分配给各个工作节点的任务存储到全局状态存储模块的相应路径下;
步骤2:所述各工作节点每隔心跳时间到全局状态存储模块相应路径下,检测是否有待执行的任务,一旦发现新任务,便启动工作进程运行相应任务;
步骤3:所述每个工作节点内运行一个守护进程来守护在执行任务的工作进程,并执行程序级故障检测与容错;
步骤4:全局状态监控模块每隔心跳时间到全局状态存储模块中检查每个工作节点上传的心跳信息,并根据心跳信息进行节点级故障检测与容错。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述全局状态监控模块和各个工作节点本地不保存状态信息,所有状态信息都保存全局状态存储模块中;所述全局状态监控模块与各工作节点间的通信,各工作节点间的通信,以及各工作节点的本地动作都是依靠全局状态存储模块中的全局状态来进行的。
进一步,步骤3中所述执行程序级故障检测与容错的具体实现为:
步骤3.1:守护进程每隔心跳时间检查在执行任务的工作进程的运行状态;
步骤3.2:检查是否有意外崩溃的工作进程,如果有则立即重新启动该工作进程,恢复其工作状态。
进一步,步骤4中所述执行节点级故障检测与容错的具体实现为:
步骤4.1:当检测到某节点上传心跳信息超时,进一步检测是网络故障还是该节点故障,
步骤4.2:判断同一时段内上传心跳信息超时的节点个数是否大于预设阈值,如果大于则认为是网络故障,节点内任务不迁移;如果小于则是该节点单独故障,将该节点内的任务迁移到其他空闲节点中运行。
进一步,步骤4.2中将故障节点中任务迁移到其他空闲节点继续运行的具体步骤为:
步骤4.2.1:通过节点选举算法给故障节点选一个空闲节点,如果找到空闲节点,执行步骤4.2.2;否则执行步骤4.2.5;
步骤4.2.2:更新上游相关节点和该故障节点存储于全局状态存储模块中的目的地址表,将目的地址更新为所选的空闲节点;
步骤4.2.3:将更新的目的地址表发送给上游相关节点,上游相关节点根据新目的地址向所选空闲节点发送数据;
步骤4.2.4:所选空闲节点向全局状态存储模块发送心跳信息时发现有需要执行的任务,所述空闲节点接收上游相关节点发送的数据,并启动工作进程执行该任务,结束;
步骤4.2.5:更新上游相关节点存储于全局状态存储模块中的目的地址表,将目的地址置为空;
步骤4.2.6:将更新的目的地址表发送给上游相关节点,上游相关节点检测到新目的地址为空,则停止向下游发送数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310681028.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一套用于蜡糊提纯精制糠蜡的设备
- 下一篇:无线送电方法