CN114127687A - 用于收集和发送实时数据的系统和方法 - Google Patents

用于收集和发送实时数据的系统和方法 Download PDF

Info

Publication number
CN114127687A
CN114127687A CN201980098624.2A CN201980098624A CN114127687A CN 114127687 A CN114127687 A CN 114127687A CN 201980098624 A CN201980098624 A CN 201980098624A CN 114127687 A CN114127687 A CN 114127687A
Authority
CN
China
Prior art keywords
data
queued
queued data
retry count
new data
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.)
Pending
Application number
CN201980098624.2A
Other languages
English (en)
Inventor
戴维·约翰·莫斯托
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Data System Corp
Original Assignee
Hitachi Data System Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Data System Corp filed Critical Hitachi Data System Corp
Publication of CN114127687A publication Critical patent/CN114127687A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/54Loss aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/564Attaching a deadline to packets, e.g. earliest due date first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本文中所描述的示例实施方式涉及一种管理物联网(IoT)系统内的数据分派的系统,该系统可以涉及用于摄入新数据并且执行分派新数据或对新数据进行排队中的一个的第一过程;以相比于第一过程较低的优先级执行的第二过程,第二过程涉及确定排队的数据是否超过重试计数;如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及如果排队的数据超过重试计数,则将排队的数据弹出错误过程中;以及在从第二过程接收到排队的数据之后执行的第三过程,涉及尝试分派排队的数据。

Description

