一种基于异或运算的流计算跟踪方法及系统的制作方法

文档序号:9420198阅读:338来源:国知局
一种基于异或运算的流计算跟踪方法及系统的制作方法
【技术领域】
[0001]本发明涉及一种基于异或运算的流计算跟踪方法及系统。
【背景技术】
[0002]流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合。应用于网络监控、传感器网络、航空航天、气象测控和金融服务等领域。
[0003]流数据具有四个特点:
[0004]I)数据实时到达;
[0005]2)数据到达次序独立,不受应用系统所控制;
[0006]3)数据规模宏大且不能预知其最大值;
[0007]4)数据一经处理,除非特意保存,否则不能被再次取出处理,或者再次提取数据代价昂贵。
[0008]过去的网络服务提供商主要用传统的网络流量监控方法,就是采用离线分析,SP先保存,在对其进行数据挖掘等处理。但实际中的一些需求是:用户要知道当前网络中的流量现状。进而根据当前状况采取可以提高服务性能的有利措施或者对有害行为进行预警等。而要在监控对象是实时、大量流数据的前提下,实现以上的需求,传统的方法是不合适的。

【发明内容】

[0009]本发明所要解决的技术问题是提供一种基于异或运算的基本原理,通过对流数据进行数据标记,增加跟踪器,来达到监控整个数据流是否被完全处理的目的基于异或运算的流计算跟踪方法及系统。
[0010]本发明解决上述技术问题的技术方案如下:一种基于异或运算的流计算跟踪方法,具体包括以下步骤:
[0011]步骤1:流生成器生成一个流数据,并为所述流数据匹配一个唯一对应的rootid,对所述流数据进行处理,生成至少两个子流数据和母id ;
[0012]步骤2:将rootid和母id发送到流跟踪器,并将所有子流数据分别发送到不同的流处理器中,同时将rootid发送到每个流处理器中;
[0013]步骤3:按序选取一个流处理器作为当前流处理器,将传输到当前流处理器中的所有子流数据进行处理生成新数据,将新数据传输至下一个流处理器,同时将子流数据进行异或运算获得第一子id,将rootid和第一子id发送到流跟踪器;
[0014]步骤4:流跟踪器将母id与第一子id做异或运算,得到第一跟踪id ;
[0015]步骤5:将接收新数据的下一个流处理器作为当前流处理器;
[0016]步骤6:将传输到当前流处理器中的所有新数据和/或子流数据进行处理生成更新数据,将更新数据传输至下一个流处理器,同时将新数据和/或子流数据进行异或运算获得当前子id,将rootid和当前子id发送到流跟踪器;
[0017]步骤7:流跟踪器将第一跟踪id与当前子id做异或运算,得到当前跟踪id,判断当前跟踪id是否为零,如果是,执行步骤8 ;否则,将更新数据作为新数据传输至下一个流处理器,执行步骤5;
[0018]步骤8:当前更新数据为空,对应所述rootid的流数据处理完成。
[0019]本发明的有益效果是:本发明通过对数据增加跟踪器,进行数据标记,通过简单的异或运算,解决了流数据处理中数据是否在制定的时间内完全被处理的难题。本发明运算量小,速度快,思路简单巧妙,可用于所有流计算处理平台。
[0020]在上述技术方案的基础上,本发明还可以做如下改进。
[0021]进一步,所述rootid将传递到流数据跟踪器以及每一个流处理器,用于作为所述流数据的唯一标识。
[0022]进一步,所述流跟踪器可同时处理多个流数据,当同时处理多个流数据时,将rootid作为唯一标识识别是否为同一流数据。
[0023]进一步,所述母id和所有子id采用64位整数进行表示。
[0024]本发明解决上述技术问题的技术方案如下:一种基于异或运算的流计算跟踪系统,包括生成模块、发送模块、处理模块、运算模块、设定模块、更新模块和判断模块;
[0025]所述生成模块用于流生成器生成一个流数据,并为所述流数据匹配一个唯一对应的rootid,对所述流数据进行处理,生成至少两个子流数据和母id ;
[0026]所述发送模块用于将rootid和母id发送到流跟踪器,并将所有子流数据分别发送到不同的流处理器中,同时将rootid发送到每个流处理器中;
[0027]所述处理模块用于按序选取一个流处理器作为当前流处理器,将传输到当前流处理器中的所有子流数据进行处理生成新数据,将新数据传输至下一个流处理器,同时将子流数据进行异或运算获得第一子id,将rootid和第一子id发送到流跟踪器;
[0028]所述运算模块用于流跟踪器将母id与第一子id做异或运算,得到第一跟踪id ;
[0029]所述设定模块用于将接收新数据的下一个流处理器作为当前流处理器;
[0030]所述更新模块用于将传输到当前流处理器中的所有新数据和/或子流数据进行处理生成更新数据,将更新数据传输至下一个流处理器,同时将新数据和/或子流数据进行异或运算获得当前子id,将rootid和当前子id发送到流跟踪器;
[0031]所述判断模块用于流跟踪器将第一跟踪id与当前子id做异或运算,得到当前跟踪id,判断当前跟踪id是否为零,如果是,当前更新数据为空,对应所述rootid的流数据处理完成;否则,将更新数据作为新数据传输至下一个流处理器,触发设定模块。
[0032]本发明的有益效果是:本发明通过对数据增加跟踪器,进行数据标记,通过简单的异或运算,解决了流数据处理中数据是否在制定的时间内完全被处理的难题。本发明运算量小,速度快,思路简单巧妙,可用于所有流计算处理平台。
[0033]在上述技术方案的基础上,本发明还可以做如下改进。
[0034]进一步,所述rootid将传递到流数据跟踪器以及每一个流处理器,用于作为所述流数据的唯一标识。
[0035]进一步,所述流跟踪器可同时处理多个流数据,当同时处理多个流数据时,将rootid作为唯一标识识别是否为同一流数据。
[0036]进一步,所述母id和所有子id采用64位整数进行表示。
[0037]在流数据处理系统中,每一个生成流数据的数据生成器会给生成的每一条数据对应一个64位的整数,作为rootid,rootid会传递给流数据跟踪器以及每一个流数据器来作为该数据的唯一标示。同时,无论是流数据生成器还是处理器,当他基于输入的数据有产生一个新的数据时,都会赋予新数据一个64位的整数id。当数据生成器将数据传递给数据处理器的时候,会告知数据跟踪器自己发送数据的rootid和生成的数据id,而数据处理器每次接收到一个数据并且处理完毕后,会告知数据跟踪器自己处理的输入数据的id和新生成的数据的id。数据跟踪器只要对这些id做一个简单的异或运算,就能判断出该rootid对应的数据是否处理完毕。
[0038]本发明数学原理:
[0039]A xor A = 0.
[0040]A xor B…xor B xor A = 0,其中每一个操作数出现且仅出现两次;
[0041]xor代表异或运算。
【附图说明】
[0042]图1为本发明所述的一种基于异或运算的流计算跟踪方法流程图;
[0043]图2为本发明所述的一种基于异或运算的流计算跟踪系统结构框图;
[0044]图3为本发明具体实施例2的流生成器的数据流向图;
[0045]图4为本发明具体实施例2的流处理器的数据流向图;
[0046]图5为本发明具体实施例2的另一个流生成器的数据流向图;
[0047]图6为本发明具体实施例2的第三个流生成器的数据流向图。
[0048]附图中,各标号所代表的部件列表如下:
[0049]1、生成模块,2、发送模块,3、处理模块,4、运算模块,5、设定模块,6、更新模块,7、
判断模块。
【具体实施方式】
[0050]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0051]如图1所示,为本发明所述的一种基于异或运算的流计算跟踪方法,具体包括以下步骤:
[0052]步骤1:流生成器生成一个流数据,并为所述流数据匹配一个唯一对应的rootid,对所述流数据进行处理,生成至少两个子流数据和母id ;
[0053]步骤2:将rootid和母id发送到流跟踪器,并将所有子流数据分别发送到不同的流处理器中,同时将rootid发送到每个流处理器中;
[0054]步骤3:按序选取一个流处理器作为当前流处理器,将传输到当前流处理器中的所有子流数据进行处理生成新数据,将新数据传输至下一个流处理器,同时将子流数据进行异或运算获得第一子id,将rootid和第一子id发送到流跟踪器;
[0055]步骤4:流跟踪器将母id与第一子id做异或运算,得到第一跟踪id ;
[0056]步骤5:将接收新数据的下一个流处理器作为当前流处理器;
[0057]步骤6:将传输到当前流处理器中的所有新数据和/或子流数据进行处理生成更新数据,将更新数据传输至下一个流处理器,同时将新数据和/或子流数据进行异或运算获得当前子id,将rootid和当前子id发送到流跟踪器;
[0058]步骤7:流跟踪器将第一跟踪id与当前子id做异或运算,得到当前跟踪id,判断当前跟踪id是否为零,如果是,执行步骤8 ;否则,将更新数据作为新数据传输至下一个流处理器,执行步骤5;
[0059]步骤8:当前更新数据为空,对应所述rootid的流数据处理完成。
[0060]所述rootid将传递到流数据跟踪器以及每一个流处理器,用于作为所述流数据的唯一标识。
[0061]所述流跟踪器可同时处理多个流数据,当同时处理多个流数据时,将rootid作为唯一标识识别是否为同一流数据。
[0062]所述母id和所有子id采用64位整数进行表示。
[0063]如图2所示,为
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1