CN108259393B - 一种流数据处理中乱序纠正方法及系统 - Google Patents
一种流数据处理中乱序纠正方法及系统 Download PDFInfo
- Publication number
- CN108259393B CN108259393B CN201810084250.6A CN201810084250A CN108259393B CN 108259393 B CN108259393 B CN 108259393B CN 201810084250 A CN201810084250 A CN 201810084250A CN 108259393 B CN108259393 B CN 108259393B
- Authority
- CN
- China
- Prior art keywords
- flow data
- processing result
- timestamp
- output end
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1854—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1841—Resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种流数据处理中乱序纠正方法及系统,所述方法包括:S1,对目标流数据进行处理,获取第一处理结果;S2,若所述流数据输出端的扫描窗口中第二处理结果的时间戳与流数据输出端的同步指针指向的时间戳不相同,则判断所述第二处理结果与所述第一处理结果是否相同;S3,若所述第二处理结果与所述第一处理结果不相同,则重复执行对所述目标流数据进行所述处理和所述步骤S2,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果。本发明实现流数据处理结果的连续性和正确性。
Description
技术领域
本发明属于数据管理领域,更具体地,涉及一种流数据处理中乱序纠正方法及系统。
背景技术
随着大数据时代的到来,人们开始越来越多关注从大数据中提取有用信息。而其中流数据处理方法逐渐成为研究焦点。流数据是指由大量数据源持续生成的数据,通常以数据记录的形式发送。流数据包括多种数据,如客户使用移动或Web应用程序生成的日志文件、网购数据、游戏内玩家活动、社交网站信息、金融交易大厅或地理空间服务,以及来自数据中心内所连接的设备或仪器的遥测数据等。
对流数据的处理,现阶段主要通过大规模的分布式并行计算单元进行处理从而使得流数据处理系统具有高通量、高可用性和水平扩展等性能。其核心思想为假设每次到达的数据包之间不存在任何依赖的前提下,将数据包的处理任务均匀分布到各个计算节点实现,各节点之间不考虑待处理的数据包之间的前后顺序。在大量数据包输入的情况下,各节点之间的处理负荷无法实现平衡,会导致最终处理结果乱序输出的问题。
对于这一问题,流数据处理中的乱序纠正通常采用在处理完成以后设置重整窗口对处理结果按到达时间重新排序来进行纠正。但这种方法存在两个局限性,一方面,排序区间依赖于窗口大小,当乱序程度超出窗口大小的极限时无法纠正;另一方面,由于需要在窗口填满后进行缓存和排序然后输出,使得原本连续输出的处理结果的变成离散化批处理输出,无法保证后续处理的连续性。
发明内容
为克服上述对流数据处理中的乱序纠正方法对高程度的乱序无法纠正,且使处理结果的输出离散化的问题或者至少部分地解决上述问题,本发明提供了一种流数据处理中乱序纠正方法及系统。
根据本发明的第一方面,提供一种流数据处理中乱序纠正方法,包括:
S1,将流数据的输出端的同步指针指向所述目标流数据的时间戳,获取所述目标流数据经过处理后的第一处理结果;
S2,若所述流数据输出端的扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳不相同,则判断所述第二处理结果与所述第一处理结果是否相同;其中,所述第二处理结果位于所述扫描窗口的最前方;
S3,若所述第二处理结果与所述第一处理结果不相同,则重复执行对所述目标流数据进行所述处理和所述步骤S2,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果,同时更新所述流数据输出端的同步指针。
具体地,所述步骤S1之前包括:
当目标流数据通过预先创建的普通数据通道时,对所述目标流数据进行解析和传输。
具体地,所述步骤S3具体包括:
若所述第二处理结果与所述第一处理结果不相同,则通过预先创建的信号通道通知数据发送端通过预先创建的重传通道将所述目标流数据重新发送,以对重新发送的所述目标流数据进行处理。
具体地,所述重传数据通道的优先级高于所述普通数据通道的优先级;所述信号通道的优先级高于所述重传数据通道的优先级。
具体地,所述步骤S3还包括:
若在预设时长内没有输出所述第二处理结果,则获知所述第一处理结果丢失。
具体地,所述步骤S2还包括:
若所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,则直接将所述第二处理结果输出,同时更新流数据输入端和所述流数据输出端的同步指针。
具体地,所述步骤S3还包括:
若所述第二处理结果与所述第一处理结果相同,则直接将所述第二处理结果输出,同时更新流数据输入端和所述流数据输出端的同步指针。
具体地,所述步骤S3中更新流数据输入端和所述流数据输出端的同步指针的步骤具体包括:
若下一个流数据的时间戳对应的时间在流数据输入端的同步指针指向的时间戳之前,则获知所述下一个流数据已被处理过;其中,所述流数据输入端的同步指针指向的时间戳为所述目标流数据的时间戳;或者,
若下一个流数据的时间戳对应的时间在流数据输入端的同步指针指向的时间戳之后,则将所述流数据输入端和所述流数据输出端的同步指针指向所述下一个流数据的时间戳。
根据本发明的第二方面,提供一种流数据处理中乱序纠正系统,包括:
获取单元,用于将流数据的输出端的同步指针指向所述目标流数据的时间戳,获取所述目标流数据经过处理后的第一处理结果;
判断单元,用于在所述流数据输出端的扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳不相同时,判断所述第二处理结果与所述第一处理结果是否相同;其中,所述第二处理结果位于所述扫描窗口的最前方;
重复单元,用于在所述第二处理结果与所述第一处理结果不相同时,则重复执行上述处理和判断操作,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果,同时更新所述流数据输出端的同步指针。
根据本发明的第三方面,提供一种非暂态计算机可读存储介质,用于存储如前所述方法的计算机程序。
本发明提供一种流数据处理中乱序纠正方法及系统,该方法通过在流数据输入端和流数据输出端创建同步指针,所述同步指针指向每次输入的流数据的时间戳,当流数据的处理结果出现乱序时,重新对流数据进行处理直到处理结果正常或乱序的处理结果为正确的处理结果,然后将正确的处理结果输出,从而保证流数据处理结果的连续性和正确性。
附图说明
图1为本发明实施例提供的流数据处理中乱序纠正方法整体流程示意图;
图2为本发明实施例提供的流数据处理中乱序纠正方法中乱序纠正模型整体结构示意图;
图3为本发明实施例提供的流数据处理中乱序纠正系统整体结构示意图;
图4为本发明实施例提供的流数据处理中乱序纠正设备整体结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在本发明的一个实施例中提供一种流数据处理中乱序纠正方法,图1为本发明实施例提供的流数据处理中乱序纠正方法整体流程示意图,该方法包括:S1,将流数据的输出端的同步指针指向所述目标流数据的时间戳,获取所述目标流数据经过处理后的第一处理结果;S2,若所述流数据输出端的扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳不相同,则判断所述第二处理结果与所述第一处理结果是否相同;其中,所述第二处理结果位于所述扫描窗口的最前方;S3,若所述第二处理结果与所述第一处理结果不相同,则重复执行对所述目标流数据进行所述处理和所述步骤S2,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果,同时更新所述流数据输出端的同步指针。
具体地,S1中,所述目标流数据为需要进行处理的流数据。使用流处理系统对所述目标流数据进行处理获取第一处理结果。本实施例不限于对所述目标流数据进行处理的方式,即不限于所述流处理系统的种类。在所述流数据输入端和所述流数据输出端建立同步指针。所述流数据输入端为流数据的输入入口,所述流数据输出端为流数据的输出出口。所述同步指针用于保证所述流数据输入端流数据输入顺序与所述流数据输出端所述流数据对应的处理结果的输出顺序相同。将所述流数据输入端和所述流数据输出端的同步指针初始化为首个输入的流数据的时间戳。当新的流数据输入时,所述流数据输入端和所述流数据输出端的同步指针重新指向所述新的流数据的时间戳。当目标流数据输入时,所述流数据输入端和所述流数据输出端的同步指针指向所述目标流数据的时间戳。由于所述流处理系统基于时间敏感网络,所述目标流数据在所述流处理系统中的时间戳相同。
S2,在对所述目标流数据进行处理后,判断目标流数据处理是否乱序。具体获取流数据输出端的扫描窗口中的第二处理结果的时间戳,判断所述第二处理结果的时间戳与所述流数据输出端的同步指针所指向的时间戳是否相同,若不相同,则说明目标流数据处理结果乱序;若相同,则说明目标流数据处理结果正常。在目标流数据处理结果乱序的情况下,可以直接重新传入所述目标流数据,重新对所述目标流数据进行处理以获取正常的处理结果,或者继续判断所述第二处理结果和所述第一处理结果是否相同。
S3中,若所述第二处理结果与所述第一处理结果不相同,则重新对所述目标流数据进行重传。在所述流数据输入端保存一个小时间段的输入缓存,所述输入缓存用于在处理结果乱序的情况下对所述目标流数据进行重传。然后重复对重传的所述目标流数据进行处理,判断所述目标流数据的处理结果是否乱序,以及乱序的处理结果与正常的处理结果是否相同,直到所述目标流数据的处理结果正常,或乱序的处理结果与正常的处理结果相同,输出正确的处理结果。在输出正确的处理结果的同时,将所述流数据输入端和所述流数据输出端的同步指针更新到下一个流数据的时间戳。
本实施例通过在流数据输入端和流数据输出端创建同步指针,所述同步指针指向每次输入的流数据的时间戳,当流数据的处理结果出现乱序时,重新对流数据进行处理直到处理结果正常或乱序的处理结果为正确的处理结果,然后将正确的处理结果输出,从而保证流数据处理结果的连续性和正确性。
在上述实施例的基础上,本实施例中所述步骤S1之前包括:当目标流数据通过预先创建的普通数据通道时,对所述目标流数据进行解析和传输。
具体地,使用时间敏感网络特性,建立不同的数据通道,即普通数据通道、重传数据通道和信号通道。其中,所述普通数据通道主要用于对流数据和正常的处理结果进行传输,所述重传数据通道用于乱序处理结果的重传,所述信号通道用于流数据输出端和数据发送端之间的信号传输,所述数据发送端用于在目标流数据的处理结果乱序时,重新发送所述目标流数据。在数据通道建立完成后,当目标流数据通过所述普通数据通道时,对所述目标流数据进行解析和传输。然后通过流处理系统进行处理。
在上述实施例的基础上,本实施例中所述步骤S3具体包括:若所述第二处理结果与所述第一处理结果不相同,则通过预先创建的信号通道通知数据发送端通过预先创建的重传通道将所述目标流数据重新发送,以对重新发送的所述目标流数据进行处理。
具体地,如图2所示,假设1、2、3和4为各流数据的时间戳,所述目标流数据的时间戳为1,所述流数据输出端的同步指针指向的时间戳为1。由于所述扫描窗口中最前方的第二处理结果的时间戳为1,与所述流数据输出端的同步指针指向的时间戳相同,处理结果正常。所述目标流数据第一次通过常规接口输入所述流处理系统,重新传入的所述目标流数据通过重传接口传入所述流处理系统。
在上述实施例的基础上,本实施例中所述重传数据通道的优先级高于所述普通数据通道的优先级;所述信号通道的优先级高于所述重传数据通道的优先级。
具体地,优先级高的通道能优先传输数据,即优先级最高的所述信号通道比所述重传数据通道优先传输信号,所述重传数据通道比所述普通数据通道优先传输数据。
在上述各实施例的基础上,所述步骤S3还包括:若在预设时长内没有输出所述第二处理结果,则获知所述第一处理结果丢失。
在上述各实施例的基础上,本实施例中所述步骤S2还包括:若所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,则直接将所述第二处理结果输出,同时更新流数据输入端和所述流数据输出端的同步指针。
具体地,若所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,则说明所述目标流数据处理结果正常,所述第二处理结果即为所述第一处理结果,直接将所述第二处理结果进行输出,减少处理结果的输出延迟。
在上述各实施例的基础上,本实施例中所述步骤S3还包括:若所述第二处理结果与所述第一处理结果相同,则直接将所述第二处理结果输出,同时更新流数据输入端和所述流数据输出端的同步指针。
具体地,虽然所述第二处理结果与所述目标流数据的时间戳不相同,即所述目标流数据的处理结果乱序,但如果乱序的处理结果与正常的处理结果相同,则直接将所述乱序的处理结果输出,从而保证在处理结果乱序的情况下,输出正确的处理结果,减少处理结果的输出延迟。
在上述各实施例的基础上,本实施例中所述步骤S3中更新流数据输入端和所述流数据输出端的同步指针的步骤具体包括:若下一个流数据的时间戳对应的时间在流数据输入端的同步指针指向的时间戳之前,则获知所述下一个流数据已被处理过;其中,所述流数据输入端的同步指针指向的时间戳为所述目标流数据的时间戳;或者,若下一个流数据的时间戳对应的时间在流数据输入端的同步指针指向的时间戳之后,则将流数据输入端和所述流数据输出端的同步指针指向所述下一个流数据的时间戳。
具体地,对已被处理过的下一个流数据不再进行处理。若下一个流数据没有被处理过,则将所述流数据输入端和所述流数据输出端的同步指针指向所述下一个流数据的时间戳,以对所述下一个流数据进行处理和处理结果的乱序纠正。
在本发明的另一个实施例中提供一种流数据处理中乱序纠正系统,图3为本发明实施例提供的流数据处理中乱序纠正系统整体结构示意图,该系统包括获取单元1、判断单元2和重复单元3,其中:
所述获取单元1用于将流数据的输出端的同步指针指向所述目标流数据的时间戳,获取所述目标流数据经过处理后的第一处理结果;所述判断单元2用于在所述流数据输出端的扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳不相同时,判断所述第二处理结果与所述第一处理结果是否相同;其中,所述第二处理结果位于所述扫描窗口的最前方;所述重复单元3用于在所述第二处理结果与所述第一处理结果不相同时,则重复执行上述处理和判断操作,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果,同时更新所述流数据输出端的同步指针。
具体地,所述目标流数据为需要进行处理的流数据。所述获取单元1使用流处理系统对所述目标流数据进行处理获取第一处理结果。本实施例不限于对所述目标流数据进行处理的方式,即不限于所述流处理系统的种类。在所述流数据输入端和所述流数据输出端建立同步指针。所述流数据输入端为流数据的输入入口,所述流数据输出端为流数据的输出出口。所述同步指针用于保证所述流数据输入端流数据输入顺序与所述流数据输出端所述流数据对应的处理结果的输出顺序相同。将所述流数据输入端和所述流数据输出端的同步指针初始化为首个输入的流数据的时间戳。当新的流数据输入时,所述流数据输入端和所述流数据输出端的同步指针重新指向所述新的流数据的时间戳。当目标流数据输入时,所述流数据输入端和所述流数据输出端的同步指针指向所述目标流数据的时间戳。由于所述流处理系统基于时间敏感网络,所述目标流数据在所述流处理系统中的时间戳相同。
在对所述目标流数据进行处理后,所述判断单元2判断目标流数据处理是否乱序。具体获取流数据输出端的扫描窗口中的第二处理结果的时间戳,判断所述第二处理结果的时间戳与所述流数据输出端的同步指针所指向的时间戳是否相同,若不相同,则说明目标流数据处理结果乱序;若相同,则说明目标流数据处理结果正常。在目标流数据处理结果乱序的情况下,可以直接重新传入所述目标流数据,重新对所述目标流数据进行处理以获取正常的处理结果,或者继续判断所述第二处理结果和所述第一处理结果是否相同。
若所述第二处理结果与所述第一处理结果不相同,则所述重复单元3重新对所述目标流数据进行重传。在所述流数据输入端保存一个小时间段的输入缓存,所述输入缓存用于在处理结果乱序的情况下对所述目标流数据进行重传。然后重复对重传的所述目标流数据进行处理,判断所述目标流数据的处理结果是否乱序,以及乱序的处理结果与正常的处理结果是否相同,直到所述目标流数据的处理结果正常,或乱序的处理结果与正常的处理结果相同,输出正确的处理结果。在输出正确的处理结果的同时,将所述流数据输入端和所述流数据输出端的同步指针更新到下一个流数据的时间戳。
本实施例通过在流数据输入端和流数据输出端创建同步指针,所述同步指针指向每次输入的流数据的时间戳,当流数据的处理结果出现乱序时,重新对流数据进行处理直到处理结果正常或乱序的处理结果为正确的处理结果,然后将正确的处理结果输出,从而保证流数据处理结果的连续性和正确性。
在上述实施例的基础上,本实施例中还包括解析单元,用于当目标流数据通过预先创建的普通数据通道时,对所述目标流数据进行解析和传输。
在上述实施例的基础上,本实施例中所述重复单元具体用于:在所述第二处理结果与所述第一处理结果不相同时,通过预先创建的信号通道通知数据发送端通过预先创建的重传通道将所述目标流数据重新发送,以对重新发送的所述目标流数据进行处理。
在上述各实施例的基础上,本实施例中所述重传数据通道的优先级高于所述普通数据通道的优先级;所述信号通道的优先级高于所述重传数据通道的优先级。
在上述各实施例的基础上,本实施例中所述重复单元还用于:若在预设时长内没有输出所述第二处理结果,则获知所述第一处理结果丢失。
在上述各实施例的基础上,本实施例中所述判断单元还用于:若所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,则直接将所述第二处理结果输出,同时更新流数据输入端和所述流数据输出端的同步指针。
在上述各实施例的基础上,本实施例中所述重复单元还用于:若所述第二处理结果与所述第一处理结果相同,则直接将所述第二处理结果输出,同时更新流数据输入端和所述流数据输出端的同步指针。
在上述各实施例的基础上,本实施例中所述重复单元进一步具体用于:
在下一个流数据的时间戳对应的时间在流数据输入端的同步指针指向的时间戳之前时,获知所述下一个流数据已被处理过;其中,所述流数据输入端的同步指针指向的时间戳为所述目标流数据的时间戳;或者,在下一个流数据的时间戳对应的时间在流数据输入端的同步指针指向的时间戳之后时,将所述流数据输入端和所述流数据输出端的同步指针指向所述下一个流数据的时间戳。
本实施例提供一种流数据处理中乱序纠正设备,图4为本发明实施例提供的流数据处理中乱序纠正设备整体结构示意图,该设备包括:至少一个处理器41、至少一个存储器42和总线43;其中,
所述处理器41和存储器42通过所述总线43完成相互间的通信;
所述存储器42存储有可被所述处理器41执行的程序指令,所述处理器调用所述程序指令能够执行上述各方法实施例所提供的方法,例如包括:S1,将流数据的输出端的同步指针指向所述目标流数据的时间戳,获取所述目标流数据经过处理后的第一处理结果;S2,若所述流数据输出端的扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳不相同,则判断所述第二处理结果与所述第一处理结果是否相同;其中,所述第二处理结果位于所述扫描窗口的最前方;S3,若所述第二处理结果与所述第一处理结果不相同,则重复执行对所述目标流数据进行所述处理和所述步骤S2,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果,同时更新所述流数据输出端的同步指针。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:S1,将流数据的输出端的同步指针指向所述目标流数据的时间戳,获取所述目标流数据经过处理后的第一处理结果;S2,若所述流数据输出端的扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳不相同,则判断所述第二处理结果与所述第一处理结果是否相同;其中,所述第二处理结果位于所述扫描窗口的最前方;S3,若所述第二处理结果与所述第一处理结果不相同,则重复执行对所述目标流数据进行所述处理和所述步骤S2,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果,同时更新所述流数据输出端的同步指针。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的流数据处理中乱序纠正设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种流数据处理中乱序纠正方法,其特征在于,包括:
S1,将流数据输出端的同步指针指向目标流数据的时间戳,获取所述目标流数据经过处理后的第一处理结果;
S2,若所述流数据输出端的扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳不相同,则判断所述第二处理结果与所述第一处理结果是否相同;其中,所述第二处理结果位于所述扫描窗口的最前方;
S3,若所述第二处理结果与所述第一处理结果不相同,则重复执行对所述目标流数据进行所述处理和所述步骤S2,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果,同时更新所述流数据输出端的同步指针。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1之前包括:
当目标流数据通过预先创建的普通数据通道时,对所述目标流数据进行解析和传输。
3.根据权利要求2所述的方法,其特征在于,所述步骤S3具体包括:
若所述第二处理结果与所述第一处理结果不相同,则通过预先创建的信号通道通知数据发送端通过预先创建的重传数据通道将所述目标流数据重新发送,以对重新发送的所述目标流数据进行处理。
4.根据权利要求3所述的方法,其特征在于,所述重传数据通道的优先级高于所述普通数据通道的优先级;所述信号通道的优先级高于所述重传数据通道的优先级。
5.根据权利要求1-4任一所述的方法,其特征在于,所述步骤S3还包括:
若在预设时长内没有输出所述第二处理结果,则获知所述第一处理结果丢失。
6.根据权利要求1-4任一所述的方法,其特征在于,所述步骤S2还包括:
若所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,则直接将所述第二处理结果输出,同时更新流数据输入端和所述流数据输出端的同步指针。
7.根据权利要求1-4任一所述的方法,其特征在于,所述步骤S3还包括:
若所述第二处理结果与所述第一处理结果相同,则直接将所述第二处理结果输出,同时更新流数据输入端和所述流数据输出端的同步指针。
8.根据权利要求1-4任一所述的方法,其特征在于,所述步骤S3中更新流数据输入端和所述流数据输出端的同步指针的步骤具体包括:
若下一个流数据的时间戳对应的时间在流数据输入端的同步指针指向的时间戳之前,则获知所述下一个流数据已被处理过;其中,所述流数据输入端的同步指针指向的时间戳为所述目标流数据的时间戳;或者,
若下一个流数据的时间戳对应的时间在流数据输入端的同步指针指向的时间戳之后,则将所述流数据输入端和所述流数据输出端的同步指针指向所述下一个流数据的时间戳。
9.一种流数据处理中乱序纠正系统,其特征在于,包括:
获取单元,用于将流数据输出端的同步指针指向目标流数据的时间戳,获取所述目标流数据经过处理后的第一处理结果;
判断单元,用于在所述流数据输出端的扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳不相同时,判断所述第二处理结果与所述第一处理结果是否相同;其中,所述第二处理结果位于所述扫描窗口的最前方;
重复单元,用于在所述第二处理结果与所述第一处理结果不相同时,则重复执行上述处理和判断操作,直到所述扫描窗口中第二处理结果的时间戳与所述流数据输出端的同步指针指向的时间戳相同,或者所述第二处理结果与所述第一处理结果相同,输出所述第二处理结果,同时更新所述流数据输出端的同步指针。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810084250.6A CN108259393B (zh) | 2018-01-29 | 2018-01-29 | 一种流数据处理中乱序纠正方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810084250.6A CN108259393B (zh) | 2018-01-29 | 2018-01-29 | 一种流数据处理中乱序纠正方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108259393A CN108259393A (zh) | 2018-07-06 |
CN108259393B true CN108259393B (zh) | 2019-04-05 |
Family
ID=62742109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810084250.6A Active CN108259393B (zh) | 2018-01-29 | 2018-01-29 | 一种流数据处理中乱序纠正方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108259393B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117556212A (zh) * | 2023-11-29 | 2024-02-13 | 金网络(北京)数字科技有限公司 | 一种流式大数据的分析方法、装置、系统及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2819378A1 (en) * | 2013-06-27 | 2014-12-31 | Alcatel Lucent | Method and device for performing streaming queries |
US9942272B2 (en) * | 2015-06-05 | 2018-04-10 | Microsoft Technology Licensing, Llc. | Handling out of order events |
US9612754B1 (en) * | 2015-06-29 | 2017-04-04 | EMC IP Holding Company LLC | Data storage system with window allocation using window cache |
US10942943B2 (en) * | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
CN106850595A (zh) * | 2017-01-17 | 2017-06-13 | 烽火通信科技股份有限公司 | 一种流媒体传输优化方法及装置 |
-
2018
- 2018-01-29 CN CN201810084250.6A patent/CN108259393B/zh active Active
Non-Patent Citations (1)
Title |
---|
一种数据流上基于滑动窗口的点连接查询处理算法;杨仁凯等;《计算机研究与发展》;20141231;第161-168页 |
Also Published As
Publication number | Publication date |
---|---|
CN108259393A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9888048B1 (en) | Supporting millions of parallel light weight data streams in a distributed system | |
CN106815722A (zh) | 基于区块链的信息处理方法和装置 | |
CN104158760B (zh) | 一种广域网tcp单边加速的方法及系统 | |
CN108228363A (zh) | 一种消息发送方法及装置 | |
CN113469371B (zh) | 联邦学习方法和装置 | |
EP3235210A1 (en) | Methods and first network node for managing a stream control transmission protocol association | |
CN109254854A (zh) | 异步调用方法、计算机装置及存储介质 | |
CN107360233A (zh) | 文件上传的方法、装置、设备及可读存储介质 | |
CN110222253A (zh) | 一种数据采集方法、设备及计算机可读存储介质 | |
CN114185582A (zh) | 基于quic协议的汽车软件在线升级系统及方法 | |
CN108259393B (zh) | 一种流数据处理中乱序纠正方法及系统 | |
CN107332814A (zh) | 一种请求消息传输方法及装置 | |
CN109410063A (zh) | 基于区块链的交易处理方法、装置和存储介质 | |
CN106059956A (zh) | 一种用于网络设备会话的时间队列处理方法以及装置 | |
US20220383304A1 (en) | Distributed network with consensus mechanism | |
CN109714214A (zh) | 一种服务器异常的处理方法及管理设备 | |
CN107819697A (zh) | 数据传输方法、交换机及数据中心 | |
US10949645B2 (en) | Method, apparatus, and storage medium for data verification | |
CN104184729A (zh) | 一种报文处理方法和装置 | |
CN111555984A (zh) | 用于数据传输的方法及装置、智能家居设备、存储介质 | |
US8060568B2 (en) | Real time messaging framework hub to intercept and retransmit messages for a messaging facility | |
CN106850153B (zh) | 数据重传方法及系统 | |
CN115348333A (zh) | 基于udp双端通信交互的数据传输方法、系统及设备 | |
CN114090687A (zh) | 一种数据同步方法及装置 | |
CN114168315A (zh) | 基于多核的报文处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |