适应随机发生的事件延迟的可变性时序表制造技术

技术编号:15400254 阅读:139 留言:0更新日期:2017-05-24 08:47
使计算系统(12)处理来自事件序列的事件,所述事件序列独立于接收这些事件的顺序定义事件的正确顺序,包括:定义第一变量(26),为第一变量定义与接收到的事件相关联的对第一变量的操作的第一时序表(52),接收属于第一变量的第一事件,对所述第一变量执行第一操作,第一操作导致时序表的第一次更新,接收属于第一变量的延迟事件,对所述第一变量执行第二操作,第二操作导致时序表的第二次更新,以及确定第一次更新是有效的还是无效的,其中延迟事件在序列中位于第一事件之前,第一次更新基于第一事件,以及第二次更新基于延迟事件。

A schedule of variability that adapts to random occurrence of event delays

The computing system (12) from the sequence of events, the correct sequence, the sequence of events is independent of the order defined events receive these events include: the definition of the first variable (26), for the first time the first definition of variables associated with the received events of the first variable operation table (52). Receive the first event belongs to the first variable, the first variable performs the first operation, the first operation led to the first update timing table, receives the delayed events belonging to the first variable, the first implementation of the second variables, second times second sequential operation causes the update, and determine the first update is valid or invalid the delay in the sequence before the event which is located in the first event, the first update based on the first event, and second updates based on delayed events.

