减少数据流应用程序中的流延迟制造技术

技术编号:21958964 阅读:38 留言:0更新日期:2019-08-24 22:16
表征数据流应用程序的概要数据用于预测在数据流应用程序执行期间需要由处理元件检索的数据。响应于该预测,在需要它的处理元件的实际需求之前检索数据。预测可以至少部分地基于上游元组内容,并且可以包括其他历史数据检索模式。在一些实施例中,可以延迟预测数据的检索,以便及时检索数据。

Reducing flow latency in data flow applications

【技术实现步骤摘要】
【国外来华专利技术】减少数据流应用程序中的流延迟
本公开一般涉及流计算,并且具体地,涉及接收流数据并在接收到数据时处理数据的计算应用。
技术介绍
在二十世纪下半页,开始出现一种被称为信息革命的现象。虽然信息革命是一个比任何一个事件或机器更广泛的历史发展,但没有任何一个设备比数字电子计算机更能代表信息革命。计算机系统的发展无疑是一场革命。每年,计算机系统增长更快,存储更多数据,并为用户提供更多应用程序。现代计算机系统可用于支持各种应用,但一种常见用途是维护大型关系数据库,从中可获得信息。多个用户通常可以通过网络访问大型关系数据库,其中任何一个用户都可以向数据库查询信息,和/或更新数据库中的数据。数据库系统通常被配置为将存储数据的过程,与访问、操纵或使用存储在数据库中的数据的过程分开。更具体地说,数据库系统使用一种模型,在该模型中,在随后的查询和分析之前,首先在存储器中存储和索引数据。通常,数据库系统可能不适合于执行实时处理和分析流数据。特别是,数据库系统可能无法有效地或实时地存储、索引和分析大量的流数据。基于流的计算(也称为数据流)已被用于更有效地实时处理大量输入数据。在数据流应用程序中,数据通过称为“图”的“处理元件”的连接网络来移动,每个处理元件执行关于数据的一些功能。基于流的计算在范例上工作,其中所有数据在通过操作符图移动时是活动的。根据该范例,图中的每个处理元件具有执行其手头功能所需的所有数据,并且可以足够快地这样做以维持通过图的高速数据流。然而,处理元件有时需要从外部访问数据,即,在存储器或远程数据库中,有时称为查找操作的事件。发生这种情况时,在检索必要数据时处理元件必须等待。这种等待可能会严重降低流应用程序的性能。通常,等待通过操作符图具有连锁效应,导致其他处理元件不必要地等待数据和/或数据在流应用程序的各种缓冲区中备份。存在对用于管理大数据流的改进技术的需求,尤其是对于管理数据查找操作的改进数据流技术的需求。
技术实现思路
在数据流应用程序的当前和/或一个或多个先前执行实例期间从一个或多个先前时间间隔收集的概要数据用于预测在数据流应用程序的当前执行实例中将需要由处理元件检索的数据。响应于预测,在需要它的处理元件的实际需求之前检索数据。在一个或多个实施例中,预测至少部分地基于上游元组内容。即,在主题处理元件上游的数据流图中遇到的元组内的特定值集合可以用于预测主题处理元件稍后对某些数据的需求,例如,当元组到达主题处理元件时。在一个或多个实施例中,预测至少部分地基于数据流应用程序的历史数据检索模式。这种历史模式可以包括以下的任何一个或全部:(a)通常检索数据元件的时间/周;(b)特定事件发生后的时间;(c)存在某些条件;或(d)与其他数据检索的相关性。在一个或多个实施例中,对所需数据的预测可以包括需要数据的预测时间,并且可以延迟被预测为需要的数据的检索,以便及时检索数据。所需数据的预测不一定是完美的。如果预测为需要的数据实际上不需要,则数据流应用程序将继续正常执行,并且唯一的成本是检索未使用数据的小开销。如果实际上需要的数据但未被预测,则将根据现有技术中的处理元件的要求来检索数据。通过预测数据流应用程序中的一个或多个处理元件所需的至少一些数据,并且在数据的处理元件对数据的需求之前将数据检索到处理元件中,减少了处理元件的空闲或等待数据,提高了数据流应用程序的执行效率。本专利技术的实施例,关于其结构和操作,可以参考附图最佳地理解,其中相同的附图标记表示相同的部分,并且其中:附图说明图1示出了根据各种实施例的被配置为执行流计算应用的计算基础设施;图2是根据各种实施例的代表性通用计算机系统的主要硬件组件的高级框图,其可用于执行若干功能元件中的任何功能元件的角色;图3是根据各种实施例的图1的计算节点的存储器中的某些软件组件的概念图示;图4是根据各种实施例的流数据应用缓冲器中的一组元组的概念表示;图5是根据各种实施例的图1的管理系统的存储器中的某些软件组件的概念图示;图6是根据各种实施例的图1的编译器系统的存储器中的某些软件组件的概念图示;图7示出了根据各种实施例的流计算应用的操作符图;图8是根据各种实施例的数据库服务器计算机系统的存储器中的主要软件组件的概念图示;图9是根据各种实施例的被改变以支持简档分析的数据流应用程序的改变元组的概念表示;图10是根据各种实施例的在高级别示出收集数据流应用程序的简档数据的过程的流程图;图11是根据各种实施例的示例性查找事件概要记录集的结构的概念图示;图12是根据各种实施例的在高级别示出分析简档数据以产生一组查找事件概要记录的过程的流程图;图13是根据各种实施例的在高级别示出生成或更新管理执行期间的查找操作的状态数据结构的过程的流程图;图14是示出根据各种实施例的数据流应用程序的示例性处理元件的执行过程的流程图。具体实施方式流处理概述基于流的计算和基于流的数据库计算正在成为数据库系统的开发技术。提供的产品允许用户创建在流数据到达数据库文件之前处理和查询流数据的应用程序。利用这种新兴技术,用户可以指定处理逻辑,以便在“飞行中”时应用于入站数据记录,结果可在非常短的时间内获得,通常只需几分之一秒。使用这种类型的处理构建应用程序开辟了一种新的编程范例,其会允许开发各种创新的应用程序、系统和流程,并为应用程序编程人员和数据库开发人员带来新的挑战。在流计算应用中,流操作符彼此连接,使得数据从一个流操作符流向下一个流操作符(例如,通过TCP/IP套接字)。当流操作符接收数据时,它可以执行操作,例如分析逻辑,其可以通过添加或减去属性来改变元组,或者更新元组内的现有属性的值。分析逻辑完成后,然后将新元组发送到下一个流操作符。通过创建可执行文件(即处理元件)以及在多个节点上复制处理元件并在它们之间进行负载平衡来跨节点分布应用程序,从而实现可伸缩性。流计算应用程序中的流操作符可以融合在一起以形成可执行的处理元件。这样做允许处理元件共享公共处理空间,导致流操作符之间的通信比现有的使用进程间通信技术(例如,使用TCP/IP套接字)通信快得多。此外,可以从表示通过流计算应用程序的数据流的操作符图动态地插入或移除处理元件。特定流操作符与其他流操作符可以驻留或可以不驻留在相同的操作系统进程内。另外,相同操作符图中的流操作符可以托管在不同节点上,例如,在不同计算节点上或在计算节点的不同核上。数据以“元组”的形式从一个流操作符流向另一个流操作符。元组是与实体相关联的一个或多个属性的序列。属性可以是各种不同类型中的任何一种,例如整数、浮点数、布尔值、字符串等。可以对属性进行排序。除了与实体相关联的属性之外,元组还可以包括元数据,即关于元组的数据。可以通过向其添加一个或多个附加属性或元数据来扩展元组。如这里所使用的“流”或“数据流”指的是元组序列。通常,流可以被认为是元组的伪无限序列。流操作符和处理元件接收并输出元组。然而,与流操作符或处理元件接收的与特定实体相对应的输入元组通常不被认为是由流操作符或处理元件输出的相同元组,即使输出元组与输入元组对应于相同的实体或数据也是如此。输出元组无需以某种方式从输入元组来更改。尽管如此,输出元组可以由流操作符或处理元件以某种方式改变。可以添加、删除或修改属性或元数据。例如,元组通常具本文档来自技高网
...

