一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

标点控制的时间参考数据查找的制作方法

2022-04-12 12:05:27 来源:中国专利 TAG:
标点控制的时间参考数据查找的制作方法

事件流处理是指对诸如时间序列数据的基于时间的数据进行快速分析的过程。在事件流处理的上下文中,术语“事件”是指在限定的时间处发生并且可以使用一个或多个数据字段记录的任何发生。“事件流”是多个数据事件的序列,其可以按时间排序。不同类型的事件流的一些示例包括物联网(IoT)数据(例如,传感器数据、来自控制系统的信号、位置信息)、业务交易(例如,客户订单、银行存款、发票)和信息报告(例如、社交媒体更新、市场数据、天气报告)。

利用传统方案,数据通常在已经存储之后进行处理。有利地,事件流处理允许在创建数据时和存储数据之前对其进行分析。例如,当数据从一个设备流到另一个设备时,可以对数据进行分析。这允许更快的反应时间,并且甚至可以为采取主动措施提供机会。

事件流处理可以被利用以标识事件流内有意义的模式或关系,以检测诸如事件相关性、因果关系或定时的关系。各种各样的行业可以从事件流处理中受益,事件流处理包括网络监测、网络安全、零售优化、监视、欺诈检测、金融交易和电子商务。

在被配置为用于事件流处理的系统中,有时可能需要将事件流中的传入数据与提供关于事件流的附加信息的参考数据联接。考虑涉及来自恒温器的温度读数流的示例。可能需要对恒温器的设备标识符(ID)和包含有关恒温器的信息的表执行联接操作,以检索恒温器的友好名称、建筑物中的位置等。将事件流与参考数据联接的操作在本文中可以被称为参考数据联接操作。

当执行参考数据联接操作时,一个挑战是参考数据本身可以缓慢改变。例如,参考数据中与恒温器相关联的位置可以在恒温器物理地移动到新位置之后更新。这提出了至少两个挑战。首先,当参考数据在时间t处更新时,与时间t相关联的事件所联接的(多个)值也应该被刷新,并且不应该使用(多个)陈旧的值。其次,事件与参考数据之间的参考数据联接操作应该是可重复的。例如,与特定时间处的恒温器读数相关联的数据应始终与参考数据的相同定义相联接。如果针对早于改变(例如,在重新处理事件期间)的温度读数执行参考数据联接操作,则应将那些较旧的温度读数与旧位置联接起来。

除了正确性之外,当执行参考数据联接操作时,低延时也是期望的属性。然而,随着参考数据大小的增加,在提供正确结果的同时实现低延时变得越来越困难。在当前的许多应用中,参考数据的大小可能非常大(例如,数百千兆字节或更大)。



技术实现要素:

根据本公开的一个方面,一种用于将事件流与参考数据联接的方法包括:将来自参考数据源的多个参考数据快照加载到高速缓存中。供应标点事件,该标点事件指示针对高速缓存中的多个参考数据快照的时间有效性。基于标点事件,提供逻辑屏障,该逻辑屏障限制事件流中的数据事件向高速缓存查找操作的流动。对于事件流中被允许越过逻辑屏障的数据事件执行高速缓存查找操作。

在一些实施例中,提供逻辑屏障包括在标点事件与事件流之间执行时间联合。

在一些实施例中,标点事件包括标点事件时间戳,该标点事件时间戳指示最新时间点,该最新时间点在高速缓存中存在有效参考数据快照。事件流中的具有小于或者等于标点事件时间戳的时间戳的每个数据事件可以被允许越过逻辑屏障。事件流中的具有大于标点事件时间戳的时间戳的每个数据事件可以被防止越过屏障。

在一些实施例中,该方法还包括基于对事件流中的数据事件的处理来动态更新高速缓存的内容。

在一些实施例中,高速缓存查找操作可以由流处理节点中的计算处理器来执行。可以响应于由计算处理器发送的数据请求,由参考数据管理器将标点事件供应给计算处理器。该方法还可以包括至少部分地基于数据请求来确定是否将一个或多个新的参考数据快照添加至高速缓存。当标点事件时间戳与关联于由计算处理器发送的最近的数据请求的时间戳之间的差小于预定阈值时,可以将新的参考数据快照添加至高速缓存。

