并行地执行连续事件处理(cep)查询的制作方法

文档序号:9355193阅读:331来源:国知局
并行地执行连续事件处理(cep)查询的制作方法
【技术领域】
[0001]本申请涉及对连续事件处理(CEP)查询的处理。
【背景技术】
[0002]数据库在传统上已经被用于需要存储数据以及对存储的数据进行查询的能力的应用。因此现有的数据库最适合在有限存储的数据集上运行查询。但是,传统的数据库模型不是很适合于越来越多的在其中数据作为数据事件流而不是有界的数据集被接收的现代应用。数据流也被称为事件流,其特征在于实时、潜在地连续的事件序列。因此数据流或事件流代表无界的数据集。生成数据流的源的示例包括被配置为发送传感器读数序列的传感器和探测器(例如,RFID传感器、温度传感器等)、金融自动报价机、发送网络状态更新的网络监控和流量管理应用、点击流分析工具以及其他。
[0003]CEP是一种对处理事件流中的数据有用的技术。CEP是高度有状态的。CEP涉及连续地接收事件,并且在那些事件当中找到某种模式。因此CEP涉及大量的状态维护。由于CEP涉及对如此多状态的维护,所以将CEP查询应用到事件流内的数据的处理总是单线程的。在计算机程序设计中,单线程是一次处理一个命令。
[0004]CEP查询处理通常涉及针对事件流内指定的事件对查询的连续执行。例如,为了连续地观测在最近一小时内的股票的平均价格可以使用CEP查询处理。在这样的情况下,针对包含其中每个事件指示在不同时间股票的当前价格的多个事件的事件流,可以执行CEP查询处理。查询可以集合最后一个小时内的股票价格并且然后计算那些股票价格的平均值。查询可以输出每个计算的平均值。随着价格的一小时长窗口的移动,查询可以被连续地执行,并且查询可以输出各种不同的平均股票价格。
[0005]由于总是在单个线程内执行这样的CEP查询处理,所以CEP查询处理的伸缩可能变得有问题。当计算机具有能够并行地执行操作的多个处理器时、或当计算系统具有能够并行地执行操作的许多节点时,这样的机器和系统的并行处理能力在执行CEP查询处理时可能被浪费。
[0006]另外,在执行CEP查询期间,有时错误可能出现。传统上,当在执行CEP查询期间出现错误时,该错误仅仅使得CEP查询停止执行。连续查询语言(CQL)从结构化查询语言(SQL)发展而来。在SQL中,通常对数据集执行一次查询,而不是对连续的事件流中的事件连续地执行查询。由于SQL查询通常仅被执行一次,所以SQL查询的失败通常通过让数据库管理员手动地调查问题、并且然后让数据库管理员对数据库或查询手动地做出为解决问题所必需的任何改变、并且然后让数据库管理员重新执行查询来进行补救。相反地,可以对事件流中的事件连续地执行CQL查询。使得CQL查询停止执行的错误可能仅仅是因为在事件流内的单个无效事件。令人遗憾地,即使在事件流中的剩余事件有效,只要CQL查询保持停止,那些事件也不会被CQL查询处理。反而,那些事件可能仅仅随着事件流随时间继续流动而丢失。除非管理员手动地重新启动CQL查询,否则CQL查询不会被重新启动。通常地,管理员将仅仅重新启动CQL查询,而根本不会改变CQL查询、不会认识到错误是由于无效事件造成的。在这样的情况下,CQL查询的停止,以及它伴随产生的事件数据的丢失是令人遗憾的并且不必要的。

【发明内容】

