[发明专利]一种面向数据流处理的元组跟踪方法及系统有效
申请号: | 201310227114.5 | 申请日: | 2013-06-07 |
公开(公告)号: | CN103346901A | 公开(公告)日: | 2013-10-09 |
发明(设计)人: | 张鹏;杜华明;徐克付;张闯;谭建龙 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L29/08;G06F17/30 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 数据流 处理 跟踪 方法 系统 | ||
技术领域
本发明涉及分布式的数据流处理领域,特别是保证了数据流中需要处理的每个元组都不会因为丢失而无法得到处理的面向数据流处理的元组跟踪方法及系统。
背景技术
随着云计算、物联网等技术的兴起,数据正以前所未有的速度不断地增长和积累,并且越来越多地以大规模、连续的流的形式出现在应用程序中,其中最典型的应用就是监控应用,例如金融市场监控、网络监控、移动对象监控、入侵检查和生态系统监控等,因为这类应用监控的都是处理实时数据,所以数据的价值会随着时间的推移而不断减小,因此低延迟处理对这类应用是一个关键需求,为此工业界和学术界开发了很多数据流处理系统,包括斯坦福大学的STREAM、施乐公司的Tapestry、加州大学伯克利分校的Telegraph、布朗大学和麻省理工学院合作的Aurora,Apache的Hadoop Online以及Yahoo的S4。这些系统从集中式演化到并行分布式,其主要目的就是为了提高数据流处理的性能,降低处理延迟。但是在分布式的环境中,随着服务器和通信次数的增多,数据流处理过程中出现故障的几率也随之增加。其中,任何一台服务器出现故障都会对数据流处理过程产生延迟,不仅如此,故障还可能导致产生最终结果的至关重要的数据丢失。因此,提高分布式环境下的数据流处理系统的可靠性是一个关键需求。
目前,提高可靠性的技术主要包括三种:主动备份,被动备份和上游备份。这三种技术的主要区别在于服务器出现故障时恢复丢失数据的方式。
主动备份技术通过一个备用服务器来进行恢复。当主服务器出现故障时,这个技术会使用备用服务器。这个技术的不足是内存空间开销大。此外,元组必须发送到备用服务器也会带来额外的时间开销。同时,这个技术只需要把主服务器的输出流切换到备用服务器,因此故障恢复的时间较少。
被动备份技术把主服务器的状态周期性地拷贝到备用服务器上。当主服务器出现故障时,这些拷贝被安装到备用服务器。一个服务器的周期性的拷贝被称为校验。与主动备份相比,由于主服务器和备用服务器之间周期性进行校验可以减少需要主动备份时主服务器发送的元组个数,因此被动备份会带来较少的时间开销。另一方面,由于在最后一次校验和出现故障的这段时间内发送到主服务器的所有元组都没有在备用服务器中备份,所以这些元组需要重新发送到备用服务器上,因此导致被动备份的故障恢复时间较长。
上游备份技术不需要使用任何备用服务器,只依赖上游服务器和下游服务器。上游服务器在输出队列中备份输出元组,直到下游服务器确认这些元组可以被删除。这个技术的核心思想是:当主服务器出现故障时,上游服务器把所有在输出队列并且还没有被下游服务器确认的元组重新发送到主服务器的备用服务器。上游备份的时间开销较少,只需要上游服务器在输出队列中备份输出元组,但是故障恢复的时间也较长。
然而,上述备份技术只适用于故障粒度是服务器的情况,当服务器没有出现故障,但是它所处理的元组由于内存限制等原因丢失时,上述技术无法对这些元组进行重新处理。然而,如果把故障粒度定为数据流处理过程中的每个元组,那么当元组数量很多时,为了保证每个元组被正常处理,系统需要在内存中把它们一直保留到被正常处理确认之后,因此内存开销会很大。因此我们需要一种既能节约内存又能够保证需要处理的每个元组都被处理的可靠方案。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种节省内存、负载均衡、元组处理可靠的能保证数据流中需要处理的每个元组都不会因为丢失而无法得到处理的面向数据流处理的元组跟踪方法及系统。
本发明解决上述技术问题的技术方案如下:一种面向数据流处理的元组跟踪方法,包括如下步骤:
步骤1:元组生成器内设有若干个元组转换单元,将元组生成器生成的若干个根元组分配给若干个元组转换单元存储并处理,每个根元组经过元组转换单元处理后产生一个或一个以上的元组;
步骤2:元组生成器将若干个根元组编号及与根元组对应的元组转换单元编号的对应关系发送给元组跟踪器;
步骤3:元组跟踪器根据根元组编号及与根元组对应的元组转换单元编号为每个根元组构建元组跟踪记录<SpringTupleId,taskId,checkValue>,其中,SpringTupleId为根元组编号,taskId为元组转换单元编号,checkValue为标识根元组对应的元组树是否得到一次完整处理的标识位,checkValue的初始值为0;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310227114.5/2.html,转载请声明来源钻瓜专利网。