在一些实施例中,该方法还可以包括:作为高速缓存查找操作的一部分,至少部分地基于计算处理器发送给参考数据管理器的查找请求,来确定是否从高速缓存删除一个或多个较旧的参考数据快照。当被包括在计算处理器发送给参考数据管理器的最近的查找请求中的时间戳与关联于参考数据快照的时间范围的结束时间之间的差大于预定阈值时,可以从高速缓存删除参考数据快照。

提供本发明内容以简化形式介绍在下面的具体实施方式中进一步描述的构思的选择。本发明内容无意于确定要求保护的主题的关键特征或基本特征,也无意于用作确定要求保护的主题的范围的帮助。

附加特征和优点将在下面的描述中阐述。本公开的特征和优点可以借助于所附权利要求中特别指出的系统和方法来实现和获得。本公开的特征将从以下描述和所附权利要求中变得更加清楚,或者可以通过如下文阐述的公开主题的实践而获悉。

附图说明

为了描述可以获得本公开的上述和其他特征的方式,将通过参考附图中示出的本公开的具体实施例来进行更具体的描述。为了更好地理解,在各个附图中相同的元素通过相同的附图标记表示。应当理解,附图描绘了一些示例实施例,将通过使用附图利用附加的特性和细节描述和解释实施例,在附图中:

图1图示了在其中可以利用本文中公开的技术的事件流处理系统的示例。

图2图示了示出根据本公开的计算机处理器可以如何利用由参考数据管理器提供的标点事件来实现对高速缓存查找操作的逻辑屏障的示例。

图3A至图3C图示了可以如何基于事件流的处理动态地更新高速缓存的内容。

图4图示了根据本公开的用于将事件流与参考数据联接的方法的示例。

图5图示了用于基于对事件流中的数据事件的处理来动态更新高速缓存的内容的方法的示例。

图6图示了根据本公开的可以包括在计算系统内的某些组件。

具体实施方式

本公开总体上涉及一种用于将事件流与参考数据联接的方法。有利地,即使在参考数据的大小非常大时,本文中公开的技术也在实现低延时的同时提供准确的结果。

本文中公开的技术利用高速缓存查找操作。换句话说,当将事件流与参考数据联接时,可以从高速缓存中获取参考数据。经由高速缓存查找操作获取参考数据比相对于参考数据源本身执行输入/输出操作快得多,从而减小所涉及的延时量。

高速缓存可以包括多个参考数据快照。在此上下文中,术语“快照”是指在特定时间点处的参考数据的表示。有效的时间范围可以与每个参考数据快照相关联。与特定参考数据快照相关联的有效时间范围可以包括开始时间和结束时间。参考数据快照是在有效时间范围的开始时间与结束时间之间的、与参考数据快照相关联的参考数据的准确表示。然而,参考数据快照可能无法准确表示有效时间范围的开始时间之前或结束时间之后的参考数据。

高速缓存的内容可以基于对事件流中的事件的处理而被动态地更新。随着事件流中的事件在时间上进展,可以将来自较晚时间段的附加参考数据快照添加至高速缓存,并且可以从高速缓存中删除不再需要的较旧的参考数据快照。

参考数据管理器供应标点事件,标点事件提供关于高速缓存中的多个参考数据快照的时间有效性的信息。例如,每个标点事件可以指示高速缓存中存在有效参考数据快照的最新时间点。

逻辑屏障被实现为基于标点事件中包含的信息而限制事件向高速缓存查找操作的流动。高速缓存中存在有效参考数据快照的数据事件被允许通过逻辑屏障进行高速缓存查找操作。然而,在高速缓存中不存在有效参考数据快照的数据事件被阻止通过逻辑屏障,直到标点事件指示高速缓存已被更新为包括有效参考数据快照。

逻辑屏障可以被实现为事件流与标点事件之间的时间联合(temporal union)。该时间联合操作可以逻辑地放置在高速缓存查找操作之前。作为时间联合操作的结果,对具有小于或等于由最近的标点事件指示的时间戳的时间戳的数据事件执行高速缓存查找操作。然而,不会对时间戳大于由最近的标点事件指示的时间戳的任何数据事件立即执行高速缓存查找操作。时间联合操作延迟对任何这样的数据事件的高速缓存查找操作,直到接收到一个或多个附加标点事件并且与这些数据事件相关联的时间戳小于或等于由最近的标点事件指示的时间戳。