【技术实现步骤摘要】
【国外来华专利技术】相关申请的交叉引用本申请要求第62/028,999号美国申请的2014年7月25日优先权日的权益。
本公开涉及事件处理,并且特别地涉及响应于事件来更新变量。
技术介绍
典型的计算机系统接收事件并响应于这些事件更新状态。状态可以由表示各种实体的帐户余额(accountbalance)的一组状态变量组成。在这种情况下,事件可以是由一个实体进行的取款(withdrawal)或转帐(transfer)。响应于事件,可能需要通过更新一个或多个状态变量来改变状态。在许多情况下,状态是确定性的。这意味着如果在某个时间之前的所有事件是已知的,并且所有这些事件以正确的顺序处理,则状态将是已知的。遗憾的是,不能保证事件将以正确的顺序到达。结果,计算机认为状态是什么的记录状态将不一定总是匹配实际状态,记录状态是计算机在已经以正确的顺序接收到相关事件的情况下将记录的状态。在复杂事件处理(ComplexEventProcessing,CEP)系统中,例如,处理事件流,而同时基于结果采取动作。用于CEP系统的一组工作数据可以包括基于接收到的事件数据(例如,诸如数据库请求、天气数据或交通数据的事件数据)的不同的相应流来操作的不同状态变量。各个事件的原始序列的顺序可能对要执行的处理具有影响。在一些情况下,如果事件的处理不按顺序发生,则由状态变量反映的状态可能是不正确的。校正状态的过程并不那么简单,特别是在多核或多节点环境中。在许多情况下,更新状态将涉及更新工作存储器中的多个状态变量。这增加了在彼此依赖以向前进展的两个不同更新计算之间发生死锁的风险。为了减轻这种死锁风险,一些系统使用一种形式的并发控制(例如,使用锁定和两阶段提2的消极并发控制,或者没有锁定但是具有非本地验证过程的积极并发控制)。此外,整个系统应当足够弹性以至少能够承受节点或核的故障,并且在这样的故障之后恢复状态。事件处理的常规方法涉及合并复杂且耗时的分布式算法的容错分布式数据库。构建这样的系统并使其通常难以在高峰值服务水平下执行良好(例如,具有低等待时间)。例如,使其以亚毫秒响应性在每秒百万次事件的水平执行是一个至少无法企及的前景。
技术实现思路
一方面,一般来说,一种用于使计算系统处理来自事件序列的多个事件的方法,所述事件序列独立于通过输入设备或端口接收这些事件的顺序来定义所述多个事件的正确顺序,包括:定义第一变量,为所述第一变量定义与接收到的事件相关联的对所述第一变量的操作的第一时序表,接收属于所述第一变量的第一事件,对所述第一变量执行第一操作,其中所述第一操作导致所述第一时序表的第一次更新,在接收到所述第一事件之后,接收属于所述第一变量的延迟事件,对所述第一变量执行第二操作,其中所述第二操作导致所述第一时序表的第二次更新,以及确定所述第一次更新是有效的还是无效的,其中所述延迟事件在所述序列中位于所述第一事件之前,其中所述第一次更新基于所述第一事件,以及其中所述第二次更新基于所述延迟事件。在一些实施例中,确定所述第一次更新是有效的还是无效的包括:确定所述第一次更新是有效的。在这些实施例中有些实施例,其中确定所述第一次更新是有效的包括:确定所述第一次更新是在所述第一次更新之前插入写操作。有些实施例,其中确定所述第一次更新是有效的包括:确定所述延迟事件导致在所述第一次更新之前插入读取操作。有些实施例,其中确定所述第一次更新是有效的包括:确定所述延迟事件需要在所述第一次更新之前插入更新操作。在所述方法的一些实施例中,确定所述第一次更新是有效的包括:确定所述第一次更新不受所述第二次更新的影响。在一些实施例中,其中确定所述第一次更新是有效还是无效的包括:确定所述第一次更新受所述第二次更新的影响,并且响应于确定所述第一次更新是无效的而撤销所述第一次更新。在其它实施例中,确定所述第一次更新是有效的还是无效的包括:确定所述第一次更新受所述第二次更新影响,使得所述第一次更新是无效的。在这些实施例中有些实施例,其中确定所述第一次更新受所述第二次更新影响包括:确定所述延迟事件需要在对应于所述第一次更新的时序表条目之前插入指示包括写入所述第一变量的操作的时序表条目。有些实施例,其中确定所述第一次更新受所述第二次更新的影响包括:确定所述延迟事件需要更新位于对应于所述第一次更新的时序表条目之前、指示对所述第一变量的操作的现有时序表条目。在一些情况下,所述事件序列的所述正确顺序是部分排序的,并且所述方法的实施例包括使所述事件序列被完全排序。在替代实施例中,接收所述第一事件包括:从一组完全排序的事件接收所述事件。在所述方法的实施例中,一些实施例还包括:检测所述第一时序表中的数据丢失(例如,存储在经历故障的设备或节点上的第一时序表的一部分),在所述第一时序表中检索指示所述第一变量的有效值的第一检查点值,基于所述检查点值,在事件列表中检索事件子集,所述事件列表包括所述第一事件,重新处理所述事件子集,从而重建在所述数据丢失中丢失的所述数据,以及修改所述第一时序表以包括在所述数据丢失中丢失的所述数据。在另一些实施例中,所述第一时序表包括对应于由多个事件导致的操作的多个条目,所述多个事件位于与对应于所述延迟事件的延迟事件操作相对应的条目之后。这些实施例中包括有些实施例,其中执行使所述第一时序表进行第二次更新的第二操作包括识别阻止所述多个条目中的无效的传播的屏障操作,以及仅修改所述多个操作当中条目位于对应于所述延迟事件操作的条目与所述屏障操作的条目之间的那些操作。在这些实施例中有些实施例,其中识别屏障操作包括:将写操作识别为屏障操作。在替代实施例中,确定所述第一次更新是否是有效的包括:识别对于正确执行所述第一次更新必须发生的对所述第一时序表的访问,检查所述第一时序表,以及基于所述检查,确定是否发生了所述访问。在这些实施例中有些实施例还包括:维护第一信息和第二信息,其中所述第一信息标识对所述第一时序表的访问,其中所述第二信息标识处理所述第一事件所需的访问范围,以及确定所述第一信息在所述访问范围内。在其它实施例中,所述计算系统包括通过网络通信的多个节点,并且所述方法还包括使所述计算系统执行以下步骤:将所述第一变量和所述第一时序表存储在第一节点处;将第二变量和对所述第二变量的操作的第二时序表存储在第二节点处;以及通过对所述第一变量和所述第二变量执行操作来处理所述事件序列的至少一些事件,以及响应于处理所述多个事件来更新所述第一时序表和所述第二时序表。其它实施例包括上述实施例中任何实施例的可兼容组合。在另一方面,本专利技术具有一种以非暂时形式存储在计算机可读介质上的软件,用于使计算系统处理来自事件序列的多个事件,所述事件序列独立于通过输入设备或端口接收这些事件的顺序来定义所述多个事件的正确顺序,所述软件包括用于使计算系统执行上述方法中的任一种的指令。在另一方面,本专利技术具有一种用于处理来自事件序列的多个事件的计算系统,所述事件序列独立于通过输入设备或端口接收这些事件的顺序来定义所述多个事件的正确顺序,所述计算系统包括:输入设备或端口,被配置为接收所述多个事件;以及至少一个处理器,被配置为参与所述事件序列的处理,所述处理包括上述方法中的任何一种。在另一个方面,本专利技术具有一种用于处理来自事件序列的多个事件的计算系统本文档来自技高网
...