用于收集和发送实时数据的系统和方法
背景
技术领域
本公开总体上涉及物联网(IoT)系统,并且更具体地,涉及促进IoT系统中的数据流的存储和转发。
背景技术
当收集实时传感器数据并将这样的数据发送到对应的目的地时,存在影响IoT系统的两个因素。一个因素是确保在目的地处没有数据丢失。另一个因素是保持数据流路径尽可能平滑。
在IoT系统中,传感器数据可以实时地流式传输到诸如边缘节点的处理系统,该处理系统需要将这样的数据转发到适当的目的地,诸如云系统、分析系统、底层客户端设备等,这取决于期望的实现方式。然而,由于带宽限制和要被正确地路由和传输的传感器数据的量,如果在相同的时间帧内接收到大量数据并且需要由处理系统快速地处理大量数据,则确保上述两个因素可能是困难的,特别是如果数据流路径将被实时维护或者如果数据过于大并且需要密集的计算资源来分派。
发明内容
本文描述的示例实施方式涉及实现在边缘系统或其他处理系统处存储和转发以实现IoT系统中的数据传输的系统和方法。在本文描述的示例实施方式中,当数据流动路径拥塞时、当目的地不可用时,或者在数据不能立即分派的其他情况下,接收的数据被存储在本地数据库处。然后,示例实现方式通过利用存储和转发过程将所存储的数据逐渐穿行(thread)回到要被分派到其预期目的地的主数据流中,以避免影响实时数据流路径。
如将在本文中描述的,本文所描述的示例实施方式涉及一种管理物联网(IoT)系统内的数据分派的系统,该系统可以涉及用于摄入新数据并且执行分派新数据或对新数据进行排队中的一个的第一过程。通过这样的过程,如果数据没有被分派(例如,出于某个原因而被分派失败),则对数据进行排队,这允许示例实施方式从数据流中抽出未分派的数据,使得其不阻止目的地流水线分派可以被分派的数据,同时允许系统有机会重试分派未分派的数据以避免丢失目的地处的数据。
示例实施方式还涉及以相比于第一过程较低的优先级执行的第二过程,涉及确定排队的数据是否超过重试计数;以及如果重试计数不超过阈值,则将排队的数据转发到第三过程。这样,可以利用更新后的重试计数和时间戳自动对数据进行重新排队,如将在本文中描述的。
示例实施方式还涉及如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中。第三过程也可以在从第二过程接收排队的数据之后执行,并且涉及尝试分派排队的数据。通过这样的示例实施方式,排队的未分派数据可以被折叠回到数据传输的主流中。这样的示例实施方式与涉及阻塞针对新数据的路径、发送排队的数据、然后解除阻止的相关技术实现形成对比。相反,本文描述的示例实施方式涉及在逐步线程过程中将数据添加到主流的过程,该逐步线程过程实现在不中断引入数据的流动的情况下正常地通过流水线提供未分派的数据。在示例实施方式中,一旦这样的未分派数据被成功分派到其原始预期目的地,则可以从队列中删除数据。
本公开内容的各方面可以包括一种方法,所述方法可以涉及:第一过程,该第一过程涉及摄入新数据并且执行分派新数据或对新数据进行排队中的一个;以相比于第一过程较低的优先级执行的第二过程,该第二过程涉及确定排队的数据是否超过重试计数;如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中;和在从第二过程接收到排队的数据之后执行的第三过程,该第三过程涉及尝试分派排队的数据。
本公开的各方面可以包括一种计算机程序,该计算机程序可以涉及如下指令:用于第一过程的指令,第一过程涉及摄入新数据并且执行分派新数据或对新数据进行排队中的一个;用于以相比于第一过程较低的优先级执行的第二过程的指令,第二过程涉及确定排队的数据是否超过重试计数;如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中;和用于在从第二过程接收到排队的数据之后执行的第三过程的指令,第三过程涉及尝试分派排队的数据。指令可以存储在非瞬态计算机可读介质上并且被配置为由一个或多个处理器执行。
本公开内容的各方面可以包括一种系统,该系统可以涉及:用于执行第一过程的单元,第一过程涉及摄入新数据并且执行分派新数据或对新数据进行排队中的一个;用于执行以相比于第一过程较低的优先级执行的第二过程的单元,第二过程涉及确定排队的数据是否超过重试计数;如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中;和用于执行在从第二过程接收到排队的数据之后执行的第三过程的单元,第三过程涉及尝试分派排队的数据。
本公开内容的各方面可以包括一种装置,该装置可以包括:处理器,被配置为执行第一过程,第一过程涉及摄入新数据并且执行分派新数据或对新数据进行排队中的一个;以相比于第一过程较低的优先级执行的第二过程,第二过程涉及确定排队的数据是否超过重试计数;如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中;和在从第二过程接收到排队的数据之后执行的第三过程,第三过程涉及尝试分派排队的数据。
通过本文描述的示例实施方式,即使未能分派到预期目的地之后,较旧的数据也可以重新并入IoT系统数据流中,同时避免破坏和最小化对实时数据流路径的影响。
附图说明
图1示出了根据示例实施方式的用于数据的存储和转发过程的示例可视化。
图2示出了根据示例实施方式的单个数据转发的示例。
图3示出了根据示例实施方式的批量数据转发的示例。
图4(a)至图4(c)示出了根据示例实施方式的示例流程图。
图5(a)及图5(b)示出了可用于实现本文中所描述的示例实施方式的管理信息的示例。
图6示出了根据示例实施方式的涉及多个装置和边缘/云处理装置的系统。
图7示出了具有适合于在一些示例实施方式中使用的示例计算机设备的示例计算环境。
具体实施方式
以下详细描述提供了对本申请的附图和示例实施方式的进一步细节。为了清楚起见,将省略附图之间的冗余要素的附图标记和描述。贯穿本说明书使用的术语被提供作为示例且不旨在用于限制。例如,术语“自动”的使用可以涉及完全自动或在实施方式的某些方面涉及用户或管理员控制的半自动实施方式,这取决于实践本申请的实施方式的本领域普通技术人员的期望实施方式。用户可以通过用户接口或其他输入装置来进行选择,或者可以通过期望的算法来实现选择。如本文所述的示例实施方式可以单独或组合使用,并且示例实施方式的功能可以根据期望的实施方式通过任何装置来实现。
本文描述的示例实施方式涉及实现IoT系统的存储和转发边缘/云过程,其涉及向多个输出位置实时流式传输大量数据。在这样的IoT系统中,常常存在这样的要求,其中如果可能的话,数据不能丢失并且需要被分派给输出目的地。在这样的IoT系统中,由于网络连接问题、目的地停止运转、接收到的数据是畸形的等等,有可能防止分派数据到达其目的地。然而,当一些接收到的数据不能被分派时,系统仍然可以接收实况数据流,因此这样的数据的分派不应该由于在分派一些数据中的失败而被停止。
在示例实施方式中,由系统接收的数据消息与时间戳相关联以实现优先级系统。在示例实施方式中,当存在新数据消息的摄入(intake)时,基于其进入系统的时间来向数据消息分配优先级,使得不重试单个数据消息以用于重复分派。因此,在重试数据消息之后存在延迟,使得系统可以逐渐恢复将要进行的处理并允许数据被成功发送。
图1示出了根据示例实施方式的用于数据的存储和转发过程的示例可视化。在图1中,为了便于解释,数据流和过程被示出为具有车辆的公路,每个车辆表示要发送的数据(例如,分组、文件、消息等)。
在IoT系统中,处理系统或边缘系统接收实时数据流100。存储和转发数据过程的示例实施方式可以在被配置为将数据分派到各种目的地的边缘系统或处理系统中实现。这样的边缘系统或处理系统被配置为收集未能到达其预期目的地的数据。到目的地的主实时流路径可以连续地接收数据流,而不管数据路径由于IoT系统的实时性而拥塞或平滑。因此,本文描述的示例实施方式的存储和转发数据过程被配置为将收集的数据返回到主流以平滑地到达其预期目的地而不影响实时数据流。在示例实施方式中,数据流表现得像公路计量闸,以允许本地交通(存储的数据)回到主公路交通(主实时数据流)。由此,示例实施方式过程消除了由于重试计数的允许阈值内的源和目的地之间的断开而在内部的数据丢失,并且由此最小化对引导实时数据流的影响。
在如本文所述的示例实施方式中,存储和转发过程利用以下管理信息来管理存储在队列中的数据。
重试计数指示在特定排队的数据离开并被发送到经配置的错误目的地以用于错误过程处置之前将其从队列重新分派到实时数据流中的次数。每次重试数据点时,重试计数递减,以跟踪数据何时到期并且由错误过程来处置。
重试速率是在从队列回到实时数据流的每次分派之间等待的时间量,这在概念上类似于公路计量绿灯间隔。
批量计数指示每个重试尝试从队列分派的数据消息的最大数量,这在概念上类似于在公路计量闸处每绿灯的汽车数量。
尝试的时间戳是队列内排队的数据的每次重试尝试时更新的时间戳。该字段允许系统基于在系统内接收的时间对于优先级进行排序。当接收到新数据时,将尝试的时间戳字段设置为当前时间。
如图1所示,存储和转发过程在概念上类似于公路系统的过程,因为该过程以类似于公路如何处理试图合并到交通中的汽车的方式来处理数据。引入的实时数据可以被可视化为进入系统的主公路上的两个汽车。该流如果不被阻塞,将在数据通过系统的途中将数据连续地分派到其预期目的地。当数据点在101处未能分派或到达其预期目的地时,数据被转发到存储和转发过程,该过程将使数据排队并且稍后重试分派通过相同的实时数据流。
如在102处所示,这样的数据被排队以进行重新进入实时数据流的尝试。如果数据点尚未到期,则数据在存储和转发过程中被重新排队以重新进入实时流并尝试到达其预期目的地。
在103处,如果重试计数达到零,则数据由于到期而从队列离开公路。每个数据点包含重试计数,该重试计数规定数据点何时到期。当重试计数达到零时,它被从队列中取出并且被分派给经配置的错误目的地,诸如根据期望的实现方式设置的错误队列或错误处置过程。重试计数充当阈值门,以允许用户操纵数据点在被踢出之前可以存储在队列中多长时间。取决于根据期望实施方式而设置的重试计数,队列的大小将被相应地调整和分配。
当处理排队的消息并分派给实时数据流时,可以存在根据期望的实施方式可以利用的两个设置,其可以是单个数据转发和批量数据转发。
图2示出了根据示例实施方式的单个数据转发的示例。当被设置用于单个数据转发时,存储和转发过程一次一个地从其队列分派消息。在图2所示的示例中,DP是数据点(Data Point)的缩写,并且用于在每个数据点被接收或排队时突出显示每个数据点;RC是剩余的重试计数(Remaining Retry Count)的缩写并且在其向下计数时用于表示当前DP的重试计数。摄入速率是新数据被接收以经由存储和转发过程被排队和分派的当前速率。如图2所示,以下设置被配置用于存储和转发过程:
摄入速率-1DP/秒
重试速率-1DP/秒
重试计数-2
批量计数-1
随着时间间隔从1秒-2秒-3秒-n秒步进,队列的可视化示出了如何将引入数据添加到队列,以及如何将重试的数据移动到队列内的较低优先级。在每个时间间隔,系统检索通过尝试的时间戳字段按升序排序的当前队列,并选择要重试的第一DP。在DP的每次重试尝试时,存储和转发过程递减RC,并且通过用当前时间更新尝试的时间戳字段将DP传送到队列的底部,以允许以更高的优先级重试先前存储的DP。每次从队列中取出DP时,系统检查RC值,并且如果它等于零(即,不再有剩余的重试尝试并到期),则将数据分派给错误处置位置(例如,错误主题队列)。之后,队列顶部的下一个值被立即重试并遵循相同的过程。如果DP具有有效RC,则向系统发送警报,以通知服务重试将DP分派给其预期目的地。当在实现队列的缓冲器中对新数据进行排队时,通过将尝试的时间戳设置为当前时间,将排队的数据附加到具有当前系统的最低优先级的堆栈的底部。
图3示出了根据示例实施方式的批量数据转发的示例。当被设置用于批量数据转发时,存储和转发过程一次分派最大值N个消息。在图3中,DP是数据点的缩写,并且用于在每个数据点被接收或排队时突出显示每个数据点;RC是剩余的重试计数的缩写并且在其向下计数时用于表示当前DP的重试计数。摄入速率是接收新数据以经由存储和转发过程进行排队和分派的当前速率。如图3所示,以下设置被配置用于存储和转发过程:
摄入速率-1DP/秒
重试速率-1DP/秒
重试计数-2
批量计数-2
随着时间间隔从1秒-2秒-3秒-n秒步进,队列的可视化示出了如何将引入数据添加到队列,以及如何将重试的数据移动到队列内的较低优先级。对于每个时间间隔,系统检索通过尝试的时间戳字段按升序排序的当前队列,并且选择要重试的DP的批量计数数量的顶部集合。在每个DP集合的重试时,针对每个数据点递减RC,并且通过用当前时间更新尝试的时间戳字段将DP传送到队列的底部,以允许以更高的优先级重试先前存储的DP。每当从队列中取出DP集合时,系统检查每个RC值,并且如果其任何值等于零(即,没有更多剩余的重试尝试并且已经期满),则那些特定的DP被分派给错误处置位置(对于我们的情况,是错误主题队列)。之后,如果存在具有有效RC的剩余DP,则向系统发送警报以通知服务重试那些DP到其预期目的地的分派。如果没有剩余的DP,则利用相同的过程立即重试队列顶部的下一批。当在存储和转发过程中对新数据进行排队时,通过将尝试的时间戳设置为当前时间来将新数据附加到具有当前系统的最低优先级的堆栈的底部。
图4(a)和图4(c)示出了根据示例实施方式的示例流程图。具体地,图4(a)示出了在401处接收到数据时执行的用于管理新数据的摄入的第一过程。在402处,第一过程摄入新数据以确定数据是否可被分派给目的地。如果是这样(是),则流程前进到403以将数据分派给对应的目的地,否则(否),流程前进到404以根据期望的实施方式在数据库或临时存储器中对数据进行排队。此外,在404处的流程还可以涉及使第一过程触发第二过程以用于根据期望的实施方式来实现存储和转发功能。
图4(b)示出了根据示例实施方式的用于实现存储和转发功能的第二过程。在示例实施方式中,当在410处触发事件已经发生时,执行存储和转发过程。根据期望的实施方式,这样的触发事件可以包括:当已经过去一段时间时,当第一过程调用第二过程以保证重试速率时,当执行错误处置进程时,等等。在其中第一过程和第二过程是线程过程的示例实施方式中,以低于第一过程的优先级调用第二过程,以确保新数据的摄入优先于存储和转发过程的执行。
在411处,第二过程检查数据库的数据以确定是否存在剩余的排队的数据。在412处,确定是否存在这样排队的数据。如果不是(否),则第二过程结束,否则(是),流程前进到413。在413,确定是否尚未超过与排队的数据相关联的重试计数(例如,数据尚未到期)。在如上所述的示例实施方式中,重试计数以每次排队的数据未能完成分派时递减重试计数的形式来实现,在这种情况下,当计数降至零时,确定为超过重试计数。然而,本领域普通技术人员还可以将这样的实现方式变为每次排队的数据未能完成分派时递增重试计数,在这种情况下,当计数达到某个阈值时,确定为超过重试计数。根据期望的实施方式,可以利用任何这样的实施方式。如果超过重试计数(是),则流程前进到415以通过将排队的数据移出数据库并进入错误过程来执行错误处置过程,从而从数据库弹出排队的数据。根据期望的实施方式,这样的错误过程可以采取线程过程的形式,该线程过程被配置为删除所弹出的数据并将消息发送回弹出的数据的源以指示数据的传输已经失败,或采用其他方式。根据期望的实施方式,由于超过重试计数而在原始迭代中没有排队的数据被分派,所以在415处的错误处置过程的执行还可以充当用于410处重新执行第二过程的触发。以这种方式,可以在执行错误处置过程415之后重新执行第二过程以作用于下一排队的数据,以确保第二过程不断重复,直到至少一些未超过重试计数的排队数据可以至少被处理一次。
如果未超过重试计数(否),则流程前进到414以执行图4(c)中所示的第三过程,该第三过程是用于排队的数据的流出(egress)过程。在416处,流程进行到416以递减与排队的数据相关联的重试计数,并且然后在417对于具有更新的时间戳的数据进行重新排队。
图4(c)示出了根据示例实施方式的实现流出过程414的第三过程的示例。当接收到排队的数据时,在420处触发第三过程414。在421处,第三过程尝试分派数据通过实时数据流。如果分派成功(是),则在422处从系统分派排队的数据,由此第三过程从队列中删除数据。在示例实施方式中,图4(a)至图4(c)的过程可以被执行为线程,使得在第三过程尝试分派数据时,416和417处的第二过程的流可以由第二过程同时执行。因此,第三过程被配置为一旦数据被成功分派,就处理数据从队列的删除,以考虑即使已被分派也由第二过程进行重新排队的数据。
图5(a)及图5(b)示出了可用于实现本文中所描述的示例实施方式的管理信息的示例。具体地,图5(a)示出了根据示例实施方式的用于系统管理不同类型的传感器的示例管理信息。在本文的示例实施方式中,IoT系统可以管理不同类型的传感器,这些不同类型的传感器可以与不同大小的数据等相关联的。如图5(a)所示,管理信息可以包括传感器类型、数据大小、重试计数、批量标志和保证速率。传感器类型指示与接收到的数据相关联的传感器的类型。根据期望的实施方式,可以基于源传感器阵列、通过数据的大小或者其他方式来确定传感器类型。数据大小指示与传感器类型相关联的数据消息的大小。重试计数指示针对该传感器类型的数据消息而设置的重试计数。重试计数可以根据数据大小来设置以实现期望的实施方式(例如,较小数据的重试计数较大、较大数据的重试计数较小等)。批量计数标志可指示该类型的传感器数据是否可作为批量传输。
在示例实施方式中,基于图5(a)的管理信息和存储在队列中的传感器数据的类型,系统的第一过程、第二过程和第三过程可以配置设置以相应地实现这样排队的数据的处置。例如,如果排队的数据全部与其中启用批量分派的传感器类型相关联(是),则这些过程可以被配置为以批量计数分派消息(例如,尝试批量地分派数据消息,直到分派诸如50MB的大小)。可以基于数据的大小来设置保证速率(例如,基于正被发送的数据的大小,速率被设置为每秒X次尝试,其中更小的数据可以比更大的数据重试更频繁)。
图5(b)示出了根据示例实施方式的存储在数据库队列中的数据的示例管理信息。数据可以与指示数据消息ID、源、目的地、数据大小、传感器类型和重试计数的元数据相关联。数据消息ID是当数据被摄入系统时与数据相关联的标识符。根据期望的实施方式,数据消息ID可以是当数据摄入发生时由系统提供的时间戳。以这种方式,每当数据消息被重新排队到数据库中时,可以用新的时间戳来更新数据消息ID。源指示数据消息的源,并且可以根据期望的实施方式而采用任何形式(例如,IP地址、传感器ID等)。当系统需要对数据的错误处理时,可将数据消息传输到源以指示消息未能分派给目的地。目的地可以指示数据消息的输出目的地,并且可以根据期望的实施方式而采用任何形式(例如,IP地址等)。数据大小可以指示数据消息的大小。传感器类型可以指示接收到的传感器数据的类型。重试计数是与数据消息相关联的重试计数。
图6示出了根据示例实施方式的涉及多个装置和边缘/云处理装置的系统。一个或多个装置或装置系统601-1、601-2、601-3和601-4通信地耦合到网络600,并且将传感器数据传输到边缘/云处理装置602,该边缘/云处理装置602被配置为接收这样的数据并将数据传输到其对应目的地。边缘/云处理装置602管理数据库603,其管理待分派的排队的数据。这样的装置或装置系统可以包含静止装置或设备,例如冷却器、空调、服务器,以及移动装置或设备,例如汽车、卡车、起重机,以及可传输实况流传输数据的任何其它装置。这样的装置可以涉及将传感器数据提供给维护计划装置602的传感器。
图7示出了具有适合在一些示例实施方式中使用的示例计算机设备的示例计算环境,诸如图6中所示的边缘/云处理装置602。计算环境700中的计算机设备705可以包括一个或多个处理单元、核或处理器710、存储器715(例如,RAM、ROM等)、内部存储装置720(例如,磁性、光学、固态存储和/或有机存储装置)、和/或I/O接口725,其中的任一个可以耦合在用于传送信息的通信机制或总线730上或嵌入在计算机设备705中。根据期望的实施方式,I/O接口725还被配置为从相机接收图像或向投影仪或显示器提供图像。
计算机设备705可以通信地耦接至输入/用户接口735和输出设备/接口740。输入/用户接口735和输出设备/接口740中的一个或两者可以是有线或无线接口,并且可以是可拆卸的。输入/用户接口735可以包括可用于提供输入的任何设备、组件、传感器或接口(物理的或虚拟的)(例如,按钮、触摸屏接口、键盘、指向/光标控件、麦克风、相机、盲文、运动传感器、光学读取器等)。输出设备/接口740可以包括显示器、电视机、监视器、打印机、扬声器或盲文等。在一些示例实施方式中,输入/用户接口735和输出设备/接口740可以嵌入在计算机设备705中或物理耦接到计算机设备705。在其他示例实施方式中,其他计算机设备可以用作计算机设备705的输入/用户接口735和输出设备/接口740的功能或提供其功能。
计算机设备705的示例可以包括但不限于高移动设备(例如,智能电话、车辆和其他机器中的设备、由人类和动物携带的设备等)、移动设备(例如,平板计算机、笔记本计算机、膝上型计算机、个人计算机、便携式电视机、无线电设备等)、以及未被设计用于移动性的设备(例如,台式计算机、其他计算机、信息亭、具有嵌入其中和/或与其耦合的一个或多个处理器的电视、无线电设备等)。
计算机设备705可以通信地耦合(例如,经由I/O接口725)到外部存储装置745和网络750,以用于与包括相同或不同配置的一个或多个计算机设备的任何数量的联网组件、设备和系统进行通信。计算机设备705或任何连接的计算机设备可以用作提供服务器、客户端、瘦服务器、通用机器、专用机器或其他标签的服务,或被称为服务器、客户端、瘦服务器、通用机器、专用机器或其他标签。
I/O接口725可以包括但不限于使用任何通信或I/O协议或标准(例如,以太网、802.11x、通用系统总线、WiMax、调制解调器、蜂窝网络协议等)的有线和/或无线接口,用于将信息传送到计算环境700中的至少所有连接的组件、设备和网络和/或从计算环境700中的至少所有连接的组件、设备和网络传送信息。网络750可以是任何网络或网络的组合(例如,互联网、局域网、广域网、电话网络、蜂窝网络、卫星网络等)。
计算机设备705可以使用和/或利用包括瞬态介质和非瞬态介质在内的计算机可用或计算机可读介质进行通信。瞬态介质包括传输介质(例如,金属线缆、光纤)、信号、载波等。非瞬时介质包括磁介质(例如,盘和带)、光学介质(例如,CD ROM、数字视频盘、蓝光盘)、固态介质(例如,RAM、ROM、闪速存储器、固态存储器)和其他非易失性存储装置或存储器。
计算机设备705可以用于在一些示例计算环境中实现技术、方法、应用、处理或计算机可执行指令。能够从瞬态介质检索计算机可执行指令,将计算机可执行指令存储在非瞬态介质上并从其检索计算机可执行指令。可执行指令能够源自任何编程语言、脚本语言、和机器语言中的一种或多种(例如,C、C++、C#、Java、Visual Basic、Python、Perl、JavaScript、以及其他)。
一个或多个处理器710可以在本地或虚拟环境中在任何操作系统(OS)(未示出)下执行。可以部署一个或多个应用,其包括逻辑单元760、应用编程接口(API)单元765、输入单元770、输出单元775,以及用于不同单元彼此之间、与OS以及与其他应用(未示出)通信的单元间通信机制795。所描述的单元和要素可以在设计、功能、配置或实施方式上变化,并且不限于所提供的描述。一个或多个处理器710可以是硬件处理器的形式,诸如中央处理单元(CPU)或硬件和软件单元的组合。
在一些示例实施方式中,当API单元765接收到信息或执行指令时,该信息或执行指令可以被传送到一个或多个其他单元(例如,逻辑单元760、输入单元770、输出单元775)。在一些情况下,逻辑单元760可以被配置为控制单元之间的信息流,并引导由API单元765、输入单元770、输出单元775提供的服务(在上面描述的一些示例实施方式中)。例如,一个或多个过程或实施方式的流程可以由逻辑单元760单独控制或者与API单元765一起控制。输入单元770可以被配置为获得针对在示例实施方式中描述的计算的输入,且输出单元775可以被配置为基于示例实施方式中描述的计算来提供输出。
存储器715可以被配置为存储如图5(a)和图5(b)中所示的管理信息以实现示例实施方式。数据库602可以由存储器715和/或内部存储装置720以及外部存储装置745的某种组合以存储系统形式来实现,以实现根据期望实施方式的示例实施方式。
一个或多个处理器710可以被配置为执行如图4(a)中所示的涉及摄入新数据的第一过程;以及执行分派新数据或对新数据进行排队中的一个;以低于第一过程的优先级执行的第二过程,如图4(b)中所示,涉及确定排队的数据是否超过重试计数;如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中;以及在从第二过程接收到排队的数据之后执行的第三过程,如图4(c)所示,第三过程涉及尝试分派排队的数据。在第一过程、第二过程和第三过程作为线程被执行的示例实施方式中,可以以比第一过程较低的优先级周期性地调用第二过程(例如,第一过程实时地连续执行,第二过程每2-3秒执行),以在正分派数据时将引入的新数据优先于排队的数据。
在示例实施方式中,第二过程还可以涉及在将排队的数据转发到第三过程之后对排队的数据进行重新排队,如在417处所示,其中如果第三过程成功地分派数据,则第三过程负责删除排队的数据并且从图5(b)的管理信息中删除条目。以这种方式,可以同时执行第二过程和第三过程。在示例实施方式中,在将排队的数据转发到第三过程之后对排队的数据的重新排队可以涉及在416处递减排队的数据的重试计数;以及在417处对于具有更新的时间戳和递减后的重试计数的排队的数据进行重新排队。以此方式,可以与来自图4(c)的第三过程的尝试分派过程同时在图5(b)更新管理信息。
在示例实施方式中,一个或多个处理器710可以被配置为在将排队的数据弹出错误过程之后,对于下一排队的数据重新执行第二过程。在此示例实施方案中,如果调用第二过程且从第二过程的执行仅调用错误处置过程415,则可由此重复第二过程以确保当调用第二过程时对于一些排队数据执行流出过程414。
如图5(a)所示,可以从多个不同类型的传感器中的一个接收新数据,其中第一过程、第二过程和第三过程被配置为根据期望的实施方式通过调整重试计数、要分派的数据的大小等,基于与新数据相关联的多个不同类型的传感器中的一个来执行。在这样的示例实施方式中,各种大小的数据和来自各种类型的传感器的数据可以由一个或多个处理器710处理,并且不必一致由存储和转发过程来实现。
在示例实施方式中,一个或多个处理器710可以通过基于新数据的大小设置用于所述新数据的重试计数来实现新数据404的排队。重试计数可以根据如图5(a)所示的管理信息来设置,图5(a)所示的管理信息基于数据的大小来分配重试计数(例如,较小数据的重试计数较高)。
根据期望的实施方式,可以以基于新数据的大小而设置的保证重试速率来执行第二过程。例如,如果队列中的每个数据消息的大小不超过特定大小,则可以以每秒一个消息的速率周期性地执行第二过程,并且可以根据期望的实施方式向上或向下调整。
根据期望的实施方式,可以根据依据数据大小而设置的批量计数来执行第二过程。例如,可以周期性地执行第二过程以尝试分派设定数量的消息,或者尽可能多的消息直到已经分派了数据的总大小为止,这些消息可以针对较小的数据变得更多或针对较大的数据而变得更少,或者根据期望的实现方式采用其他形式。
在计算机内的操作的算法和符号表示方面呈现了详细描述的一些部分。这些算法描述和符号表示是数据处理领域技术人员向其他技术人员表达他们的创新实质使用的手段。算法是一系列定义步骤,导致期望的最终状态或结果。在示例实施方式中,所执行的步骤需要对有形的量进行物理操纵以获得有形的结果。
除非另有具体说明,否则如从讨论中显而易见的,应当理解,在整个说明书中,利用诸如“处理”、“运算”、“计算”、“确定”、“显示”等术语的讨论可以包括计算机系统或其他信息处理设备的动作和过程,其中的计算机系统或其他信息处理设备操纵表示为计算机系统的寄存器和存储器内的物理(电子)量的数据并将其转换成类似地表示为计算机系统的存储器或寄存器或其他信息存储装置、传输或显示设备内的物理量的其他数据。
示例实施方式还可以涉及用于执行本文的操作的装置。可以针对所需的目的专门构建该装置,或者该装置可以包括通过一个或多个计算机程序选择性地激活或重新配置的一个或多个通用计算机。这种计算机程序可以存储在诸如计算机可读存储介质或计算机可读信号介质的计算机可读介质中。计算机可读存储介质可以涉及有形介质,诸如但不限于光盘、磁盘、只读存储器、随机存取存储器、固态设备和驱动器、或者适于存储电子信息的任何其他类型的有形或非瞬态介质。计算机可读信号介质可以包括诸如载波的介质。本文所提到的算法和显示并不是固有地与在任何特定计算机或者其它装置有关。计算机程序可以涉及纯软件实现,该纯软件实现涉及执行期望的实施方式的操作的指令。
根据本文的示例,可以使用各种通用系统以及程序和模块,或可以证明便于构造更专业的装置来执行期望的方法步骤。此外,并未参考任何特定编程语言来描述示例实施方式。应认识到,各种编程语言可以用于实现如本文所述的示例实施方式的教导。编程语言的指令可以由一个或者多个处理设备、例如中央处理单元(CPU)、处理器或者控制器执行。
如本领域技术人员所知,可以通过硬件、软件、或软件和硬件的某一组合来执行上述操作。示例实施方式的各个方面可以使用电路和逻辑设备(硬件)来实现,而其他方面可以使用存储在机器可读介质上的指令(软件)来实现,如果这些指令由处理器执行,则将使处理器执行实现本申请的实施方式的方法。此外,本申请的一些示例实施方式可以仅以硬件来执行,而其他示例实施方式可以仅以软件来执行。另外,可以在单个单元中执行描述的各种功能或者描述的各种功能可以以任何数目的方式跨多个部件分布。当通过软件执行时,可以由诸如通用计算机的处理器基于在计算机可读介质上存储的指令来执行方法。如果希望,则可以用压缩和/或加密格式在介质上存储指令。
此外,通过考虑本申请的教导的详细说明和实践,本发明的其他实施方式将对于本领域技术人员是显而易见的。所描述的示例实施方式的各个方面和/或组件可以单独使用或以任何组合使用。预期的是,详细说明和示例实施方式只可以看作是示例,本发明的真实范围和精神由所附权利要求来指示。

Claims (17)

1.一种方法,其包括:
第一过程,包括:
摄入新数据;
执行分派所述新数据或对所述新数据进行排队中的一个;
以相比于所述第一过程较低的优先级执行的第二过程,所述第二过程包括:
确定排队的数据是否超过重试计数;
如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及
如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中;和
在从所述第二过程接收排队的数据之后执行的第三过程,所述第三过程包括:
尝试分派排队的数据。
2.根据权利要求1所述的方法,其中,所述第二过程还包括:在将所述排队的数据转发到所述第三过程之后对于所述排队的数据进行重新排队。
3.根据权利要求2所述的方法,其中,在将所述排队的数据转发到所述第三过程之后对所述排队的数据进行重新排队包括:
更新所述排队的数据的时间戳;并且
递减所述排队的数据的重试计数;并且
用更新后的时间戳和递减后的重试计数对所述排队的数据进行重新排队。
4.根据权利要求1所述的方法,还包括:
在将所述排队的数据弹出到错误过程中之后,对于下一排队的数据重新执行第二过程。
5.根据权利要求1所述的方法,其中,所述新数据是从多个不同类型的传感器中的一个传感器接收的,其中,所述第一过程、所述第二过程和所述第三过程被配置为基于与所述新数据相关联的所述多个不同类型的传感器中的所述一个传感器来执行。
6.根据权利要求1所述的方法,其中,对所述新数据进行排队包括:基于所述新数据的大小来为所述新数据设置所述重试计数。
7.根据权利要求1所述的方法,其中,以基于所述新数据的大小而设置的保证重试速率来执行所述第二过程。
8.根据权利要求1所述的方法,其中,所述第二过程是依据根据数据大小而设置的批量计数来执行的。
9.一种存储用于执行过程的指令的计算机程序,所述指令包括:
第一过程,包括:
摄入新数据;
执行分派所述新数据或对所述新数据进行排队中的一个;
在相比于所述第一过程较低的优先级执行的第二过程,所述第二过程包括:
确定排队的数据是否超过重试计数;
如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及
如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中;和
在从所述第二过程接收排队的数据之后执行的第三过程,所述第三过程包括:
尝试分派排队的数据。
10.根据权利要求9所述的计算机程序,其中,所述第二过程还包括:在将所述排队的数据转发到所述第三过程之后对所述排队的数据进行重新排队。
11.根据权利要求10所述的计算机程序,其中,在将所述排队的数据转发到所述第三过程之后对所述排队的数据进行重新包括:
更新所述排队的数据的时间戳;并且
递减所述排队的数据的重试计数;并且
用更新后的时间戳和递减后的重试计数对所述排队的数据进行重新排队。
12.根据权利要求9所述的计算机程序,还包括:
在将所述排队的数据弹出到错误过程中之后,对下一排队的数据重新执行所述第二过程。
13.根据权利要求9所述的计算机程序,其中,所述新数据是从多个不同类型的传感器中的一个传感器接收的,其中,所述第一过程、所述第二过程和所述第三过程被配置为基于与所述新数据相关联的所述多个不同类型的传感器中的所述一个传感器来执行。
14.根据权利要求9所述的计算机程序,其中,对所述新数据进行排队包括:基于所述新数据的大小,为所述新数据设置所述重试计数。
15.根据权利要求9所述的计算机程序,其中,以基于所述新数据的大小而设置的保证重试速率来执行第二过程。
16.根据权利要求9所述的计算机程序,其中,根据基于所述数据的大小而设置的批量计数来执行第二过程。
17.一种装置,包括:
处理器,被配置为执行:
第一过程,包括:
摄入新数据;
执行分派所述新数据或对所述新数据进行排队中的一个;
以相比于所述第一过程较低的优先级执行的第二过程,所述第二过程包括:
确定排队的数据是否超过重试计数;
如果重试计数不超过阈值,则将排队的数据转发到第三过程;以及
如果排队的数据超过重试计数,则将排队的数据弹出到错误过程中;和
在从所述第二过程接收所述排队的数据之后执行的第三过程,第三过程包括:
尝试分派所述排队的数据。
CN201980098624.2A 2019-07-23 2019-07-23 用于收集和发送实时数据的系统和方法 Pending CN114127687A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/043017 WO2021015739A1 (en) 2019-07-23 2019-07-23 Systems and methods for collecting and sending real-time data

Publications (1)

Publication Number Publication Date
CN114127687A true CN114127687A (zh) 2022-03-01

Family

ID=74193895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980098624.2A Pending CN114127687A (zh) 2019-07-23 2019-07-23 用于收集和发送实时数据的系统和方法

Country Status (5)

Country Link
US (1) US11397616B2 (zh)
EP (1) EP4004708A4 (zh)
JP (1) JP7288547B2 (zh)
CN (1) CN114127687A (zh)
WO (1) WO2021015739A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114708021A (zh) * 2022-03-30 2022-07-05 北京有竹居网络技术有限公司 座席分配的方法、装置、存储介质及电子设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086853B1 (en) * 2020-10-12 2021-08-10 iodyne, LLC Method and system for streaming data from portable storage devices
CN114201319A (zh) * 2022-02-17 2022-03-18 广东东华发思特软件有限公司 数据调度方法、装置、终端及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020089959A1 (en) * 2001-01-11 2002-07-11 Fischer Michael A. System and method for providing a selectable retry strategy for frame-based communications
JP3610915B2 (ja) 2001-03-19 2005-01-19 株式会社デンソー 処理実行装置及びプログラム
JP2005269386A (ja) 2004-03-19 2005-09-29 Hitachi Communication Technologies Ltd 通信制御装置、これを備えた通信システム及び通信制御方法
US20060294058A1 (en) * 2005-06-28 2006-12-28 Microsoft Corporation System and method for an asynchronous queue in a database management system
US7483412B2 (en) * 2005-07-29 2009-01-27 Microsoft Corporation Range extension between two wireless devices
US7583649B1 (en) 2005-08-12 2009-09-01 Marvell International Ltd. Rate adaptation
US7904435B2 (en) * 2006-03-10 2011-03-08 Yahoo! Inc. System and method for resource lock acquisition and reclamation in a network file system environment
JP5786853B2 (ja) 2010-03-15 2015-09-30 日本電気株式会社 パケット再送制御装置、パケット再送制御方法、パケット再送制御プログラム
JP2013251737A (ja) 2012-05-31 2013-12-12 Canon Inc 通信装置、通信装置の制御方法、およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114708021A (zh) * 2022-03-30 2022-07-05 北京有竹居网络技术有限公司 座席分配的方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
US20220206847A1 (en) 2022-06-30
WO2021015739A1 (en) 2021-01-28
US11397616B2 (en) 2022-07-26
EP4004708A1 (en) 2022-06-01
JP7288547B2 (ja) 2023-06-07
EP4004708A4 (en) 2023-03-08
JP2022541395A (ja) 2022-09-26

Similar Documents

Publication Publication Date Title
KR101670642B1 (ko) 클라이언트 디바이스 상에서의 패킷 송신을 스케줄링하기 위한 시스템 및 방법
US10341196B2 (en) Reliably updating a messaging system
US10116574B2 (en) System and method for improving TCP performance in virtualized environments
US9503383B2 (en) Flow control for reliable message passing
US10673770B1 (en) Intelligent packet queues with delay-based actions
US8036127B2 (en) Notifying network applications of receive overflow conditions
US7571247B2 (en) Efficient send socket call handling by a transport layer
US11968129B1 (en) Delay-based tagging in a network switch
CN114127687A (zh) 用于收集和发送实时数据的系统和方法
US20190370215A1 (en) Programmed Input/Output Mode
US10313255B1 (en) Intelligent packet queues with enqueue drop visibility and forensics
US8935329B2 (en) Managing message transmission and reception
US11502967B2 (en) Methods and apparatuses for packet scheduling for software-defined networking in edge computing environment
US10909067B2 (en) Multi-node zero-copy mechanism for packet data processing
US20200351215A1 (en) Data Stream Sending Method and System, and Device
US10523588B2 (en) Technique for processing messages in a message-based communication scenario
US10922091B2 (en) Distributed realtime edge-core analytics with feedback
Chen et al. A reliable messaging middleware for financial institutions
CN115632748A (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