例如,假设最近的标点事件指示与高速缓存中的参考数据快照中的任何参考数据快照相关联的最高时间戳是tN。时间联合操作将允许与时间戳tN-1相关联的数据事件继续进行高速缓存查找操作(假设tN-1在时间上早于tN发生)。然而,作为时间联合操作的结果,与时间戳tN 1相关联的数据事件不会立即进行高速缓存查找操作。这样的数据事件将被阻止进行高速缓存查找操作,直到标点事件指示与高速缓存中的参考数据快照中的任何参考数据快照相关联的最高时间戳是(至少)tN 1,从而指示针对时间tN 1有效的参考数据快照已被加载到高速缓存中。

图1图示了在其中可以利用本文中公开的技术的事件流处理系统100的示例。事件流处理系统100可以被配置为接收和响应查询102,该查询可以作为来自用户的输入而被提供。响应于一个或多个查询102,事件流处理系统100可以从一个或多个输入104摄取一个或多个事件流116,根据(多个)查询102处理(多个)事件流116,以及生成输出106。

事件流处理系统100包括多个流传输节点108。流传输节点108中的每个流传输节点可以被配置为执行一个或多个处理操作,并且流传输节点108可以互连,以实现对从(多个)输入104摄取的(多个)事件流116的期望处理。为了简单起见,流传输节点108被示为串联连接。然而,提供图1中所示的事件流处理系统100的结构仅用于示例目的,而不应被解释为限制本文中公开的技术的范围。根据本公开,更复杂的拓扑结构是可行的。

图1还示出流传输节点108中可以包括的组件中的一些组件。具体地,流传输节点108被示出为具有下游编组器110、多个计算处理器112和上游编组器114。下游编组器110可以被配置为从在先流传输节点108中的上游编组器拉出数据。计算处理器112各自可以被配置为执行一个或多个处理操作,并且它们可以以各种方式互连,以实现对(多个)事件流116的期望处理。为了简单起见,计算处理器112被示为串联连接。然而,此外,根据本公开,更复杂的拓扑结构是可行的。

可以通过计算处理器(包括图1中所示的计算处理器112中的任何计算处理器)执行的处理操作中的一个处理操作是参考数据联接操作。如上所述,本文中公开的技术利用高速缓存查找操作,其中,从高速缓存120获取参考数据。高速缓存120可以包括多个参考数据快照。根据本公开,参考数据管理器122供应标点事件124,标点事件提供关于高速缓存120中参考数据快照的时间有效性的信息。如下文将更详细地描述的,计算处理器112可以使用标点事件124以实现逻辑屏障,该逻辑屏障限制数据事件向高速缓存查找操作的流动。

图2图示了示出根据本公开的计算处理器212可以如何利用由参考数据管理器222提供的标点事件224来实现对高速缓存查找操作的逻辑屏障的示例。

计算处理器212被配置为执行参考数据联接操作。如上所述,参考数据联接操作是事件流226与参考数据228之间的联接操作。事件流226包括时间序列数据。更具体地,事件流226包括多个数据事件226a-e。数据事件226a-e中的每个数据事件与时间戳和ID相关联。例如,如果数据事件226a-e表示来自恒温器的温度读数,则数据事件226a-e中的每个数据事件可以包括恒温器ID。如上所述,尽管参考数据228不是时间序列数据,但是参考数据228可以不时地改变。参考数据228由参考数据源230提供。根据本公开可以使用许多不同类型的参考数据源230。例如,在一些实施例中,参考数据源230可以是关系数据库,并且参考数据228可以包括一个或多个数据库文件。作为另一示例,参考数据源230可以是云存储系统,并且参考数据228可以包括存储在云存储系统内的一个或多个文件。本领域技术人员将认识到根据本公开可以使用的其他类型的参考数据源230。

为了执行参考数据联接操作,计算处理器212执行高速缓存查找操作。针对事件流226中的数据事件226a-e执行高速缓存查找操作。当针对特定数据事件执行高速缓存查找操作时,高速缓存查找操作标识高速缓存220中对应于与数据事件相关联的ID的任何信息。继续前面的示例,如果数据事件226a-e表示来自恒温器的温度读数并且数据事件226a-e中的每个数据事件包括恒温器ID,则高速缓存查找操作涉及标识高速缓存220中的与该恒温器ID相关联的任何信息(例如,恒温器的友好名称、建筑物中的位置)。计算处理器212被示为具有执行高速缓存查找操作的高速缓存查找组件232。