【技术保护点】
1.一种计算机执行的方法,包括:使用查找预测概要数据来识别数据流应用程序执行期间发生的至少一个查找预测事件,每个查找预测事件预测将需要由所述数据流应用程序的相应处理元件检索的相应数据;响应于在所述数据流应用程序的当前执行实例期间,检测到由所述使用查找预测概要数据识别的查找预测事件的发生以识别至少一个查找预测事件,在所述数据流应用程序的当前执行实例期间,启动对所述查找预测事件预测的所述相应数据的检索,该相应数据需要由所述数据流应用程序的相应处理元件检索,其中在相应处理元件确定需要相应的数据之前执行所述相应数据的启动检索。

【技术特征摘要】
【国外来华专利技术】2017.01.13 US 15/406,2961.一种计算机执行的方法,包括:使用查找预测概要数据来识别数据流应用程序执行期间发生的至少一个查找预测事件,每个查找预测事件预测将需要由所述数据流应用程序的相应处理元件检索的相应数据;响应于在所述数据流应用程序的当前执行实例期间,检测到由所述使用查找预测概要数据识别的查找预测事件的发生以识别至少一个查找预测事件,在所述数据流应用程序的当前执行实例期间,启动对所述查找预测事件预测的所述相应数据的检索,该相应数据需要由所述数据流应用程序的相应处理元件检索,其中在相应处理元件确定需要相应的数据之前执行所述相应数据的启动检索。2.如权利要求1所述的计算机执行的方法,其中所述查找预测概要数据包括通过从所述数据流应用程序的至少一个执行实例收集跟踪数据而获得的数据,以及分析所收集的跟踪数据以产生查找预测概要数据。3.如权利要求2所述的计算机执行的方法,其中所述查找预测概要数据包括多个查找事件概要记录,每个查找事件概要记录对应于所述数据流应用程序内的相应元组和相应元组的相应位置,以及包含在所述数据流应用程序内的相应位置处由投影所述相应元组产生的查找操作的相应数据。4.如权利要求3所述的计算机执行的方法,其中每个所述查找事件概要记录包含至少一个与投影的查找操作相关联的概率值。5.如权利要求3所述的计算机执行的方法,其中每个所述查找事件概要记录包含用于确定在检测到对应的查找预测事件之后是否可以延迟查找操作的延迟数据。6.如权利要求1所述的计算机执行的方法,其中所述查找预测事件包括在所述数据流应用程序的操作符图中的指定位置处检测到的指定类型的元组。7.如权利要求6所述的计算机执行的方法,其中所述查找预测事件还包括指定范围内的属性值,该属性是在所述操作图中的所述指定位置处检测到的所述指定类型的元组的属性。8.如权利要求6所述的计算机执行的方法,其中所述查找预测事件还包括至少一个外部状态变量的值。9.如权利要求1所述的计算机执行的方法,还包括:对于在所述数据流应用程序执行期间发生的至少一个查找预测事件中的每一个,确定在检测到对应的查找预测事件之后是否可以延迟相应的查找操作。10.如权利要求9所述的计算机执行的方法,其中,所述对于在所述数据流应用程序执行期间发生的至少一个查找预测事件中的每一个,确定在检测到对应的查找预测事件之后是否可以延迟相应的查找操作,在检测到所述相应的查找预测事件之后确定是否可以延迟所述相应的查找操作;其中至少一些所述查找预测事件对应于第一查找操作;以及其中,所述计算机执行的方法还包括:使用在检测到所述相应的查找预测事件之后,确定是否可以延迟所述相应的查找操作的确定,以选择对应于所述第一查找操作的至少一些查找预测事件中的至少一个,以引起第一查找操作的启动,并禁用对应于所述第一查找操作的至少一些查找预测事件中的至少一个,防止引起所述第一查找操作的启动。11.一种非暂时性计算机可读介质,其上记录有具有多个计算机可执行指令的计算机程序,其中所述计算机程序在由至少一个计算机系统执行时,使所述至少一个计算机系统执行的动作包括:使用查找预测概要数据来识别数据流应用程序执行期间发生的至少一个查找预测事件,每个查找预测事件预测将需要由所述数据流应用程序的相应处理元件检索的相应数据;响应于在所述数据流应用程序的当前执行实例期间,检测到由所述使用查找预测概要...

【专利技术属性】
技术研发人员:M·布兰森J·桑托索索E·L·巴斯尼斯D·贝赫
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

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

1