【技术保护点】
一种用于使计算系统处理来自事件序列的多个事件的方法,所述事件序列独立于通过输入设备或端口接收这些事件的顺序来定义所述多个事件的正确顺序,所述方法包括:定义第一变量,为所述第一变量定义与接收到的事件相关联的对所述第一变量的操作的第一时序表,接收属于所述第一变量的第一事件,对所述第一变量执行第一操作,其中所述第一操作导致所述第一时序表的第一次更新,在接收到所述第一事件之后,接收属于所述第一变量的延迟事件,对所述第一变量执行第二操作,其中所述第二操作导致所述第一时序表的第二次更新,以及确定所述第一次更新是有效的还是无效的,其中所述延迟事件在所述序列中位于所述第一事件之前,其中所述第一次更新基于所述第一事件,以及其中所述第二次更新基于所述延迟事件。

【技术特征摘要】
【国外来华专利技术】2014.07.25 US 62/028,9991.一种用于使计算系统处理来自事件序列的多个事件的方法,所述事件序列独立于通过输入设备或端口接收这些事件的顺序来定义所述多个事件的正确顺序,所述方法包括:定义第一变量,为所述第一变量定义与接收到的事件相关联的对所述第一变量的操作的第一时序表,接收属于所述第一变量的第一事件,对所述第一变量执行第一操作,其中所述第一操作导致所述第一时序表的第一次更新,在接收到所述第一事件之后,接收属于所述第一变量的延迟事件,对所述第一变量执行第二操作,其中所述第二操作导致所述第一时序表的第二次更新,以及确定所述第一次更新是有效的还是无效的,其中所述延迟事件在所述序列中位于所述第一事件之前,其中所述第一次更新基于所述第一事件,以及其中所述第二次更新基于所述延迟事件。2.根据权利要求1所述的方法,其中确定所述第一次更新是有效的还是无效的包括:确定所述第一次更新是有效的。3.根据权利要求2所述的方法,其中确定所述第一次更新是有效的包括:确定所述第一次更新是在所述第一次更新之前插入写操作。4.根据权利要求2所述的方法,其中确定所述第一次更新是有效的包括:确定所述延迟事件导致在所述第一次更新之前插入读取操作。5.根据权利要求2所述的方法,其中确定所述第一次更新是有效的包括:确定所述延迟事件需要在所述第一次更新之前插入更新操作。6.根据权利要求2所述的方法,其中确定所述第一次更新是有效的包括:确定所述第一次更新不受所述第二次更新的影响。7.根据权利要求1所述的方法,其中确定所述第一次更新是有效还是无效的包括:确定所述第一次更新受所述第二次更新的影响,并且响应于确定所述第一次更新是无效的而撤销所述第一次更新。8.根据权利要求1所述的方法,其中确定所述第一次更新是有效的还是无效的包括:确定所述第一次更新受所述第二次更新影响,使得所述第一次更新是无效的。9.根据权利要求8所述的方法,其中确定所述第一次更新受所述第二次更新影响包括:确定所述延迟事件需要在对应于所述第一次更新的时序表条目之前插入指示包括写入所述第一变量的操作的时序表条目。10.根据权利要求8所述的方法,其中确定所述第一次更新受所述第二次更新的影响包括:确定所述延迟事件需要更新位于对应于所述第一次更新的时序表条目之前、指示对所述第一变量的操作的现有时序表条目。11.根据权利要求1所述的方法,其中所述事件序列的正确顺序是部分排序的,并且所述方法还包括使所述事件序列被完全排序。12.根据权利要求1所述的方法,其中接收所述第一事件包括:从一组完全排序的事件接收所述事件。13.根据权利要求1所述的方法,还包括:检测所述第一时序表中的数据丢失,在所述第一时序表中检索指示所述第一变量的有效值的第一检查点值,基于所述检查点值,在事件列表中检索事件子集,所述事件列表包括所述第一事件,重新处理所述事件子集,从而重建在所述数据丢失中丢失的所述数据,以及修改所述第一时序表以包括在所述数据丢失中丢失的所述数据。14.根据权利要求1所述的方法,其中所述第一时序表包括...

【专利技术属性】
技术研发人员:C·W·斯坦菲尔
申请(专利权)人:起元科技有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1