在所描绘的示例中,第一参考数据快照234a和第二参考数据快照234b存储在高速缓存220中。第一参考数据快照234a与有效时间范围tl-t2相关联,并且第二参考数据快照234a与有效时间范围t3-t4相关联。

在本文讨论的示例中,所有对ti(其中,i是任意整数)的引用指的是时间点。除非另有说明,否则如果y>x,则tx发生的时间早于ty。例如,t1在时间上早于t2发生。然而,两个不同时间值之间的差(例如,t2与t1之间的差)不应被解释为对应于任何特定的时间间隔。tx与ty之间的差可以与ty与tz之间的差相同或不同。例如,t2与t1之间的差可以与t3与t2之间的差相同或不同。

计算处理器212和参考数据管理器222可以是时间同步的,使得在那些实体之间交换的任何时间戳将由两个实体解释为指的是同一时间点。例如,如果参考数据管理器222向计算处理器212返回tN的标点事件224,则参考数据管理器222和计算处理器212二者将tN解释为指的是同一时间点。事实上,简要参考图1中所示的事件流处理系统100,流传输节点108内的所有计算处理器112可以是时间同步的。在一些实施例中,事件流处理系统100内的所有流传输节点108可以是时间同步的。

再次参考图2中所示的示例,参考数据管理器222供应标点事件224,标点事件提供关于高速缓存220中的参考数据快照234a-b的时间有效性的信息。换言之,标点事件224指示存在存储在高速缓存220中的有效参考数据快照234a-b的时间段。参考数据管理器222被示出为具有供应标点事件224的标点提供器236。

由参考数据管理器222供应的每个标点事件224可以包括对应于与高速缓存220中的参考数据快照234a-b相关联的最高时间戳(即,时间上最新的时间戳)的时间戳。例如,对于图2中所示的高速缓存220的内容,标点提供器236可以供应包括时间戳t4的标点事件224,该时间戳对应于第二参考数据快照234b的有效时间范围的结束时间。

计算处理器212实现逻辑屏障以基于由参考数据管理器222供应的标点事件224中包含的信息而限制数据事件226a-e向高速缓存查找操作的流动。如图2中所示,逻辑屏障可以被实现为事件流226与标点事件224之间的时间联合。计算处理器212被示出为具有执行时间联合操作的时间联合组件238。

时间联合操作在逻辑上先于计算处理器212中的高速缓存查找操作而被放置。换言之,计算处理器212被配置为使得事件流226在被高速缓存查找组件232处理之前被时间联合组件238处理。作为时间联合操作的结果,高速缓存查找操作仅对高速缓存220中存在有效参考数据快照的数据事件执行。

更具体地,事件流226中的具有比最近的标点事件224中的时间戳(如上所示,其对应于与高速缓存220中的参考数据快照234a-b相关联的最高时间戳)更大的时间戳的每个数据事件被阻止越过到高速缓存查找组件232执行的高速缓存查找操作的逻辑屏障。然而,事件流226中的具有小于或等于最近的标点事件224中的时间戳的时间戳的每个数据事件被允许越过逻辑屏障并且继续进行至由高速缓存查找组件232执行的高速缓存查找操作。

如上所述,对于如图2中所示的高速缓存220的内容,标点提供器236可以供应包括时间戳t4的标点事件224。在这种情况下,通过时间联合组件238执行的时间联合操作将允许分别与时间戳t1、t2、t3和t4相关联的事件226a-d继续进行至由高速缓存查找组件232执行的高速缓存查找操作。

当针对特定数据事件执行高速缓存查找操作时,高速缓存查找组件232向参考数据管理器222内的请求处理器242发送查找请求240。请求处理器242检索应该与来自适当的参考数据快照(即,具有对应于数据事件的时间戳的有效时间范围的参考数据快照)的数据事件联接的参考数据,并且经由响应244将该参考数据返回至高速缓存查找组件232。在所描绘的示例中,当对分别与时间戳t1和t2相关联的数据事件226a-b执行高速缓存查找操作时,从在时间戳t1-t2之间有效的参考数据快照234a中检索参考数据。当对分别与时间戳t3和t4相关联的数据事件226c-d执行高速缓存查找操作时,从在时间戳t3-t4之间有效的参考数据快照234b检索参考数据。

