CN110100235A - 异类事件队列 - Google Patents
异类事件队列 Download PDFInfo
- Publication number
- CN110100235A CN110100235A CN201780077873.4A CN201780077873A CN110100235A CN 110100235 A CN110100235 A CN 110100235A CN 201780077873 A CN201780077873 A CN 201780077873A CN 110100235 A CN110100235 A CN 110100235A
- Authority
- CN
- China
- Prior art keywords
- event
- event message
- message
- delivery time
- priority
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
在计算系统中处理多种事件消息包括将接收的事件消息存储在数据存储系统中,该数据存储系统包括用于与事件消息相关联的第一多个记录(222)的存储(220)。每一个事件消息包括时间戳。与事件消息相关联的记录(222)包括指示该事件消息的事件结果的目标递送时间的字段(426),至少一些事件消息的目标递送时间是根据事件消息的种类来确定的。基于存储的事件消息中的信息和与这些事件消息相关联的这些记录(222)中的这些目标递送时间来处理这些存储的事件消息以递送事件结果。根据存储的指示优先级的信息对事件消息进行优先级排序以递送事件结果。基于相对于第一组一个或多个事件消息中的每一个事件消息的对应时间戳的固定延迟计算该事件消息的目标递送时间,该一个或多个事件消息存储指示该第一组中的所有事件消息的相同优先级的信息。基于事件消息的目标递送时间与时钟时间的比较,递送可递送的事件消息的事件结果。
Description
相关申请的交叉引用
本申请要求于2016年12月15日提交的美国申请序列号62/434,472的优先权。
背景技术
本说明书涉及用于处理具有异类特性的事件的事件队列。
数据处理系统通常处理许多不同种类的输入事件。例如,在电信领域中,例如与电话呼叫的建立、路由和/或撤除相关的一些事件可能具有“实时”特性。例如与呼叫记录处置相关的一些事件可能是“近实时”的,例如每次呼叫发生一次。其他事件可能不太频繁,例如与计费或周期性维护任务相关。这些输入事件可以一起构成必须被处理从而一直为特定种类的事件(例如,近实时事件)提供足够的响应的大量流。
一种用于设计处理这种异类输入的系统的方法是具有专用于这些种类输入的不同种类的单独的软件和/或硬件结构,由此实现适合于不同种类的不同类型的处理。不同类型的处理的一些示例可能在以下方面有所不同:事件是否应当被尽快处理、事件是否应当按其生成顺序处理以确保正确的业务逻辑、或者事件是否应当以低优先级处理以避免从较高优先级任务中窃取计算资源。
在维护单独的软件和/或硬件结构方面需要成本,例如,维护复杂系统的人力成本,以及由于专用资源的潜在利用不足而导致的技术成本。
发明内容
在一般方面,一种用于处置系统的异类事件输入的方法使用集成队列结构,其能够处置大量输入事件流,同时提供对特定种类的事件(例如,近实时事件)的所需响应。队列结构包括特征组合,其包括以下多个特征:(a)事件的优先级排序,例如通过将不同种类或类的事件与不同的优先级水平相关联,(b)事件的推迟递送,例如根据基于规则的递送时间计算,该计算可以取决于事件的种类或类,以及(c)事件的重新排序,例如根据可选地由事件中的键值约束的事件的起始时间。为了支持这些特征中的一个或多个,队列结构包括事件记录的存储(例如,ta表),其具有包括或指代由来自被存储事件的种类的规则确定的优先级和/或推迟递送时间值的字段(例如,列)。存储的这种布置提供了一种以与常规方法(例如,其中对于每一种消息使用单独的队列)的可能情况相比需要更少操作和/或更有效使用存储的方式处理事件的方式。此外,该方法允许在配置系统中(例如,当必须处理新种类的事件时)具有更大的灵活性,因为不需要将用于该种类的事件的新队列引入系统中。
在一些示例中,该集成队列结构被用作事件处理系统的输入,该事件处理系统可以被配置成处理大量事件流,同时为至少一些种类的事件维持近实时性能。通过使用所选择的特征(例如,上面的(a)-(c)),队列结构通过提供对广泛各种事件的有效处理同时保持对计算资源的高利用来改进事件处理技术。应当注意,处理的改进源于由队列结构和相关联程序步骤引入的功能,而不仅是凭借由计算机执行计算机以其普通能力使用的任务。此外,如果人具有足够的能力来处置要处理的事件流,则该方法不仅是人通常组织和处理事件的方式的自动化。
在一个特定方面,通常,应用一种方法以在计算系统中处理事件消息。该方法包括将接收的事件消息存储在数据存储系统中。该数据存储系统包括与事件消息相关联的第一多个记录的存储,其中每一个事件消息包括时间戳,并且与事件消息相关联的记录包括指示该事件消息的事件结果的目标递送时间的字段,至少一些事件消息的目标递送时间是根据该事件消息的种类来确定的。基于这些存储的事件消息中的信息和与这些事件消息相关联的这些目标递送时间处理这些存储的事件消息以递送事件结果,该处理。该处理包括:根据存储在事件消息中的指示优先级的信息对这些事件消息进行优先级排序以递送事件结果,基于相对于第一组一个或多个事件消息中的每一个事件消息的对应时间戳的固定延迟计算该事件消息的目标递送时间,该一个或多个事件消息存储指示该第一组中的所有事件消息的相同优先级的信息,以及基于事件消息的目标递送时间与时钟时间的比较,递送可递送的事件消息的事件结果。
方面可以包括以下特征中的一项或多项。
该处理进一步包括对包含少于所有存储的事件消息的第二组事件消息进行重新排序,以便根据这些事件消息中的这些时间戳处理该第二组事件消息中的事件消息,而不是根据这些事件消息被接收的顺序处理该第二组事件消息中的事件消息。
在接收特定事件消息之后,使用至少部分地由该特定事件消息中包括的信息限定的函数来计算与该特定事件消息相关联的目标递送时间。例如,对于与第一事件类相关联的事件消息,该函数返回基于该时钟时间的目标递送时间。
与该第一事件类相关联的事件消息不在被重新排序的第二组中,并且根据这些事件消息被接收的顺序来进行处理。
对于与具有比该第一事件类更低优先级的第二事件类相关联的事件消息,该函数返回作为该固定延迟和该事件消息中的时间戳的总和的目标递送时间。
与该第二事件类相关联的事件消息在被重新排序的第二组中,并且根据存储在与该第二类相关联的这些事件消息中的时间戳来重新排序。
对于与具有比该第二事件类更低优先级的第三事件类相关联的事件消息,该函数返回基于存储在该事件消息中的时间戳的目标递送时间。
与该第三事件类相关联的事件消息在被重新排序的第二组中,并且根据存储在与该第三类相关联的这些事件消息中的时间戳来重新排序。
对于与具有比该第二事件类更低优先级的第三事件类相关联的事件消息,该函数返回基于重复的调度的目标递送时间。
该第二组包括全部包括公共键值的事件消息。
根据存储在事件消息中的信息对这些事件消息进行优先级排序以递送事件结果包括将与具有不同优先级的事件类相关联的事件消息存储在不同的对应有序队列中,以及从非空的具有最高优先级的有序队列的前面选择下一个事件消息以评估事件结果的可能递送。
在另一方面,通常,软件在计算机可读介质上以非暂态形式存储以用于在计算系统中处理事件消息。该软件包括用于致使该计算系统进行以下步骤的指令:将接收的事件消息存储在数据存储系统中,该数据存储系统包括与事件消息相关联的第一多个记录的存储,其中每一个事件消息包括时间戳,并且与事件消息相关联的记录包括指示该事件消息的事件结果的目标递送时间的字段,至少一些事件消息的目标递送时间是根据事件消息的种类来确定的;以及基于存储的事件消息中的信息和与这些事件消息相关联的这些目标递送时间来处理这些存储的事件消息以递送事件结果,该处理包括:根据存储在事件消息中的指示优先级的信息对这些事件消息进行优先级排序以递送事件结果,基于相对于第一组一个或多个事件消息中的每一个事件消息的对应时间戳的固定延迟计算该事件消息的目标递送时间,该一个或多个事件消息存储指示该第一组中的所有事件消息的相同优先级的信息,以及基于事件消息的目标递送时间与时钟时间的比较,递送可递送的事件消息的事件结果。
在另一方面,通常,一种用于处理事件消息的计算系统,该计算系统包括:数据存储系统,其用于存储接收的事件消息,该数据存储系统包括与事件消息相关联的第一多个记录的存储,其中每一个事件消息包括时间戳,并且与事件消息相关联的记录包括指示该事件消息的事件结果的目标递送时间的字段,至少一些事件消息的目标递送时间是根据事件消息的种类来确定的;以及至少一个处理器,其被配置成基于存储的事件消息中的信息和与这些事件消息相关联的这些目标递送时间来处理这些存储的事件消息以递送事件结果,该处理包括:根据存储在事件消息中的指示优先级的信息对这些事件消息进行优先级排序以递送事件结果,基于相对于第一组一个或多个事件消息中的每一个事件消息的对应时间戳的固定延迟计算该事件消息的目标递送时间,该一个或多个事件消息存储指示该第一组中的所有事件消息的相同优先级的信息,以及基于事件消息的目标递送时间与时钟时间的比较,递送可递送的事件消息的事件结果。
方面可以包括以下优点中的一项或多项。
在单个队列结构中处理具有与优先级和递送时间或延迟要求相关的实质上不同特性的事件(即,一组异类事件)避免了对于每种类型的事件需要单独队列。此外,当处理从队列输出的事件消耗共享资源(例如,计算资源)时,使事件出列的顺序和时间服务于调度、分配和/或按优先级排序共享资源的使用。例如,可以在与低延迟(例如,“实时”事件)相同的队列中处理延迟不敏感事件(例如,“批次”处理事件),同时保持对处理事件所需的共享资源的高利用。
通过以下描述、以及通过权利要求书,本发明的其他特征和优点将变得清楚。
附图说明
图1是事件处理系统的框图,该事件处理系统包括接收一组异类输入事件并将这些事件提供给事件处理引擎的事件队列;
图2是图1的事件队列的实施例的框图;
图3是示出由图2所示的事件队列的输入处理器的示例实施的规则的表;
图4是利用分布式事件队列的分布式事件处理系统的框图;
图5A至图5H是与图2相对应的框图,其示出了一系列事件的处理;
图6是展示了图2所示的事件队列中的处理的各个阶段处的事件数据结构的图示。
具体实施方式
图1示出了数据处理系统100的示例,其中一组事件源112提供(例如,产生)由系统处理的事件。在系统100中,将所产生的事件提供给事件队列110,该事件队列接受来自源112的不同种类的事件。例如,每一个事件源112可以提供不同种类的事件,或者某些源可以各自提供多个种类的事件。在任何情况下,事件队列110处理不同种类的事件,并且提供它们以供事件处理环境120进行处理。如上所述,在电信示例中,一个事件源112可以提供与呼叫建立、路由和撤除相关的实时事件,而另一个事件源112可以提供呼叫记录事件,而又一个事件源112可以提供计费事件,这些计费事件具有比实时事件低得多的优先级和延迟要求。
参考图2,图1的事件队列110的实现方式在内部大体利用处理的两个阶段,其被表示为第一阶段244和第二阶段245。在处理的第一阶段244中,输入处理器210接收事件212,例如作为来自事件源的通信链路上的数据记录,或者在事件队列的面向对象的软件实现方式的情况下作为对输入方法的调用中的参数。如上所述,这些事件可能来自多个不同的源112,并且每一个源可以提供同类的事件212(即,相同类型的所有事件)或者可以提供异类的事件(即,各种类型的事件)。在图2中,用不同的交叉影线展示了不同类型的事件,使得事件212a与事件212b具有不同的类型。
如下面更全面地讨论的,事件包括通常指示生成事件的时间的时间戳。在某些上下文中,事件也可以被称为“消息”或“记录”,其中鉴于数据表示中的时间戳的存在而使用术语“事件”。通常,在处理的第一阶段中,事件的跟随可以遵循直接路径(用箭头230展示)或推迟路径(由箭头232展示)。在推迟路径中,某些事件被标识为适合于输入处理器的推迟递送,该输入处理器向每一个这样的事件分配递送时间,使得不从事件队列110递送事件,直到该递送时间已经过去为止。已经被分配尚未到达的递送时间的事件222保持在队列220(被称为“延迟队列”)中。在实现方式中,对队列220中的事件进行排序,使得具有最早递送时间的事件222位于队列的头部。该延迟队列可以保存大量事件220,并且容许推迟递送的这些事件的性质为诸如按递送时间排序等的步骤提供时间。延迟处理器230利用时钟250,该时钟向输入处理器210和延迟处理器两者提供时间参考,该延迟处理器确定何时因为由时钟250提供的时间等于或晚于延迟队列头部处的事件的分配递送时间而使事件222从延迟队列中出列。作为说明,由输入处理器接收的两个输入事件212b被示为已经在延迟队列中排队为事件222b,这里被示为在队列头部处是因为其递送时间在队列中为最早的。
事件队列110的第二阶段245利用优先级队列245。在一个实现方式中,一组离散优先级(被示为最高优先级A至最低优先级Z)中的每一个优先级具有一组队列240A-Z中的单独队列。在输入处理器210确定事件不适合于推迟递送的情况下,事件通过直接路径230进入该第二阶段,例如在路径230上被示为事件212a。对于经由推迟路径232从输入处理器210传递并且在延迟队列220中排队的事件,在该实现方式中,延迟处理器230基于事件的优先级使已经过了其递送时间的每一个事件242入列到适当队列240A-Z中。例如,与输入事件212b和排队事件222b相对应的事件242b被示为传递到队列240B。优先级处理器250通过选择具有任何未决事件242的最高优先级队列来使事件242从队列240A-Z中出列,并且使在该队列头部的事件出列。事件队列110的输出(其可以被称为事件结果)可以是通过其传递事件的通信链路。在面向对象的实现方式中,可以在执行事件队列对象的输出方法期间执行使事件从队列240A-Z中出列的过程。在一些实现方式中,延迟处理器的处理也可以作为事件队列的面向对象的实现方式的输出方法的执行的一部分来执行,或者可以基于周期性定时器“中断”来实施,该周期性定时器“中断”对延迟队列220的事件222进行分类,并将具有已经过的递送时间的那些事件222基于其优先级传递到适当队列240A-Z。
如上所述,由输入处理器210接受的某些事件212不要求或不适合于任何延迟或推迟递送。输入处理器210根据由输入处理器确定的优先级经由直接路径230将这些事件直接传递到适当队列240A-Z。
参考图3,在表中示出了一组类以及用于例如根据其时间戳(表示为ts)来分配其优先级(表示为pri)和递送时间(表示为dt)的规则的示例。在该示例中,称为“实时”的第一类事件被分配最高优先级(A)。递送时间被分配给当前时间(now()(现在())),这意味着来自此类的事件没有额外的延迟。再次参考图2,输入处理器210将此事件直接传递到优先级队列245的最高优先级队列240A。第二类,即“近实时”被分配第二高优先级(B)。这类事件的特征是它们可能以不同于其时间戳的顺序到达,但期望然后按顺序递送。用于解决这些事件的这种无序到达的方式是使输入处理器210分配的递送时间为时间戳加上时间戳与事件到达时间(根据时钟260)之间的最长典型延迟(表示为delta)(即dt=ts+delta)。以此方式,递送到事件队列花费小于delta的这种近实时类的事件将被递送到优先级队列245,并且然后按照其时间戳的顺序从事件队列110递送。应当注意,如果某个事件在到达事件队列110之前被延迟超过delta,则它可能没有以ts顺序从事件队列110递送,并且因此这种方法处置大多数的无序到达情况,但并不绝对保证来自事件队列的有序输出。然而,如果输入延迟可能非常大而不会导致该类中所有事件的相称延迟,则不能保证此有序输出。
在图3中,还示出了不需要推迟递送的三个其他类,其中每一个类具有不同的优先级。这些类是处于优先级C的“近实时(NRT)警报”、处于优先级D的“批次警报”和处于优先级Z的“未调度批次”。输入处理器210将这些事件直接传递到优先级队列245,而不通过延迟队列220传递。
最后,“调度批次”队列具有优先级E,但被推迟直到处理时间next_window()(下一个_窗口()),例如当前时间后的下一个午夜。此类事件被保持在延迟队列220中直到该递送时间过去,并且然后由延迟处理器230传递到优先级队列245的队列240E。
参考图4,示出了通过事件队列传递的事件的一组可能结构。在该示例中,到事件队列110的每一个输入事件212具有一组字段:消息412保存事件的“有效载荷”,例如其本身具有表示该消息的一组字段;键413,其可以被认为是消息的字段中的一个,被专门处理以用于下面将更全面描述的某些重新排序操作;表示为cls 414的类,例如表示指定“实时”等;以及由事件源分配的事件的时间戳ts 415。当输入处理器210接收输入事件212时,它增强事件以形成结构222。具体地,输入处理器例如根据图3所示的规则添加递送时间dt 426和优先级pri 427。在延迟处理器使事件从延迟队列220中出列之后,事件242被放置在优先级队列中。可以省略优先级pri 427和递送时间dt 426,因为优先级是由其中放入事件的队列240A-Z隐含的,并且保证递送时间已经过去。
在队列240A-Z中的事件242的可选处理中,可以根据许多约束来进一步重新排序消息。一个约束是类的事件允许被重新排序。例如,用于输入处理器210的图3所示的规则可以指示“实时”类不能被重新排序(re=F),而类“近实时”可以被重新排序(re=T)。在一些实施例中,重新排序可能要求特定队列(例如240B)中的事件可以以任何顺序递送,同时要求具有相同键值的事件必须以规定顺序(例如,以ts顺序,或以它们到达事件队列110的顺序)保持。re=F的类的一个可选实现方式是使优先级处理器250处理具有最低ts的事件并且不存在具有相同ts的更早递送的事件。re=T的类的一个可选实现方式是使优先级处理器250递送每一个队列240A-Z的整体中具有最早ts的事件。
参考图5A至图5H,展示了与图2相对应的实施例的操作,其示出一系列输入事件212-1至212-5通过事件队列110的传递。参考图5A,事件242-0和242-10分别在队列240C和240D中排队,并且事件212-1将由输入处理器210处理。在图5B中,优先级处理器250已经使事件242-0出列,并且在输入处理器已经确定可以经由推迟路径处理事件212-1之后,与输入事件212-1相对应的事件222-1(即,除了事件212-1的内容之外还包括递送时间字段和优先级字段)已经在延迟队列220中排队。事件222-1包括由输入处理器计算的递送时间,并且事件222-1将保持在延迟队列220中直到该时间已经过去。在图5B中,两个新事件212-2和212-3将要由输入处理器210处理。在图5C中,输入事件212-2和212-3已经由输入处理器210处理。在该图示中,事件212-2由输入处理器确定为需要立即处理,并因此经由直接路径在队列240A中排队(作为事件242-2)。另一方面,事件212-3在延迟队列220中排队为事件222-3,因为输入处理器已经确定该事件适合于推迟递送,同样具有在事件223-3中指示的递送时间。在该图示中,事件222-3的递送时间晚于事件222-1的递送时间,并且因此事件222-3较晚地保持在延迟队列中,因为它将较晚地出列。在图5C中,事件214-4被示为将要由输入处理器210处理。在图5D中,示出了优先级处理器250已经使事件242-2出列,并且输入事件212-4被示为在延迟队列中排队为事件222-4。在该图示中,假设事件222-4的递送时间在事件222-1的递送时间之后且在事件222-3的递送时间之前,并且因此事件222-1、222-4和222-3根据其递送时间在延迟队列220中排序。在图5E中,事件222-1的递送时间已经过去,并且延迟处理器230已将相应事件242-1在队列240B中排队。输入处理器210还将输入事件212-5直接传递到队列240A作为事件242-5,在图5F中,优先级处理器已经使事件242-5出列,并且因为事件222-4和222-3的递送时间已经过去,所以延迟处理器已经使相应事件242-4和242-3分别在队列240B和240D中排队。在图5G中,优先级处理器250使事件242-1(即,具有未决事件的最高优先级队列的头事件)出列。在图5H中,优先级处理器250已经使事件242-4出列,从而留下低优先级事件242-10和242-3以便稍后由优先级处理器使其出列。应当理解,在通常的实际操作中,在这些队列中发现了数量多得多的事件,并且优先级队列240A-D通常将具有多个未决事件。
以上描述集中于单个事件队列110。在图6中示出了分布式事件队列510。分布式队列510包括多个副本511,其各自具有图2所示的事件队列110的结构。在该示例中,根据上述键对输入到分布式事件队列的事件进行划分。以此方式,如果类要求特定值的事件保持有序,则可以在每一个事件队列副本511处单独应用该约束。
在一个实现方式中,上述事件队列100的实现方式与美国专利公布2016/0062776,“执行基于图表的程序规范(EXECUTING GRAPH-BASED PROGRAM SPECIFICATIONS)”中描述的系统结合使用,该专利通过引用并入本文。例如,事件队列100可以用于实施可执行的任务的“可运行队列”,或者可以实施例如用于支持无序集合流的链路缓冲器。在一些实现方式中,事件100形成如上面引用的公布中所描述的运行时系统的调度和优先级排序功能,由此不同计算图表的可运行任务被组合在单个事件队列中,并且由事件队列施加的优先级排序和调度根据优先级排序和调度有效地分配计算资源,特别是运行的计算实例。以此方式,多个图表可以在运行时系统中共存,其中资源优先应用于更高优先级或更加延迟敏感的事件,而其他事件在可用时消耗更多“背景”资源。
以上描述的方法可以例如使用执行合适的软件指令的可编程计算系统来实施,或者该方法可以在合适的硬件诸如现场可编程门阵列(FPGA)中实施,或以某种混合形式实施。例如,在程控方法中,软件可以包括在一个或多个程控的或可编程计算系统(其可以是各种体系架构,诸如分布式、客户端/服务器、或网格)上执行的一个或多个计算机程序中的过程,该计算系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性存储器和/或存储元件)、至少一个用户接口(用于使用至少一个输入设备或端口接收输入,并且用于使用至少一个输出设备或端口提供输出)。软件可以包括较大程序的一个或多个模块,该较大程序例如提供与对数据流图的设计、配置、和执行有关的服务。程序模块(例如,数据流图的元素)可以被实施为数据结构或符合存储在数据储存库中的数据模型的其他经组织的数据。
软件可以以非暂态的形式存储一段时间(例如,动态存储器设备诸如动态RAM的刷新周期之间的时间),诸如使用介质的物理属性(例如,表面凹坑和岸台、磁畴、或电荷)体现在易失性或非易失性存储介质中、或任何其他非暂态介质中。在准备下载指令时,软件可以提供在有形、非暂态介质诸如CD-ROM或其他计算机可读介质(例如,由通用或专用计算系统或设备可读)上,或者可以通过网络的通信介质递送(例如,被编码到传播信号中)到执行该软件的计算系统的有形、非暂态介质。该处理的一些或全部可以在专用计算机上执行,或者使用专用硬件诸如协处理器或现场可编程门阵列(FPGA)或专用的、专用集成电路(ASIC)执行。该处理可以以分布式方式来实施,其中,由软件指定的计算的不同部分由不同的计算元件执行。每一个这种计算机程序优选地存储在或下载到可由通用或专用可编程计算机访问的存储设备的计算机可读存储介质(例如,固态存储器或介质、或者磁性介质或光学介质)上,以便当由计算机读取存储设备介质以执行本文中描述的处理时,对计算机进行配置和操作。也可以认为本发明的系统被实施为配置有计算机程序的有形非暂态介质,其中,如此配置的介质致使计算机以指定的且预定义的方式操作以便执行本文中描述的处理步骤中的一项或多项。
指令可以处于不同级别,包括机器语言指令、虚拟机指令、较高级编程指令和/或编译或解释指令。在一些实现方式中,某些功能可以完全或部分地在专用硬件中实施。例如,图2所示的各种队列可以具有专用硬件,其可以提高效率或减少所实施的排队方法的延迟。一些实现方式使用软件和专用硬件部件的组合。
已经描述了本发明的多个实施例。然而,应当理解,前述描述旨在说明而非限制本发明的范围,本发明的范围由以下权利要求书的范围限定。因此,其他实施例也在所附权利要求书的范围内。例如,在不背离本发明的范围的情况下,可以进行各种修改。另外,上述步骤中的一些步骤可以是顺序独立的,并且因此可以以与所描述的顺序不同的顺序来执行。
Claims (14)
1.一种用于在计算系统中处理多种事件消息的方法,该方法包括:
将接收的事件消息存储在数据存储系统中,该数据存储系统包括与事件消息相关联的第一多个记录的存储,其中每一个事件消息包括时间戳,并且与事件消息相关联的记录包括指示该事件消息的事件结果的目标递送时间的字段,至少一些事件消息的目标递送时间是根据事件消息的种类来确定的;以及
基于存储的事件消息中的信息和与所述事件消息相关联的所述记录中的所述目标递送时间来处理所述存储的事件消息以递送事件结果,该处理包括:
根据存储在事件消息中的指示优先级的信息对所述事件消息进行优先级排序以递送事件结果,
基于相对于第一组一个或多个事件消息中的每一个事件消息的对应时间戳的固定延迟计算该事件消息的目标递送时间,该一个或多个事件消息存储指示该第一组中的所有事件消息的相同优先级的信息,以及
基于事件消息的目标递送时间与时钟时间的比较,递送能够递送的事件消息的事件结果。
2.如权利要求1所述的方法,其中该处理进一步包括对包含少于所有所述存储的事件消息的第二组事件消息进行重新排序,以便根据所述事件消息中的所述时间戳来处理该第二组事件消息中的事件消息,而不是根据所述事件消息被接收的顺序来处理该第二组事件消息中的事件消息。
3.如权利要求2所述的方法,其中在接收特定事件消息之后,使用至少部分地由该特定事件消息中所包括的信息限定的函数来计算与该特定事件消息相关联的目标递送时间。
4.如权利要求3所述的方法,其中对于与第一事件类相关联的事件消息,该函数返回基于该时钟时间的目标递送时间。
5.如权利要求4所述的方法,其中与该第一事件类相关联的事件消息不在被重新排序的第二组中,并且根据所述事件消息被接收的顺序来进行处理。
6.如权利要求4所述的方法,其中对于与具有比该第一事件类更低优先级的第二事件类相关联的事件消息,该函数返回作为该固定延迟和该事件消息中的时间戳的总和的目标递送时间。
7.如权利要求6所述的方法,其中与该第二事件类相关联的事件消息在被重新排序的第二组中,并且根据存储在与该第二事件类相关联的所述事件消息中的时间戳来重新排序。
8.如权利要求6所述的方法,其中对于与具有比该第二事件类更低优先级的第三事件类相关联的事件消息,该函数返回基于存储在该事件消息中的时间戳的目标递送时间。
9.如权利要求8所述的方法,其中与该第三事件类相关联的事件消息在被重新排序的第二组中,并且根据存储在与该第三事件类相关联的所述事件消息中的时间戳来重新排序。
10.如权利要求6所述的方法,其中对于与具有比该第二事件类更低优先级的第三事件类相关联的事件消息,该函数返回基于重复的调度的目标递送时间。
11.如权利要求2所述的方法,其中该第二组包括全部包括公共键值的事件消息。
12.如权利要求1所述的方法,其中根据存储在事件消息中的信息对所述事件消息进行优先级排序以递送事件结果包括将与具有不同优先级的事件类相关联的事件消息存储在不同的对应有序队列中,以及从非空的具有最高优先级的有序队列的前面选择下一个事件消息以评估事件结果的可能递送。
13.一种在计算机可读介质上以非暂态形式存储的软件,其用于在计算系统中处理事件消息,该软件包括用于使该计算系统进行以下操作的指令:
将接收的事件消息存储在数据存储系统中,该数据存储系统包括与事件消息相关联的第一多个记录的存储,其中每一个事件消息包括时间戳,并且与事件消息相关联的记录包括指示该事件消息的事件结果的目标递送时间的字段,至少一些事件消息的目标递送时间是根据事件消息的种类来确定的;以及
基于存储的事件消息中的信息和与所述事件消息相关联的所述目标递送时间来处理所述存储的事件消息以递送事件结果,该处理包括:
根据存储在事件消息中的指示优先级的信息对所述事件消息进行优先级排序以递送事件结果,
基于相对于第一组一个或多个事件消息中的每一个事件消息的对应时间戳的固定延迟计算该事件消息的目标递送时间,该一个或多个事件消息存储指示该第一组中的所有事件消息的相同优先级的信息,以及
基于事件消息的目标递送时间与时钟时间的比较,递送能够递送的事件消息的事件结果。
14.一种用于处理事件消息的计算系统,该计算系统包括:
数据存储系统,用于存储接收的事件消息,该数据存储系统包括与事件消息相关联的第一多个记录的存储,其中每一个事件消息包括时间戳,并且与事件消息相关联的记录包括指示该事件消息的事件结果的目标递送时间的字段,至少一些事件消息的目标递送时间是根据事件消息的种类来确定的;以及
至少一个处理器,被配置成基于存储的事件消息中的信息和与所述事件消息相关联的所述目标递送时间来处理所述存储的事件消息以递送事件结果,该处理包括:
根据存储在事件消息中的指示优先级的信息对所述事件消息进行优先级排序以递送事件结果,
基于相对于第一组一个或多个事件消息中的每一个事件消息的对应时间戳的固定延迟计算该事件消息的目标递送时间,该一个或多个事件消息存储指示该第一组中的所有事件消息的相同优先级的信息,以及
基于事件消息的目标递送时间与时钟时间的比较,递送能够递送的事件消息的事件结果。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662434472P | 2016-12-15 | 2016-12-15 | |
US62/434,472 | 2016-12-15 | ||
PCT/US2017/066676 WO2018112344A1 (en) | 2016-12-15 | 2017-12-15 | Heterogeneous event queue |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110100235A true CN110100235A (zh) | 2019-08-06 |
CN110100235B CN110100235B (zh) | 2023-01-06 |
Family
ID=61656331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780077873.4A Active CN110100235B (zh) | 2016-12-15 | 2017-12-15 | 异类事件队列 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10628240B2 (zh) |
EP (1) | EP3555747B1 (zh) |
JP (1) | JP6864746B2 (zh) |
KR (1) | KR102239428B1 (zh) |
CN (1) | CN110100235B (zh) |
AU (1) | AU2017377034B2 (zh) |
CA (1) | CA3044287C (zh) |
WO (1) | WO2018112344A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694619A (zh) * | 2020-06-09 | 2020-09-22 | 重庆锐云科技有限公司 | 基于刷新率的定时器实现方法、装置、设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11074554B2 (en) * | 2016-12-30 | 2021-07-27 | Verizon Patent And Licensing Inc. | Cloud-based event calendar synching and notification |
KR102527925B1 (ko) * | 2017-11-29 | 2023-05-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN109508231B (zh) * | 2018-11-17 | 2020-09-18 | 中国人民解放军战略支援部队信息工程大学 | 异构多模处理器的等价体间的同步方法及装置 |
US11593248B2 (en) * | 2020-03-11 | 2023-02-28 | SK Hynix Inc. | Firmware event tracking systems and methods for preventing loss of events |
CN113535426B (zh) * | 2021-06-16 | 2023-11-03 | 福建天泉教育科技有限公司 | 一种消息下发的优化方法及服务端 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000293387A (ja) * | 1999-04-05 | 2000-10-20 | Nec Corp | イベント通知システム |
CN1747407A (zh) * | 2004-07-09 | 2006-03-15 | 阿尔卡特公司 | 具有多服务器变化请求处理的网络管理系统 |
US20120278414A1 (en) * | 2011-04-29 | 2012-11-01 | Tom Walsh | System and method for electronic event correlated message delivery |
US8452901B1 (en) * | 2011-12-30 | 2013-05-28 | Emc Corporation | Ordered kernel queue for multipathing events |
US20140278641A1 (en) * | 2013-03-15 | 2014-09-18 | Fiserv, Inc. | Systems and methods for incident queue assignment and prioritization |
US8949840B1 (en) * | 2007-12-06 | 2015-02-03 | West Corporation | Method, system and computer-readable medium for message notification delivery |
US20150363245A1 (en) * | 2013-01-31 | 2015-12-17 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus, method and computer program for processing out-of-order events |
US9424075B1 (en) * | 2015-01-30 | 2016-08-23 | Amazon Technologies, Inc. | Dynamic virtual partitioning for delayed queues |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09244984A (ja) * | 1996-03-08 | 1997-09-19 | Nippon Telegr & Teleph Corp <Ntt> | イベント順序補正方法 |
DE60024228T2 (de) | 1999-01-08 | 2006-08-10 | Nortel Networks Ltd., St. Laurent | Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung |
US6760309B1 (en) | 2000-03-28 | 2004-07-06 | 3Com Corporation | Method of dynamic prioritization of time sensitive packets over a packet based network |
JP4294879B2 (ja) | 2001-02-05 | 2009-07-15 | 株式会社日立製作所 | サービスレベル制御機構を有するトランザクション処理システム及びそのためのプログラム |
WO2003009164A2 (en) | 2001-07-16 | 2003-01-30 | America Online Incorporated | Method and apparatus for calendaring reminders |
US7421273B2 (en) | 2002-11-13 | 2008-09-02 | Agere Systems Inc. | Managing priority queues and escalation in wireless communication systems |
KR101043167B1 (ko) | 2003-06-25 | 2011-06-20 | 주식회사 케이티 | 레거시 망 운용관리 시스템간의 연동시스템 및 방법 |
US20060277330A1 (en) | 2005-06-01 | 2006-12-07 | Wilhelmus Diepstraten | Techniques for managing priority queues and escalation considerations in USB wireless communication systems |
EP2096564B1 (en) | 2008-02-29 | 2018-08-08 | Euroclear SA/NV | Improvements relating to handling and processing of massive numbers of processing instructions in real time |
US9042366B2 (en) * | 2010-09-30 | 2015-05-26 | Vitesse Semiconductor Corporation | Timestamp predictor for packets over a synchronous protocol |
US8924981B1 (en) * | 2010-11-12 | 2014-12-30 | Teradat US, Inc. | Calculating priority indicators for requests in a queue |
WO2016036817A1 (en) | 2014-09-02 | 2016-03-10 | Ab Initio Technology Llc | Executing graph-based program specifications |
-
2017
- 2017-12-15 CN CN201780077873.4A patent/CN110100235B/zh active Active
- 2017-12-15 US US15/843,605 patent/US10628240B2/en active Active
- 2017-12-15 KR KR1020197020286A patent/KR102239428B1/ko active IP Right Grant
- 2017-12-15 JP JP2019529898A patent/JP6864746B2/ja active Active
- 2017-12-15 WO PCT/US2017/066676 patent/WO2018112344A1/en unknown
- 2017-12-15 CA CA3044287A patent/CA3044287C/en active Active
- 2017-12-15 EP EP17851916.1A patent/EP3555747B1/en active Active
- 2017-12-15 AU AU2017377034A patent/AU2017377034B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000293387A (ja) * | 1999-04-05 | 2000-10-20 | Nec Corp | イベント通知システム |
CN1747407A (zh) * | 2004-07-09 | 2006-03-15 | 阿尔卡特公司 | 具有多服务器变化请求处理的网络管理系统 |
US8949840B1 (en) * | 2007-12-06 | 2015-02-03 | West Corporation | Method, system and computer-readable medium for message notification delivery |
US20120278414A1 (en) * | 2011-04-29 | 2012-11-01 | Tom Walsh | System and method for electronic event correlated message delivery |
US8452901B1 (en) * | 2011-12-30 | 2013-05-28 | Emc Corporation | Ordered kernel queue for multipathing events |
US20150363245A1 (en) * | 2013-01-31 | 2015-12-17 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus, method and computer program for processing out-of-order events |
US20140278641A1 (en) * | 2013-03-15 | 2014-09-18 | Fiserv, Inc. | Systems and methods for incident queue assignment and prioritization |
US9424075B1 (en) * | 2015-01-30 | 2016-08-23 | Amazon Technologies, Inc. | Dynamic virtual partitioning for delayed queues |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694619A (zh) * | 2020-06-09 | 2020-09-22 | 重庆锐云科技有限公司 | 基于刷新率的定时器实现方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20180173577A1 (en) | 2018-06-21 |
KR102239428B1 (ko) | 2021-04-12 |
KR20190093653A (ko) | 2019-08-09 |
US10628240B2 (en) | 2020-04-21 |
EP3555747A1 (en) | 2019-10-23 |
CA3044287A1 (en) | 2018-06-21 |
JP6864746B2 (ja) | 2021-04-28 |
JP2020502647A (ja) | 2020-01-23 |
CN110100235B (zh) | 2023-01-06 |
CA3044287C (en) | 2021-08-10 |
EP3555747B1 (en) | 2021-12-08 |
AU2017377034A1 (en) | 2019-06-06 |
AU2017377034B2 (en) | 2020-08-20 |
WO2018112344A1 (en) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110100235A (zh) | 异类事件队列 | |
CN109144731A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US10459915B2 (en) | Managing queries | |
Wang et al. | Optimal priority-free conditionally-preemptive real-time scheduling of periodic tasks based on DES supervisory control | |
CN107908471B (zh) | 一种任务并行处理方法和处理系统 | |
Wang et al. | A throughput optimal algorithm for map task scheduling in mapreduce with data locality | |
JP2020502647A5 (zh) | ||
CN107015849A (zh) | 定时任务的提醒方法及装置 | |
Mahnam et al. | Single machine scheduling with unequal release times and idle insert for minimizing the sum of maximum earliness and tardiness | |
Stavrinides et al. | Scheduling single-task jobs along with bag-of-task-chains in distributed systems | |
Kulkarni et al. | Iterative simulation and optimization approach for job shop scheduling | |
Stavrinides et al. | Multicriteria scheduling of linear workflows with dynamically varying structure on distributed platforms | |
Stavrinides et al. | The impact of input error on the scheduling of task graphs with imprecise computations in heterogeneous distributed real-time systems | |
Stavrinides et al. | The impact of resource heterogeneity on the timeliness of hard real-time complex jobs | |
US10656967B1 (en) | Actor and thread message dispatching | |
CN107544843A (zh) | 一种分区系统调度算法 | |
JP2017068877A (ja) | ジョブネット管理装置及びプログラム | |
CN104506452A (zh) | 一种报文处理方法及装置 | |
CN105024943B (zh) | 选择等待队列以从中提取发送数据段的方法和存储介质 | |
van Zwieten et al. | Optimal periodical behavior of a multiclass fluid flow network | |
JP6302103B2 (ja) | ジョブネット管理装置及びプログラム | |
ALFONSO et al. | A queueing network approach for appointment scheduling of blood donors | |
JP6118841B2 (ja) | ジョブネット管理装置及びプログラム | |
Li et al. | Modeling and performance analysis of a priority-based scheduling scheme in service grid | |
Ding et al. | Effective scheduling algorithms for I/O blocking with a multi-frame task model |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40011682 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |