[发明专利]流式计算系统中计算节点的故障处理有效
申请号: | 201710035881.4 | 申请日: | 2017-01-17 |
公开(公告)号: | CN106874133B | 公开(公告)日: | 2020-06-23 |
发明(设计)人: | 石然;程怡;张建伟;高伟康 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 杨泽;刘芳 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算 系统 节点 故障 处理 | ||
本发明的目的是提供一种用于流式计算系统中的故障处理的方法、装置、计算节点和计算机程序产品。其中,在一个计算节点,记录来自上游计算节点的各原始数据的到达顺序;将所述各原始数据按照预定的周期进行持久化操作;当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算;将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点。与现有技术相比,本发明提供了一种在框架层实现的流式计算输出结果不重不丢的容错机制,可应对各种软硬件故障,保证输出结果的高准确性。
技术领域
本发明涉及流式计算技术领域,尤其涉及一种用于流式计算系统中的故障处理技术。
背景技术
目前而言,常见流式计算系统提供计算结果到传输系统三种可选语义:
1)至多一次(at most once):保证计算结果在计算过程中遇到节点故障后,计算恢复前后结算结果至多发送到传输系统一次。
2)至少一次(at least once):保证计算结果在计算过程中遇到节点故障后,计算恢复前后结算结果至少发送到传输系统一次。例如Strom。
3)受限的严格一次(exactly once):依赖计算结果发布的存储支持update幂等功能,且update依据的key一般由业务方指定,实现计算结果直接记入存储,不再支持结果继续进行流式计算。例如Flink使用Cassandra作为存储。
至多一次(at most once)或者至少一次(at least once)只是严格一次(exactlyonce)某一个方面的实现保证。用户使用中,只能选择不重或者不丢来折中业务计算需求。受限的严格一次(exactly once)语义支持计算结果发布update幂等存储,但是不支持后续计算结果继续流式计算分析等复杂app级联等业务场景。
而在很多领域,例如金融、计费、反作弊、广告等,业务场景天然需求数据计算至传输都保证不重不丢,以满足精准的数据完整性需求,同时有复杂的业务计算场景,计算结果简单存入update幂等存储不能满足需求。为此,用户需要在业务层增加额外复杂的数据重放及校验去重逻辑来保证计算数据结果的不重不丢,但是此方案对用户要求很高,极易出现数据不一致等问题,增大了用户的开发成本。而且,此种方案用户间无法复用,无法形成流式计算框架层通用逻辑。
发明内容
本发明的目的是提供一种用于流式计算系统中的故障处理的方法、装置、计算节点和计算机程序产品。
根据本发明的一个方面,提供了一种用于流式计算系统中的故障处理方法,其中,在一个计算节点,该方法包括以下步骤:
-记录来自上游计算节点的各原始数据的到达顺序;
-将所述各原始数据按照预定的周期进行持久化操作;
-当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算;
-将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点。
根据本发明的一个方面,还提供了一种用于流式计算系统中的故障处理装置,其中,故障处理装置被布置于所述流式计算系统中的一个计算节点中,该故障处理装置包括:
用于记录来自上游计算节点的各原始数据的到达顺序的装置;
用于将所述各原始数据按照预定的周期进行持久化操作的装置;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710035881.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种异常处理方法和装置
- 下一篇:工单类型的处理方法、装置及系统