作为时间联合操作的结果,与时间戳t5相关联的数据事件226e不会立即进行高速缓存查找操作。时间联合组件238将阻止数据事件226e进行高速缓存查找操作,直到时间联合组件238接收到具有(至少)时间戳t5的标点事件224,从而指示针对时间t5有效的参考数据快照已被加载到高速缓存220中。

标点事件224可以响应于针对来自时间联合组件238的数据的请求246而被提供。例如,参考数据管理器222可以被配置为使得无论何时其从时间联合组件238接收到数据请求246,标点提供器236都通过向时间联合组件238返回标点事件224来响应数据请求246。

图3A-图3C图示出了示出根据本公开的参考数据联接操作的附加方面的示例。更具体地,图3A-图3C图示出高速缓存320的内容可以如何基于事件流326的处理而动态地更新。

图3A-图3C图示出连续的时间点。也就是说,图3A图示出特定的时间点,并且图3B中所示的时间点发生在图3A中所示的时间点之后。类似地,图3C中所示的时间点发生在图3B中所示的时间点之后。综合起来,图3A-图3C图示出多个数据事件326a-g的处理。一些数据事件326a-c在图3A中示出,一些数据事件326c-e在图3B中示出,并且一些其他数据事件326e-g在图3C中示出。

如前所述,参考数据联接操作涉及使用包括多个参考数据快照的高速缓存320。在图3A中所示的时间点处,高速缓存320中存在两个参考数据快照324a-b。计算处理器312使用由参考数据管理器322供应的标点事件324来实现逻辑屏障以限制事件流326中的数据事件326a-g向由高速缓存查找组件332执行的高速缓存查找操作的流动。逻辑屏障可以被实现为事件流326与标点事件324之间的时间联合。计算处理器312示出有执行时间联合操作的时间联合组件338。

基于对事件流326中的数据事件326a-g的处理,可以将来自较晚时间段的附加参考数据快照添加至高速缓存320。此外,不再需要的较旧的参考数据快照可以从高速缓存320删除。参考数据管理器322包括高速缓存管理器348,该高速缓存管理器将新的参考数据快照添加至高速缓存320并且从高速缓存320中删除旧的参考数据快照。将一个或多个新的参考数据快照添加至高速缓存320的决定可以至少部分地基于时间联合组件338发送至参考数据管理器322的数据请求346。从高速缓存320中删除一个或多个较旧的参考数据快照的决定可以至少部分地基于高速缓存查找组件332发送至请求处理器342的查找请求340。

现在参考图3B,将一个或多个新的参考数据快照添加至高速缓存320的决定可以基于以下两项之间的差:(i)在高速缓存320中的与参考数据快照334a-b中的任何参考数据快照相关联的最高时间戳(例如,由标点提供器336发送至时间联合组件338的最近的标点事件324a所指示的)与(ii)包括在时间联合组件338发送至参考数据管理器322的最近的数据请求346a中的时间戳。如果这些时间戳之间的差小于预定阈值(其在本文中可以被称为加载阈值350),则高速缓存管理器348可以将一个或多个新的参考数据快照加载至高速缓存320。

例如,图3B示出了时间联合组件338向参考数据管理器322发送具有时间戳t3的数据请求346a。这指示了时间联合组件338当前正在处理具有时间戳t3的数据事件326c。此外,将假设t4是在数据事件326c被处理的时间点处与高速缓存320中的参考数据快照334a-b中的任何参考数据快照相关联的最高时间戳,如由标点提供器336返回至时间联合组件338的最近的标点事件324a所指示的。如果t4与t3之间的差小于加载阈值350,则高速缓存管理器348从参考数据源330检索一个或多个新的参考数据快照并且将(多个)参考数据快照加载至高速缓存320中。图3B示出具有有效时间范围t5-t6的第三参考数据快照334c的高速缓存320。该新的参考数据快照334c以虚线示出,以指示其被新添加至高速缓存320。

为了将参考数据快照334c加载到高速缓存320中,缓存管理器348可以参考由发现实体354准备的日志352。发现实体354可以针对参考数据328的改变定期扫描参考数据源330。无论何时发现实体354确定参考数据328已改变时,发现实体354在日志352中创建另一记录。在所描绘的示例中,日志352包括对应于各种参考数据快照(包括但不限于高速缓存320中的参考数据快照334a-b)的多个记录358a-e。记录358a-e包括地址信息360a-e,该地址信息指示可以在参考数据源330中的何处找到对应的参考数据快照。记录358a-e中的每个记录还与有效时间范围相关联。

当缓存管理器348确定应该将新的参考数据快照加载到高速缓存320中时,缓存管理器348针对具有适当的有效时间范围的记录搜索日志352。在图3A中所示的示例中,与高速缓存320中的参考数据快照334a-b相关联的最高时间戳是t4。高速缓存管理器348针对记录358c搜索日志352,记录258c的有效时间范围包括大于t4的最早开始时间。缓存管理器348然后使用记录358c中的地址信息360c来定位参考数据源330中的对应的参考数据快照334c并且将该参考数据快照334c加载到高速缓存320中。

现在参考图3C。从高速缓存320中删除参考数据快照的决定可以基于以下两项之间的差:(i)包括在高速缓存查找组件332发送至请求处理器342的最近查找请求340a中的时间戳与(ii)和该参考数据快照相关联的有效时间范围的结束时间。如果该差大于预定阈值(其在本文中可以被称为清除阈值356),则高速缓存管理器348可以从高速缓存320删除该参考数据快照。

图3C示出了高速缓存查找组件332向请求处理器342发送具有时间戳t5的查找请求340a。与高速缓存320中的最旧的参考数据快照334a相关联的结束时间是t2。如果t5与t2之间的差大于清除阈值356,则该参考数据快照334a可以从高速缓存320删除。该参考数据快照334a以虚线示出,以指示其正在从高速缓存320删除。

图4图示了根据本公开的用于将事件流326与参考数据328联接的方法400的示例。方法400(以及随后讨论的其他方法)将关于先前描述的系统、设备、组件和数据中的一些进行描述。

方法400的步骤402涉及将多个参考数据快照334a-b从参考数据源330加载到高速缓存320中。该步骤402可以由参考数据管理器322执行,参考数据管理器322可以负责维护高速缓存320。参考数据快照334a-b表示特定时间点处的参考数据328。参考数据快照334a-b可以各自与有效时间范围相关联。例如,参照图3A-图3C中所示的示例,第一参考数据快照334a与有效时间范围t1-t2相关联。这意味着第一参考数据快照334a是时间t1与时间t2之间的参考数据328的准确表示。然而,第一参考数据快照334a可能不能准确地表示时间t1之前或时间t2之后的参考数据328。

方法400的步骤404涉及供应标点事件324,标点事件指示针对高速缓存320中的多个参考数据快照334a-b的时间有效性。每个标点事件324可以指示在高速缓存320中存在有效参考数据快照的最新时间点。例如,图3B示出具有时间戳t4的标点事件324a。这意味着在高速缓存320中存在有效参考数据快照334b直到时间t4为止但不超过时间t4。标点事件324可以由参考数据管理器322供应并且由一个或多个计算处理器312消耗。标点事件324可以响应于来自(多个)计算处理器312的数据请求346而被供应。

方法400的步骤406涉及基于标点事件324设提供逻辑屏障,逻辑屏障限制事件流326中的数据事件326a-g向高速缓存查找操作的流动。逻辑屏障可以由计算处理器312来实现。逻辑屏障可以实现为在事件流326与标点事件324之间执行的时间联合操作。时间联合操作在逻辑上先于计算处理器312中的高速缓存查找操作而被放置。换言之,例如,计算处理器312被配置为使得事件流326在由高速缓存查找组件332(其执行高速缓存查找操作)处理之前由时间联合组件338(其执行时间联合操作)处理。作为时间联合操作的结果,高速缓存查找操作仅针对在高速缓存320中存在有效参考数据快照的数据事件执行。

方法400的步骤408涉及针对事件流326中的被允许越过逻辑屏障的数据事件执行高速缓存查找操作。事件流326中的具有大于最近的标点事件324a中的时间戳的时间戳的每个数据事件被防止越过逻辑屏障到由高速缓存查找组件332执行的高速缓存查找操作。然而,事件流326中的具有小于或等于最近的标点事件324a中的时间戳的时间戳的每个数据事件被允许越过逻辑屏障并且继续进行由缓存查找组件332执行的缓存查找操作。再次参照如图3A-图3C中所示的示例,最近的标点事件324a被示出为具有时间戳t4。在这种情况下,由时间联合组件338执行的时间联合操作将允许分别与时间戳t1、t2、t3和t4相关联的事件326a-d继续进行至由高速缓存查找操作组件332执行的高速缓存查找操作。然而,与时间戳t5相关联的数据事件326e不会立即进行高速缓存查找操作。时间联合组件338将阻止该数据事件326e进行高速缓存查找操作,直到接收到具有(至少)时间戳t5的标点事件324,从而指示对于时间t5有效的参考数据快照已加载到高速缓存320中。