[0007]本发明的某些实施例涉及用于确定如何以及何时可以以并行的方式处理CEP查询,以使得多个执行线程可以并行地执行彼此并行的CEP查询的操作中的至少一些操作的技术。根据一种技术,用户可以指示CEP查询处理器试图以并行的方式执行CEP查询。CEP查询处理器响应地基于可以取决于继承和操作类型的某些约束确定是否可以使CEP查询的执行或其部分并行地进行。基于此确定,CEP查询处理器可以针对事件流内的相同事件并行执行CEP查询中的至少某些部分。
[0008]本发明的某些实施例涉及用于将故障和故障处理的概念增加到CEP查询的执行的技术。通过把故障处理技术引入到CEP查询(CQL查询是CEP查询的一种)的处理,用户能够指示CEP查询处理器以自定义的方式响应故障,该自定义的方式不一定涉及与故障发生有关的CEP查询的停止。例如,故障可能由临时的问题造成。在这样的情况下,CEP查询处理器可以被指示或被编程以忽略故障并且允许针对事件流的剩余部分继续执行CEP查询。可替换地,如果故障是由CEP查询自身的问题造成的,那么CEP查询处理器可以被指示或被编程以将故障传播通过查询处理系统直到故障最终使得有问题的CEP查询被停止。
[0009]本发明的某些实施例涉及用于处理事件数据流的装置,所述装置包括:用于将连续事件处理(CEP)查询分解为多个单独操作符的部件;用于确定针对多个单独操作符内的每个特定操作符的单独约束的部件;用于至少部分地基于针对多个单独操作符确定的约束确定针对CEP查询的约束的部件;用于基于针对CEP查询的约束确定是否可以以并行方式执行CEP查询的至少一部分的部件;以及用于响应于确定可以以并行的方式执行CEP查询的至少一部分来产生并行地处理来自事件流的事件的多个执行线程的部件。
[0010]在示例中,该装置还包括用于至少部分地基于与事件流相关联的约束确定针对CEP查询的约束的部件。
[0011 ] 在示例中,用于确定针对多个单独操作符内的每个特定操作符的单独约束的部件包括用于至少部分地基于特定操作符从中接收输入的一个或多个其它操作符的一个或多个约束确定针对特定操作符的约束的部件。
[0012]在示例中,用于确定针对多个单独操作符内的每个特定操作符的单独约束的部件包括用于至少部分地基于特定操作符的操作类型是否是过滤操作类型来确定针对特定操作符的约束的部件。
[0013]在示例中,用于确定针对多个单独操作符内的每个特定操作符的单独约束的部件包括用于通过确定约束集合内最受限的约束来确定针对特定操作符的约束的装置,所述约束集合包括(a)特定操作符从中接收输入的所有其它操作符的约束和(b)与特定操作符的操作类型相关联的约束。
[0014]在示例中,该装置还包括:用于将以下合并成为单个共享操作符的部件,(a)由处理事件流中的事件的第一 CEP查询使用的第一操作符,和(b)由也处理事件流中的事件的第二 CEP查询使用的第二操作符,所述合并响应于确定第一操作符和第二操作符都执行特定类型的操作。
[0015]在示例中,该装置还包括:用于将以下合并成为单个共享操作符的部件,(a)由处理事件流中的事件的第一 CEP查询使用的第一操作符,和(b)由也处理事件流中的事件的第二 CEP查询使用的第二操作符,所述合并响应于确定第一操作符和第二操作符都执行特定类型的操作;其中用于确定针对多个单独操作符内的每个特定操作符的单独约束的部件包括用于至少部分地基于共享操作符的约束确定针对从共享操作符中接收输入的第三操作符的约束的部件;其中用于确定针对多个单独操作符内的每个特定操作符的单独约束的部件包括用于至少部分地基于共享操作符的约束确定针对从共享操作符中接收输入的第四操作符的约束的部件;其中第三操作符由第一 CEP查询使用并且不由第二 CEP查询使用;其中第四操作符由第二 CEP查询使用并且不由第一 CEP查询使用。
[0016]—种用于处理事件数据流的系统,所述系统包括:被配置为将连续事件处理(CEP)查询分解成为多个单独操作符的查询分解单元;被配置为确定针对多个单独操作符内的每个特定操作符的单独约束的第一约束确定单元;被配置为至少部分地基于第一约束确定单元针对多个单独操作符确定的约束来确定针对CEP查询的约束的第二约束确定单元;以及被配置为基于针对CEP查询的约束确定是否可以以并行方式执行CEP查询的至少一部分的执行确定单元;以及被配置为响应于确定可以以并行的方式执行CEP查询的至少部分来产生并行地处理来自事件流的事件的多个执行线程的线程产生单元。
[0017]在示例中,系统还包括被配置为至少部分地基于与事件流相关联的约束确定针对CEP查询的约束的第三约束确定单元。
[0018]在示例中,第一约束确定单元被配置为至少部分地通过至少部分地基于特定操作符从中接收输入的一个或多个其它操作符的一个或多个约束确定针对特定操作符的约束,来确定针对多个单独操作符内的每个特定操作符的单独约束。
[0019]在示例中,第一约束确定单元被配置为至少部分地通过至少部分地基于特定操作符的操作类型是否是过滤操作类型确定针对特定操作符的约束,来确定针对多个单独操作符内的每个特定操作符的单独约束。
[0020]在示例中,第一约束确定单元被配置为至少部分地通过经由确定约束集合内最受限的约束来确定针对特定操作符的约束,来确定针对多个单独操作符内的每个特定操作符的单独约束,所述约束集合包括(a)特定操作符从中接收输入的所有其它操作符的约束和(b)与特定操作符的操作类型相关联的约束。
[0021]在示例中,系统还包括被配置为将以下合并成为单个共享操作符的合并单元,(a)由处理事件流中的事件的第一 CEP查询使用的第一操作符,和(b)由也处理事件流中的事件的第二 CEP查询使用的第二操作符,所述合并响应于确定第一操作符和第二操作符都执行特定类型的操作。
[0022]在示例中,系统还包括被配置为将以下合并成为单个共享操作符的合并单元,(a)由处理事件流中的事件的第一 CEP查询使用的第一操作符,和(b)由也处理事件流中的事件的第二 CEP查询使用的第二操作符,所述合并响应于确定第一操作符和第二操作符都执行特定类型的操作;其中第一约束确定单元还包括:被配置为至少部分地基于共享操作符的约束确定针对从共享操作符中接收输入的第三操作符的约束的第一子单元;和被配置为至少部分地基于共享操作符的约束确定针对从共享操作符中接收输入的第四操作符的约束的第二子单元;其中第三操作符由第一 CEP查询使用并且不由第二 CEP查询使用;其中第四操作符由第二 CEP查询使用并且不由第一 CEP查询使用。
[0023]当参考下列说明书、权利要求书和附图时,上述连同其它特征和实施例将变得更清晰。
【附图说明】
[0024]图1是说明根据本发明的实施例、用于基于CEP查询的操作符确定是否可以以并行方式执行CEP查询的示例技术的流程图。
[0025]图2是说明根据本发明的实施例、用于确定在操作符的有向图中的特定操作符的并行性约束的示例技术的流程图。
[0026]图3是说明根据本发明的实施例、用于将操作符增加到CEP查询的开始处以便允许或强制执行在CEP查询的执行中的最大可允许并行性的示例技术的流程图。
[0027]图4是说明根据本发明的实施例、CEP查询处理器的用户注册的故障处理器可以借以处理由CEP查询的操作符抛出的故障的示例技术的流程图。
[0028]图5是说明根据本发明的实施例可以使用的系统环境的组件的简化框图;
[0029]图6是说明根据本发明的实施例可以使用的计算机系统的简化框图;以及
[0030]图7是根据本发明的实施例的系统的功能框图。
【具体实施方式】
[0031]在下面的描述中,为了说明的目的,具体的细节被阐述以便提供对本发明的实施例的深入理解。但是,明显的是本发明可以在没有这些具体细节的情况下被实施。
[0032]在本发明的一个实施例中,CEP查询处理器可以评估CEP查询的各种组件。基于此评估,CEP查询处理器可以将CEP查询分解成为单独的片段。CEP查询处理器然后可以评估CEP查询的每个这样的片段以便确定是否可以以并行的方式处理那个片段。基于此评估的结果,可以以并行的方式处理CEP查询的某些片段一使得CEP查询的那些片
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1