方法400的步骤410涉及基于事件流326中的数据事件326a-g的处理而动态更新高速缓存320的内容。随着事件流326中的事件在时间上进展,来自较晚的时间段的附加参考数据快照可以被添加至高速缓存320,并且不再需要的较旧的参考数据快照可以从高速缓存删除。

图5图示了用于基于对事件流326中的数据事件326a-g的处理来动态更新高速缓存320的内容的方法500的示例。方法500可以由参考数据管理器322执行。如上面所描述的,参考数据管理器322可以被包括在事件流处理系统100内的流处理节点108中。

方法500的步骤502涉及接收来自流处理节点108中的计算处理器312的数据请求346。计算处理器312可以被配置为以上述方式执行参考数据联接操作(包括时间联合操作和高速缓存查找操作)。计算处理器312可以被配置为将数据请求346发送至与执行参考数据联接操作有关的参考数据管理器322。

方法500的步骤504涉及响应于数据请求346而供应标点事件324。例如,参考数据管理器322可以被配置为使得无论何时参考数据管理器322接收到来自计算处理器312的数据请求346,参考数据管理器322通过向计算处理器312返回标点事件324来响应于数据请求346。如上面所讨论的,标点事件324包括指示在高速缓存320中存在有效参考数据快照的最晚时间的时间戳。

方法500的步骤506涉及至少部分地基于数据请求346来确定是否将一个或多个新的参考数据快照添加至高速缓存320。例如,当最近的标点事件324a中的时间戳(其代表在高速缓存320中存在有效参考数据快照的最新时间点)与关联于由计算处理器312发送的最近的数据请求346a的时间戳之间的差小于预定阈值(例如,加载阈值350)时,新的参考数据快照334c可以被添加至高速缓存320。

方法500的步骤508涉及接收来自计算处理器312的查找请求340。如上面所讨论的,当针对特定数据事件执行高速缓存查找操作时,计算处理器312向参考数据管理器322发送查找请求340。

方法500的步骤510涉及至少部分地基于查找请求340来确定是否从高速缓存320中删除较旧的参考数据快照。例如,当计算处理器312发送给参考数据管理器322的最近的查找请求340a中包括的时间戳与关联于参考数据快照334a的有效时间范围的结束时间之间的差大于预定阈值(例如,清除阈值356)时,可以从高速缓存320删除参考数据快照334a。

本文中所公开的用于执行参考数据联接操作的技术可以提供相对于已知方案的显著改进。例如,在用于将事件流与参考数据联接的一个已知方案中,不利用高速缓存。相反,联接操作器接收所有参考数据并且执行必要的操作。换句话说,参考数据可以被视为内部状态,以与事件流中的数据事件联接。然而,这种方案的缺陷是针对每个联接操作保留单独的参考数据副本。这需要大量的存储器,特别是当参考数据的大小非常大时。相比之下,因为本文中公开的技术不需要存储整个参考数据集的多个副本,所以它们需要显著更小的存储器。

根据不利用高速缓存的另一已知方案,可以相对于参考数据源本身执行输入/输出操作。然而,如本文中所公开的,经由高速缓存查找操作获取参考数据显著快于相对于参考数据源本身执行输入/输出操作,从而减少所涉及的延时量。

用于将事件流与参考数据联接的另一方案利用静态高速缓存。这样的方案不会遇到与前面两个方案相同的存储器或延时问题。然而,静态高速缓存的一个潜在问题是,当底层引用数据发生变化时,参考数据联接操作的结果可能不准确。如本文中所公开的,动态更新高速缓存提供准确的结果,同时有效地使用存储器并且实现低延时,即使是在参考数据的大小非常大的情况下也是如此。

图6图示了根据本公开的可以包括在计算系统600内的某些组件。

计算系统600包括处理器601。处理器601可以是通用单片或多片微处理器(例如,高级RISC(精简指令集计算机)机器(ARM))、专用微处理器(例如,数字信号处理器(DSP))、微控制器、可编程门阵列等。处理器601可以被称为中央处理单元(CPU)。尽管在图6的计算系统600中仅示出单个处理器601,但是在备选的配置中,可以使用处理器的组合(例如,ARM和DSP)。

计算系统600还包括与处理器601进行电子通信的存储器603。存储器603可以是能够存储电子信息的任何电子组件。例如,存储器603可以实现为包括它们的组合在内的随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光存储介质、RAM中的闪存设备、与处理器601一起被包括的板载存储器、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)存储器、寄存器等。

指令605和数据607可以被存储在存储器603中。指令605可以由处理器601可执行,以实现在本文中结合计算系统600所公开的方法、步骤、操作、动作或其他功能中的一些或全部。例如,指令605可以是由处理器601可执行的,以分别实现图4和图5中所示的方法400、500。执行指令605可以涉及使用存储在存储器603中的数据607。除非另有说明,否则本文中描述的模块和组件的各种示例中的任何示例可以部分或全部地实现为存储在存储器603中的指令605并且由处理器601执行。本文中描述的数据的各种示例中的任何示例可以在数据607之中,数据607被存储在存储器603中并且在由处理器601执行指令605期间被使用。

计算系统600还可以包括用于与其他电子设备通信的一个或多个通信接口609。(多个)通信接口609可以基于有线通信技术、无线通信技术或两者。通信接口609的一些示例包括通用串行总线(USB)、以太网适配器、根据电气和电子工程师协会(IEEE)802.11无线通信协议操作的无线适配器、无线通信适配器和红外(IR)通信端口。

计算系统600还可以包括一个或多个输入设备611以及一个或多个输出设备613。输入设备611的一些示例包括键盘、鼠标、麦克风、遥控设备、按钮、操纵杆、轨迹球、触摸板和光笔。通常包括在计算系统600中的一个特定类型的输出设备613是显示设备615。与本文所公开的实施例一起使用的显示设备615可以利用任何合适的图像投影技术,诸如液晶显示器(LCD)、发光二极管(LED)、气体等离子体、电致发光等。还可以提供显示控制器617,以用于将存储在存储器603中的数据607转换成显示设备615上所示的文本、图形和/或运动图像(视情况而定)。计算系统600还可以包括其他类型的输出设备613,诸如扬声器、打印机等。

计算系统600的各种组件可以通过一个或多个总线耦合在一起,总线可以包括电源总线、控制信号总线、状态信号总线、数据总线等。为了清楚起见,各种总线在图6中被图示出为总线系统619。

除非具体描述为以特定方式实现,否则本文所描述的技术可以以硬件、软件、固件或其任何组合来实施。被描述为模块、组件等的任何特征也可以在集成逻辑设备中一起实现或单独实现为分立但可互操作的逻辑设备。如果以软件实现,则这些技术可以至少部分地通过其上存储有计算机可执行指令的非暂态计算机可读介质来实现,当由至少一个处理器执行时,该计算机可执行指令执行在本文所公开的步骤、操作、动作或其他功能中的一些或全部。指令可以被组织成例程、程序、对象、组件、数据结构等,其可以执行特定任务和/或实现特定数据类型,并且其可以在各种实施例中根据需要进行组合或分布。

在不脱离权利要求的范围的情况下,本文所描述的方法的步骤、操作和/或动作可以彼此互换。换言之,除非所描述的方法的正常运行需要的步骤、操作和/或动作的特定顺序,否则可以在不脱离权利要求的范围的情况下修改特定步骤、操作和/或动作的顺序和/或使用。

术语“确定”(及其语法变体)涵盖多种动作,因此,“确定”可以包括运算、计算、处理、推导、调查、查找(例如,在表、数据库或其他数据结构中查找)、确认等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选取、选择、建立等。

术语“包括”、“包含”和“具有”旨在是包括性的,并且意味着除了所列元素之外可能还有其他元素。此外,应当理解,对本公开的“一个实施例”或“一实施例”的引用不旨在被解释为排除也结合了所述特征的另外的实施例的存在。例如,在兼容的情况下,关于本文中的实施例描述的任何元素或特征可以与本文中描述的任何其他实施例的任何元素或特征组合。

本公开可以在不脱离其精神或特征的情况下以其他特定形式实现。所描述的实施例被认为是说明性的而非限制性的。因此,本公开的范围由所附权利要求而不是由前述描述指示。在权利要求的等效含义和范围内的变化应包含在权利要求的范围内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献