CN104094232A - 流式数据系统中的处理单元管理 - Google Patents

流式数据系统中的处理单元管理 Download PDF

Info

Publication number
CN104094232A
CN104094232A CN201380007312.9A CN201380007312A CN104094232A CN 104094232 A CN104094232 A CN 104094232A CN 201380007312 A CN201380007312 A CN 201380007312A CN 104094232 A CN104094232 A CN 104094232A
Authority
CN
China
Prior art keywords
processing unit
clone
data
execution route
subgraph
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
Application number
CN201380007312.9A
Other languages
English (en)
Other versions
CN104094232B (zh
Inventor
J.桑托苏索
B.舒尔兹
R.K.克拉迪克
M.布兰森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104094232A publication Critical patent/CN104094232A/zh
Application granted granted Critical
Publication of CN104094232B publication Critical patent/CN104094232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Multi Processors (AREA)

Abstract

流应用可能低效地使用执行数据流的处理单元的硬件资源。例如,计算节点可以托管四个处理单元,并且使用CPU来执行每一个。然而,在该计算节点上的其他CPU可能保持空闲。为了利用这些可用的硬件资源,流编程人员可以识别可以被克隆的一个或多个处理单元。该克隆的处理单元可以用于产生与包括原始处理单元的执行路径并行的不同执行路径。因为克隆的处理单元与原始处理单元包含相同的操作子,所以先前仅流经原始处理单元的数据流可以被分离并通过原始和克隆的处理单元来发送。以这种方式,并行执行路径可以使用未充分利用的硬件资源来增大数据流的吞吐量。

Description

流式数据系统中的处理单元管理
技术领域
本发明的实施例总体上涉及流计算应用。具体地说,所公开的实施例公开了分布处理单元或操作子(operator)以在流计算环境中未充分利用的硬件资源。
背景技术
随着计算机数据库已经变得极为复杂,对于数据库系统设置的计算要求也已经以快速的步调增加。数据库系统通常被配置为将存储数据的处理与访问、操纵或使用在数据库中存储的数据的操作分离。更具体地,数据库使用下述模型:其中,数据首先被存储,然后被添加索引并且最后被查询。然而,该模型不能满足一些实时应用的性能要求。例如,数据库系统可以接收和存储进入数据的速率限制了可以处理或以其他方式评估多少数据。这继而可以限制数据库应用实时地处理大量数据的能力。
发明内容
本发明的实施例提供了一种用于处理数据的方法、系统和计算机程序产品。所述方法、系统和计算机程序接收将由包括一个或多个操作子的多个处理单元处理的流式数据。所述操作子通过一个或多个计算机处理器的操作来处理所接收的数据的至少一部分。所述方法、系统和计算机程序建立多个操作子的操作子图。所述操作子图定义至少一个执行路径,在该执行路径中,多个操作子的第一操作子被配置为从至少一个上游操作子接收数据元组,并且向至少一个下游操作子发送数据元组。所述方法、系统和计算机程序相对于预定义的标准识别在执行所述操作子的计算系统中未充分利用的硬件资源。所述方法、系统和计算机程序克隆所述多个处理单元的第一处理单元,使得克隆的处理单元与所述第一处理单元包括相同的一个或多个操作子。所述方法、系统和计算机程序在包括克隆的处理单元的第一执行路径中处理所接收的流式数据,所述第一执行路径与包括所述第一处理单元的第二执行路径并行地执行。此外,克隆的处理单元使用所述未充分利用的硬件资源来处理所接收的流式数据。
在另一个实施例中,一种接收将被包括一个或多个操作子的多个处理单元处理的流式数据的方法。所述操作子通过一个或多个计算机处理器的操作来处理所接收的数据的至少一部分。所述方法建立多个操作子的操作子图。所述操作子图定义至少一个执行路径,在该执行路径中,多个操作子的第一操作子被配置为从至少一个上游操作子接收数据元组,并且向至少一个下游操作子发送数据元组。所述方法相对于预定义的标准识别在执行所述操作子的计算系统中的未充分利用的硬件资源。所述方法也从多个处理单元的第一处理单元去熔合第一操作子,所述第一处理单元包括多个操作子。所述方法将所述第一操作子熔合到所述多个处理单元的第二处理单元内。在熔合所述第一操作子后,所述方法使用第一操作子处理所接收的流式数据的至少一部分,其中,所述第一操作子使用所述未充分利用的硬件资源来处理所接收的流式数据的所述部分。
附图说明
为了获得并可以详细理解上述方面,可以通过参考附图来提供上面简短汇总的本发明的实施例的更具体的说明。
然而,应当注意,附图仅图示了本发明的典型实施例,并且因此不被认为限制其范围,因为本发明可以允许其他等价有效的实施例。
图1A-1B图示了根据本发明的实施例的、被配置为执行流计算应用的计算基础架构。
图2是根据本发明的一个实施例的图1A-1B的计算节点的更详细视图。
图3是根据本发明的一个实施例的图1A-1B的服务器管理系统的更详细视图。
图4是图示根据本发明的一个实施例的、用于在操作子图中克隆处理单元的技术的流程图。
图5A-5C图示了根据本发明的实施例的、克隆处理单元以建立并行执行路径。
图6A-6B图示了根据本发明的实施例的、向一个或多个计算节点上的CPU分发克隆处理单元。
图7A-7B图示了根据本发明的实施例的、克隆在单个执行路径中的多个处理单元以产生一个或多个并行执行路径。
图8A-8D图示了根据本发明的实施例的、去熔合(unfuse)和向多个CPU上分发处理单元的操作子。
为了有利于理解,在可能时,已经使用相同的附图标号来指定对于附图公共的相同元件。考虑在一个实施例中公开的元件可以有益地用在其他实施例上,而不再复述。
具体实施方式
基于流的计算和基于流的数据库计算正在作为用于数据库系统的开发中的技术而出现。可获得允许用户建立应用的产品,该应用在流式数据到达数据库文件之前处理和查询该流式数据。使用该正在出现的技术,用户可以指定处理逻辑以在入站(inbound)数据记录“在飞行(in flight)”时应用到该入站数据记录,并且在经常以毫秒计的极短的时间量中可获得结果。使用该类型的处理构造应用已经开辟了新的编程范例,其将考虑大量创新的应用、系统和处理被开发,并且对于应用编程人员和数据库开发者呈现了新的挑战。
在流计算应用中,操作子彼此连接,使得数据从一个操作子向下一个(例如,通过TCP/IP套接字)流动。通过下述方式来达到可伸缩性:通过建立可执行体(executable)(即,处理单元)来在节点上分布应用,并且在多个节点上复制处理单元,并且在它们之间执行负载平衡。流计算应用中的操作子可以被熔合在一起,以形成可执行的处理单元。这样做允许处理单元共享公共的处理空间,导致比使用处理之间通信技术(例如,使用TCP/IP套接字)可获得的快得多的操作子之间的通信。此外,处理单元可以动态地插入表示数据流经流计算应用的操作子图中或从中移除。
而且,流应用可能低效地使用执行数据流的处理单元的硬件资源。例如,计算节点可以托管(host)四个处理单元,并且使用CPU来执行每一个。然而,在该计算节点上的其他CPU可能保持空闲。为了利用这些可用的硬件资源,流编程人员或开发者可以识别可以被克隆的一个或多个处理单元。该克隆的处理单元可以用于产生与包括原始处理单元的执行路径并行的不同执行路径。因为克隆的处理单元与原始处理单元包含相同的操作子,所以先前仅流经原始处理单元的数据流可以被分离并通过原始和克隆的处理单元来发送。以这种方式,该并行执行路径可以使用未充分利用的硬件资源来增大数据流的吞吐量。
在另一个实施例中,处理单元的操作子可以被分布以利用可用的计算机硬件。例如,在检测到空闲CPU后,流式应用可以将处理单元中的操作子分离,并且将它们置于多个处理单元中,其中,向空闲的CPU分配了所述处理单元的一个或多个。
下面,参考本发明的实施例。然而,应当明白,本发明不限于特定的所述实施例。相反,考虑下面的特征和元素的任何组合(不论是否与不同的实施例相关)来实现和实施本发明。而且,虽然本发明的实施例可以相对于其他可能的解决方案和/或相对于现有技术实现优点,但是是否通过给定的实施例来实现特定的优点不是本发明的限制。因此,下面的方面、特征、实施例和优点仅是说明性的,并且不是所附的权利要求的所考虑的元素或限制,除非在权利要求中明确地说明。同样,参考“本发明”不应当被解释为在此公开的任何发明主题的一般化,并且不应当被认为是所附的权利要求的元素或限制,除非在权利要求中明确地说明。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、设备或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、设备或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、设备或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务供应商来通过因特网连接)。
下面将参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理设备的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理设备的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的设备。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理设备、或其他装置以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把这些计算机程序指令加载到计算机、其他可编程数据处理装置或其他设备上,以使得在该计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在该计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或多个方框中指定的功能/行为的处理。
本发明的实施例可以通过云计算基础架构被提供到终端用户。云计算通常指的是经由网络来提供可伸缩计算资源作为服务。更正式地,云计算可以被定义为计算能力,该计算能力提供在计算资源和其底层技术架构(例如,服务器、存储器、网络)之间的抽取,以使能对于可配置的计算资源的共享池的方便的、根据需要的网络访问,该可配置的计算资源的共享池可以以最小的管理精力或服务供应商交互被迅速地提供和释放。因此,云计算允许用户访问在“云”中的虚拟计算资源(例如,存储器、数据、应用和甚至完整的虚拟化计算系统),而不考虑用于提供该计算资源的底层物理系统(或那些系统的位置)。
通常,在每次使用付费的基础上向用户提供云计算资源,其中,仅对于实际使用的计算资源(例如,由用户使用的存储空间的量或由用户例示的多个虚拟化系统)向用户收费。用户可以在任何时间并且从因特网上的任何位置访问在该云中驻留的任何资源。在本发明的上下文中,用户可以访问在云中可获得的应用或相关数据。例如,用于建立流计算应用的节点可以是由云服务供应商托管的虚拟机。这样,允许用户从附接到与云连接的网络(例如,因特网)的任何计算系统访问该信息。
图1A-1B图示了根据本发明的一个实施例的、被配置为执行流计算应用的计算基础架构。如所示的,计算基础架构100包括管理系统105和多个计算节点1301-4——即,主机——它们使用一个或多个通信设备120通信地彼此耦接。通信设备120可以是服务器、网络或数据库,并且可以使用特定的通信协议在计算节点1301-4之间传送数据。虽然未示出,但是计算节点1301-4可以具有内部通信设备,用于在位于同一计算节点130上的处理单元(PE)之间传送数据。
管理系统105包括操作子图132和流管理器134。如下面更详细描述的,操作子图132表示从一个或多个源操作子开始直到一个或多个信宿(sink)操作子的流应用。该从源至信宿的流在此通常也被称为执行路径。虽然图1B抽取地示出连接的PE,但是操作子图132可以包括在相同PE或不同PE内的操作子之间的数据流。通常,处理单元从流接收N元组的数据属性,并且将N元组的数据属性发送到流中(除了其中流终止的信宿操作子或其中流开始的源操作子之外)。
当然,由处理单元接收的N元组不必是向下游发送的相同的N元组。另外,PE可以被配置为以其他格式来接收或发送元组(例如,PE或操作子可以交换被标记为XML文档的数据)。而且,在PE内的每一个操作子可以被配置为对接收到的元组执行任何形式的数据处理功能,包括例如向数据库表写入或执行诸如数据连接(join)、分割(split)、读取等的其他数据库操作以及执行其他数据分析功能或操作。
流管理器134可以被配置为监控在计算节点1301-4上运行的流计算应用以及改变操作子图132的部署。流管理器134可以将PE从一个计算节点130移动到另一个,以例如管理在计算基础架构100中的计算节点130的处理负载。此外,流管理器134可以通过插入、移除、熔合、去熔合或否则修改在计算节点1301-4上运行的处理单元和操作子(或什么数据元组流向处理单元)来控制流计算应用。流计算应用的一个示例是流(注意,是在许多世界范围的管辖区域中注册的国际商业机器公司的商标)。
图1B图示了包括在计算节点1301-4上运行的10个处理单元(标注为PE1-PE10)的示例操作子图。处理单元由一个或多个操作子构成,该一个或多个操作子起被熔合到一起成为具有其自身的处理ID(PID)和内存空间的独立运行的处理。如果两个(或更多个)处理单元独立地运行,则可以使用“传输”(例如,网络套接字、TCP/IP套接字或共享内存)发生处理间的通信。然而,当操作子被熔合在一起时,熔合的操作子可以使用更快的通信技术,以在每一个处理单元中的操作子之间传送元组。
如所示,操作子图在源135(其流入标注为PE1的处理单元内)处开始,并且在信宿1401-2(其从标注为PE6和PE10的处理单元流至)处结束。计算节点1301包括处理单元PE1、PE2和PE3。源135流入处理单元PE1,处理单元PE1继而发送被PE2和PE3接收的元组。例如,PE1可以划分在元组中接收的数据属性,并且向PE2传送一些数据属性而向PE3传送其他数据属性。流到PE2的数据被PE2中包含的操作子处理,并且作为结果的元组随后被发送到计算节点1302上的PE4。同样,由PE4发送的数据元组流到信宿PE61401。类似地,从PE3流到PE5的数据元组也到达信宿PE61401。因此,除了作为这个示例操作子图的信宿之外,PE6可以被配置为执行连接操作,以组合从PE4和PE5接收的元组。这个示例操作子图还示出了从PE3向计算节点1303上的PE7流动的数据元组,计算节点1303本身示出了数据元组流到PE8并且循环回到PE7。从PE8发送的数据元组流到计算节点1304上的PE9,计算节点1304继而发送将由信宿PE101402处理的元组。
因为处理单元是熔合的操作子的集合,所以将操作子图描述为在特定操作子之间的执行路径同样是正确的,该执行路径可以包括到在同一处理单元内的不同操作子的执行路径。为了清楚,图1B图示了在处理单元之间的执行路径。
而且,虽然在流计算应用的情境中描述了本发明的实施例,但是这不是唯一与本公开相关的情境。相反,这样的描述没有限制,并且仅用于说明性目的。当然,本领域内的普通技术人员将认识到,本发明的实施例可以被配置为使用能够执行在此所述的功能的任何计算机系统或应用来运行。例如,本发明的实施例可以被配置为使用标准数据库处理应用在成群集(clustered)环境中运行。
图2是根据本发明的一个实施例的、图1A-1B的计算节点130的更详细视图。如所示,计算节点130非限制地包括至少一个CPU205、网络接口215、互连220、内存225和存储器230。计算节点130还可以包括I/O设备接口210,用于将I/O设备212(例如,键盘、显示器和鼠标设备)连接到计算节点130。
每一个CPU 205取回并执行在内存225中存储的编程指令。类似地,CPU205存储和取回在内存225中驻留的应用数据。互连220用于在每一个CPU205、I/O设备接口210、存储器230、网络接口215和内存225之间传送编程指令和应用数据。CPU205被包括以表示单个CPU、多个CPU和具有多个处理核的单个CPU等。在一个实施例中,PE235被指定为仅由一个CPU205执行,虽然在其他实施例中,PE235的操作子240可以包括在多个CPU205上执行的一个或多个线程。内存225一般被包括以表示随机存取存储器(例如,DRAM或快闪)。诸如硬盘驱动器、固态设备(SSD)或快闪存储器驱动器的存储器230可以存储非易失性数据。
在这个示例中,内存225包括多个处理单元235。每一个PE235包括被熔合在一起的操作子240的集合。如上所述,每一个操作子240可以提供一小块的代码,其被配置为处理流入处理单元(例如,PE235)内的数据,并且向同一PE或流计算应用中的其他PE中的操作子240发送数据。这样的处理单元可以在同一计算节点130上或在经由通信设备120可访问的其他计算节点上。
如所示,存储器230包含缓冲器260。虽然被示出为在存储器中,但是缓冲器260可以位于计算节点130的内存225中或两者的组合中。而且,存储器230可以包括在计算节点130外部的存储空间。
图3是根据本发明的一个实施例的、图1的服务器管理系统105的更详细的视图。如所示,服务器管理系统105非限制地包括CPU305、网络接口315、互连320、内存325和存储器330。客户端系统130也可以包括I/O设备接口310,其将I/O设备312(例如,键盘、显示器和鼠标设备)连接到服务器管理系统105。
类似于图2的CPU205,CPU305被配置为取回和执行在内存325和存储器330中存储的编程指令。类似地,CPU305被配置为存储和取回在内存325和存储器330中驻留的应用数据。互连320被配置为在CPU305、I/O设备接口310、存储器330、网络接口305和内存325之间传送诸如编程指令和应用数据的数据。类似于CPU205,CPU305被包括以表示单个CPU、多个CPU和具有多个处理核的单个CPU等。内存325一般被包括以表示随机存取存储器。网络接口315被配置为经由通信网络120发送数据。虽然被示出为单个单元,但是存储器330可以是固定和/或可移除存储设备的组合,诸如固定盘驱动器、可移除存储卡、光学存储器、SSD或快闪存储设备、网络附接的存储器(NAS)或到存储区域网络(SAN)设备的连接。
如所示,内存325存储流管理器134。另外,存储器330包括初始操作子图132。流管理器134可以使用初始操作子图132将元组路由到PE235用于处理。流管理器134还包括克隆管理器350,用于克隆所选择的PE235以利用可用的硬件,诸如内存225或CPU 205。
图4是图示根据本发明的一个实施例的、用于克隆操作子图中的处理单元的技术的流程图。在步骤405处,克隆管理器350识别在计算基础架构100中的可用或未充分利用的硬件资源。克隆管理器350可以例如监控在计算节点1301-4中的不同硬件资源以确定CPU是否空闲。如在此使用的,“空闲CPU”表示计算节点130上当前未被分配以执行PE的CPU205,或在一些实施例中是在操作子图中的操作子。另外,克隆管理器350可以监控CPU205(或CPU的核)的CPU使用,并且标记其使用低于预定阈值的CPU或CPU核。另外或可替代地的,克隆管理器150可以监控计算节点130的内存225的使用。如果例如对于内存的访问低于一定阈值,则克隆管理器350可以将内存225标记为未充分利用。克隆管理器350也可以确定内存的阈值量是否在预定时间段未被利用或可用。
在步骤410,克隆管理器350基于可用硬件资源确定哪些PE可以克隆。在一个实施例中,仅操作子图中的PE的子集可以克隆。克隆管理器350可以评估流编程人员是否将PE标注为“可克隆”。标记的PE可以指示PE不必以元组被接收的顺序来处理该元组。即,处理当前接收的元组不依赖于先前接收的元组。流编程人员可以将具有该特征的一个或多个PE识别为可克隆。如果克隆管理器350确定计算机资源未充分利用,则其确定要克隆哪个可克隆的PE以使得更有效地使用基础架构100的硬件资源。
在一个实施例中,克隆管理器350可以将计算机资源和可克隆的PE通过它们的位置进行匹配。例如,如果计算节点130具有空闲的CPU205,则克隆管理器350可以首先确定是否有任何可克隆PE235当前与未充分利用的CPU205在相同的计算节点130上托管。如果是这样,则从一组可克隆PE中选择该PE235。
在另一个实施例中,克隆管理器350可以通过可用CPU205的数量和包含多个直接连接的可克隆PE的执行路径的一部分将计算机资源和可克隆PE进行匹配。例如,如果克隆管理器350确定两个CPU205可用并且在执行路径中存在两个直接连接的可克隆PE,则其可以克隆这两个PE,即使它们被分配到不同的计算节点130。此外,克隆管理器350可以被配置为对于与空闲CPU205位于相同的计算节点130上的单个可克隆PE选择该选项。尽管如此,所公开的实施例不限于从一组可克隆PE选择要克隆哪些PE的任何特定方法。
在步骤415,克隆管理器350可以向操作子图内插入PE以分离和合并数据流。在图5A-5C中详细地示出了这一点。
图5A-5C图示了根据本发明的实施例的、克隆处理单元以建立并行执行路径。图5A示出了包括PE1-3(其中PE2是可克隆的PE)的执行路径500的一部分。在流式应用执行的同时,元组从PE1的操作子传递到PE2的操作子并从PE2的操作子传递到PE3的操作子。
图5B图示了插入PE以分离和合并在执行路径中流动的数据。如所示的,在PE1和PE2之间插入包括分离操作子505的PE4。分离操作子505分离在两个或更多的PE之间在执行路径501中流动的数据流。具体地说,分离操作子505将元组划分为两个分开的数据流。相反,PE5内的合并操作子510从两个不同的数据流接收元组,并且合并该元组以产生单个数据流。
在一个实施例中,克隆管理器350可以在流式应用正在处理数据的同时动态地插入PE4和PE5。即,流经执行路径501的数据流不被插入新的PE所中断。一旦产生克隆的PE(或多个PE),则克隆管理器350可以启动PE4和PE5。
替代地,可以在流式应用开始处理流式数据之前向执行路径501内插入PE4和PE5。然而,PE4和PE5可以保持不活动,直到克隆管理器350确定要克隆PE2。即,元组经过PE4和PE5,而不被操作子505、510所处理。此外,在预期可以复制可克隆PE的情况下,克隆管理器350可以在操作子图内的多个可克隆PE(即,可克隆PE串)的上游和下游插入具有分离和合并操作子的PE。
返回到图4,在步骤420,克隆管理器350克隆至少一个可克隆PE以产生第二独立的数据流。可以将可克隆PE克隆任何次数。每次克隆PE时,克隆管理器350建立另一个并行执行路径。
图5C图示了产生具有至少一个克隆的处理单元的两个并行执行路径502、503。如所示,克隆管理器350向操作子图添加PE4、PE5和克隆的PE2。克隆管理器350还连接这些PE的操作子以建立两个并行执行路径。执行路径502包括PE1、PE4、PE2、PE5和PE3,而执行路径503包括PE1、PE4、克隆的PE2、PE5和PE3。因为克隆的PE2可以包括在PE2内找到的所有相同的操作子,所以执行路径502、503并行,因为它们在被给予相同的元组来处理时产生相同的结果。因此,在一个实施例中,并行执行路径502、503是精确的拷贝。
虽然图5B-5C图示了在与插入克隆的PE不同的独立步骤中插入分离/合并PE,但是它们可以同时插入。而且,可以在流式应用正在处理数据的同时向操作子图中动态地插入克隆的PE。以这种方式,一旦插入分离/合并PE和克隆的PE就可以启动它们。替代地,在预期克隆管理器350可以稍后确定启动克隆的PE(和分离/合并PE)以在执行路径503中产生数据流的情况下,可以在流式应用开始处理数据之前向操作子图中插入克隆的PE,
在一个实施例中,可以不使用分离/合并PE来建立具有至少一个克隆的PE的并行执行路径。即,可以从方法400省略步骤415。例如,处理单元可以使用过滤或动态连接来产生并行执行路径。过滤是操作子构造,其确定要处理哪些接收的数据元组。例如,PE2可以具有过滤器,该过滤器指示PE2基于唯一的元组标识符仅处理奇数元组,而在克隆的PE2上的过滤器则指示克隆的PE2仅处理偶数的数据元组。动态连接允许流管理器134耦合两个独立的作业(job),使得数据元组可以在作业之间流动。在此,克隆的PE2可以是与原始PE2不同的作业的一部分。流管理器134可以配置操作子图,使得与克隆的PE2相关联的作业从PE1接收元组,该元组被克隆的PE处理并且然后被发送到PE3。在流式应用正在运行时,可以执行不使用分离/合并PE而产生并行执行路径的这两种技术。替代地,在流管理器134配置过滤或动态连接时,可以暂时停止流式应用。
图6A-6B图示了根据本发明的实施例的、向在一个或多个计算机节点上的CPU分发克隆的处理计算节点。具体地说,该附图示出向CPU分配图5C的处理单元以利用可用的硬件资源的不同实施例。
图6A图示了向与被克隆的处理单元位于相同的计算节点130内的空闲CPU分配克隆的PE。如所示,执行路径502和503的所有处理单元被分配到同一计算节点130中的CPU——即,处理单元的操作子全部被计算节点130的CPU执行。例如,克隆管理器350可能已经确定CPU4是空闲的,并且作为响应,产生了并行执行路径503。当克隆的PE2被插入操作子图中时,克隆管理器350向CPU4分配处理单元(及其操作子)。而且,克隆管理器350还可以向空闲CPU分配分离/合并PE(即,PE4和PE5)。然而,在一个实施例中,克隆管理器350可以通过比较CPU1-4的CPU利用率确定向何处分配PE4和PE5来执行负载平衡。
图6B图示了向与被克隆的PE位于不同的计算节点上的空闲CPU分配克隆的PE。如所示,PE2被分配到计算节点130A上的CPU2。克隆管理器350可以确定计算基础架构100中的不同计算节点(即,计算节点130C)可能具有空闲CPU(即,CPU4)。因此,克隆管理器350可以产生克隆的PE,并且向CPU4分配该PE。
注意,如果在流式应用开始处理数据之前克隆的PE2或分离/合并PE被插入到操作子图内,则处理单元可能已经被分配到任何CPU。因为PE2、PE4和PE5的不活动操作子实质上是NOP,所以向例如CPU2分配处理单元不应当影响CPU的吞吐量。然而,当克隆管理器350确定启动克隆的PE2和分离/合并PE的操作子时,它可以随后向空闲CPU4重新分配处理单元。
在一个实施例中,克隆管理器350可以在确定向何处布置克隆的PE时考虑节点内和节点间通信方法之间的差别。假定托管PE1的计算节点具有仅被利用50%的CPU而不同的计算节点具有空闲CPU。在所有其他条件相同的情况下,克隆管理器350将向空闲CPU分配可克隆PE2。然而,向与PE1位于相同的计算节点上的CPU分配克隆的PE具有下述优点:使用节点内通信方法来从PE1向克隆的PE2传送元组。在一些情况下,节点内通信方法(例如,共享的内存或数据总线)可能比节点间通信方法(例如,TCP/IP套接字)更快。因此,即使在不同的计算节点上的CPU空闲,克隆管理器350可以确定:如果向与PE1位于相同的计算节点上的CPU分配克隆的PE2以允许执行路径503使用节点内通信方法而不是节点间通信方法,则并行执行路径503将执行得更快。
而且,克隆管理器350可以在确定将克隆的PE布置到何处时考虑不同类型的节点间通信方法或协议。可以使用提供不同的数据速度的不同通信协议(例如,RDMA、TCP/IP、共享的数据库访问、PCIe等)来连接不同的计算节点130。因此,克隆管理器350可以在向不同的计算节点中的CPU分配克隆的PE之前考虑节点间通信协议。即,如果计算节点130A和130C之间的节点间通信是较慢的通信协议之一,则克隆管理器350可以确定不向计算节点130C的空闲CPU4分配克隆的PE2。
另外,克隆管理器350可以在向不同的计算节点分配克隆的PE之前评估节点间通信连接的当前可用带宽。例如,即使在计算节点130A和130C之间的通信连接使用可获得的最快协议,如果连接的带宽的超过例如90%当前正被使用,则克隆管理器350可以确定不向CPU4分配克隆的PE2。
在一个实施例中,克隆管理器350可以考虑计算节点上的不同硬件资源,诸如可用内存。如果克隆管理器350确定计算节点130正在访问低于阈值比率的其内存(例如,RAM和高速缓存等),则管理器350可以启动在那个计算节点上的克隆的PE。而且,与CPU利用率类似,如果远程计算节点具有未充分利用的内存,则克隆管理器350可以向与托管原始PE的节点不同的计算节点分配克隆的PE。
在另一个实施例中,克隆管理器350在确定何时以及在何处启动克隆的PE时,可以监控和考虑不同硬件资源的组合。例如,如果计算节点上的至少一个CPU的利用率小于50%并且对于在RAM中存储的数据的请求低于设置的阈值比率,则克隆管理器350可以启动克隆的PE。
图7A-7B图示了根据本发明的一个实施例的、克隆单个执行路径中的多个处理单元。图7A图示了其中克隆了至少两个处理单元的两个并行执行路径。具体地说,执行路径701的PE2和PE3被克隆以产生包括克隆的PE2和克隆的PE3的执行路径702。以这种方式,执行路径中直接连接的多个处理单元可以被克隆以产生并行执行路径,在所述多个并行执行路径中被克隆的处理单元也直接连接。在这个实施例中,在执行路径中的“直接连接”表示在处理单元之间传送元组。任何数量的直接连接的处理单元可以被克隆以产生并行执行路径。
如在前面的实施例中所述的,每一个克隆的PE可以布置在计算基础架构100中以利用可用硬件资源。例如,克隆的PE2和克隆的PE3可以位于一个或多个空闲CPU上。
图7B图示了将同一PE克隆多次,由此产生多个并行执行路径。如所示,克隆管理器350可以将PE2和PE3克隆多次,以产生并行执行路径702和703。例如,克隆管理器350可以识别在计算节点内的四个空闲CPU,并且向该CPU分配四个克隆的处理单元。以这种方式,流可以建立与其具有的可用资源一样多的并行执行路径。
虽然未示出,但是图7A-7B中的执行路径也可以包括在克隆的PE2的上游的具有分离操作子的PE和在克隆的PE3的下游的具有合并操作子的PE。
图8A-8D图示了根据本发明的实施例的、去熔合并向多个CPU分发处理单元的操作子。取代克隆PE以产生并行执行路径,流管理器134可以去熔合处理单元的操作子以利用可用硬件资源——例如,空闲CPU和可用内存等。
如上所述,PE可以包括多个熔合的操作子。在一个实施例中,PE的熔合的操作子作为单个进程执行。因此,由被分配该进程的CPU执行每一个熔合的操作子。将操作子移动到不同的CPU可能要求从当前的处理单元(即,进程)去熔合操作子并且将其传送到不同的处理单元内。
图8A图示了执行路径801,其中,PE2由三个熔合的操作子——操作子A、B和C——组成。流管理器134可以使用如上所述的标准确定被分配PE2的计算节点具有空闲的CPU。取代克隆PE2以产生并行执行路径,流管理器134可以去熔合PE2中的一个或多个操作子以产生另外的处理单元。因为在一个实施例中,处理单元仅可以被分配到单个CPU,所以在该处理单元内包括的操作子必须由同一CPU执行。
图8B图示了流管理器134可以去熔合PE2中的操作子以产生具有操作子A的PE4、具有操作子B的PE5和具有操作子C的PE6。以这种方式,可以去熔合具有两个或更多操作子的任何处理单元,使得至少一个操作子被传送到新的处理单元或传送到已经包括一个或多个操作子的现有的处理单元。例如,克隆管理器350可以从PE2去熔合操作子C,以产生新的处理单元。因此,PE2仍然包括操作子A和B。
在一个实施例中,流管理器134可能需要确保以正确的顺序来布置新的处理单元。例如,如果操作子A使用节点内通信方法向操作子B传送PE2中的数据元组,则流管理器134确保PE4位于PE5的上游,以保持相同的顺序。
图8C图示了可以托管在图8A中图示的PE的计算节点。如所示,CPU3和CPU4不托管执行路径801中的任何一个处理单元。流管理器134可以识别空闲CPU,并且确定去熔合PE2的操作子以利用可用硬件资源。注意,流管理器134可以使用相同的技术来识别如上所述的可用硬件资源。
图8D图示了在去熔合操作子以利用可用硬件资源后图8C中所示的计算节点。如所示,图8D图示了执行路径802的处理单元可以每一个位于独立的CPU上。即,操作子B(即,PE5)由CPU3执行,而操作子C(即,PE6)由CPU4执行。将操作子传送到向空闲CPU分配的处理单元可以导致执行路径802以比执行路径801更快的速率来处理数据元组。
注意,操作子可以被去熔合和分配到与操作子当前在其中运行的计算节点不同的计算节点。然而,与克隆管理器350类似,在确定何时以及向何处传送不同的操作子时,流管理器134可以考虑节点内和节点间通信方法之间的差别、不同类型的节点间通信协议、或在计算节点之间的连接的带宽利用率。例如,在传送要被不同的计算节点上的CPU执行的操作子B或C之前,流管理器134可以确定使用在不同计算节点上的空闲CPU的优点是否胜过可能来自于使用节点间通信方法而不是节点内通信方法在操作子之间传送数据元组的缺点。
结论
流应用可能低效地使用执行数据流的处理单元的硬件资源。例如,计算节点可以托管四个处理单元,并且使用CPU来执行每一个。然而,在该计算节点上的其他CPU可能保持空闲。为了利用这些可用的硬件资源,流编程人员可以识别可以被克隆的一个或多个处理单元。该克隆的处理单元可以用于产生与包括原始处理单元的执行路径并行的不同执行路径。因为克隆的处理单元与原始处理单元包含相同的操作子,所以先前仅流经原始处理单元的数据流可以被分离并通过原始和克隆的处理单元来发送。以这种方式,并行执行路径可以使用未充分利用的硬件资源来增大数据流的吞吐量。
另外,被同一CPU或CPU核执行的处理单元内的操作子可以被划分和熔合到不同的处理单元以利用空闲CPU或未充分利用的内存。例如,操作子可以从原始PE去熔合,并且被布置在分配到先前空闲的CPU的新的PE中。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然上面针对本发明的实施例,但是在不偏离本发明的基本范围的情况下,可以设计本发明的其他和另外的实施例,并且其范围由所附的权利要求确定。

Claims (20)

1.一种方法,包括:
接收将被包括一个或多个操作子的多个处理单元处理的流式数据,所述操作子通过一个或多个计算机处理器的操作来处理所接收的数据的至少一部分;
建立多个操作子的操作子图,所述操作子图定义至少一个执行路径,在该执行路径中,所述多个操作子的第一操作子被配置为从至少一个上游操作子接收数据元组,并且向至少一个下游操作子发送数据元组;
相对于预定义的标准识别在执行所述操作子的计算系统中未充分利用的硬件资源;
克隆所述多个处理单元的第一处理单元,使得克隆的处理单元与所述第一处理单元包括相同的一个或多个操作子;以及
在包括克隆的处理单元的第一执行路径中处理所接收的流式数据的至少一部分,所述第一执行路径与包括所述第一处理单元的第二执行路径并行地执行,其中克隆的处理单元使用所述未充分利用的硬件资源来处理所接收的流式数据的所述部分。
2.根据权利要求1所述的方法,进一步包括:
在所述操作子图中所述克隆的和第一处理单元的上游启动第二处理单元,该第二处理单元包括分离操作子,该分离操作子向所述克隆的和第一处理单元两者中的操作子发送数据元组;以及
在所述操作子图中所述克隆的和第一处理单元的下游启动第三处理单元,该第三处理单元包括合并操作子,该合并操作子合并从在所述克隆的和第一处理单元两者中的操作子接收的数据元组。
3.根据权利要求2所述的方法,进一步包括:在所述多个处理单元正在处理所接收的流式数据时,向所述操作子图插入所述克隆的、第二和第三处理单元。
4.根据权利要求1所述的方法,其中,所述未充分利用的硬件资源是CPU和内存的一部分中的至少一个。
5.根据权利要求4所述的方法,其中,所述未充分利用的硬件资源是当前未执行所述多个处理单元之一的操作子之一的CPU。
6.根据权利要求1所述的方法,进一步包括:
克隆所述多个处理单元的第二处理单元以产生与所述第二处理单元包括相同的一个或多个操作子的第二克隆的处理单元,其中所述第二处理单元直接连接到所述第二执行路径中的所述第一处理单元;以及
在包括所述第二克隆的处理单元的所述第一执行路径中处理所接收的流式数据,其中,所述第二克隆的处理单元使用所述未充分利用的硬件资源来处理所接收的流式数据。
7.根据权利要求1所述的方法,进一步包括:确定所述第一处理单元是否是可克隆的,其中可克隆的处理单元能够以与接收数据元组的顺序不同的顺序来处理所接收的数据元组。
8.一种计算机程序产品,包括:
计算机可读存储介质,其具有用来具体化的计算机可读程序代码,所述计算机可读程序代码包括被配置为执行下述处理的计算机可读程序代码:
接收将被包括一个或多个操作子的多个处理单元处理的流式数据,所述操作子处理所接收的数据的至少一部分;
建立多个操作子的操作子图,所述操作子图定义至少一个执行路径,在该执行路径中,所述多个操作子的第一操作子被配置为从至少一个上游操作子接收数据元组,并且向至少一个下游操作子发送数据元组;
相对于预定义的标准识别在执行所述操作子的计算系统中未充分利用的硬件资源;
克隆所述多个处理单元的第一处理单元,使得克隆的处理单元与所述第一处理单元包括相同的一个或多个操作子;以及
在包括克隆的处理单元的第一执行路径中处理所接收的流式数据的至少一部分,所述第一执行路径与包括所述第一处理单元的第二执行路径并行地执行,其中克隆的处理单元使用所述未充分利用的硬件资源来处理所接收的流式数据的所述部分。
9.根据权利要求8所述的计算机程序产品,进一步包括被配置为执行下述处理的计算机可读程序代码:
在所述操作子图中所述克隆的和第一处理单元的上游启动第二处理单元,该第二处理单元包括分离操作子,该分离操作子向所述克隆的和第一处理单元两者中的操作子发送数据元组;以及
在所述操作子图中所述克隆的和第一处理单元的下游启动第三处理单元,该第三处理单元包括合并操作子,该合并操作子合并从在所述克隆的和第一处理单元两者中的操作子接收的数据元组。
10.根据权利要求9所述的计算机程序产品,进一步包括被配置为在所述多个处理单元正在处理所接收的流式数据时,向所述操作子图插入所述克隆的、第二和第三处理单元的计算机可读程序代码。
11.根据权利要求8所述的计算机程序产品,其中,所述未充分利用的硬件资源是CPU和内存的一部分中的至少一个。
12.根据权利要求11所述的计算机程序产品,其中,所述未充分利用的硬件资源是当前未执行所述多个处理单元之一的操作子之一的CPU。
13.根据权利要求8所述的计算机程序产品,进一步包括被配置为执行下述处理的计算机可读程序代码:
克隆所述多个处理单元的第二处理单元以产生与所述第二处理单元包括相同的一个或多个操作子的第二克隆的处理单元,其中所述第二处理单元直接连接到所述第二执行路径中的所述第一处理单元;以及
在包括所述第二克隆的处理单元的所述第一执行路径中处理所接收的流式数据,其中,所述第二克隆的处理单元使用所述未充分利用的硬件资源来处理所接收的流式数据。
14.根据权利要求8所述的计算机程序产品,进一步包括被配置为执行下述处理的计算机可读程序代码:确定所述第一处理单元是否是可克隆的,其中可克隆的处理单元能够以与接收数据元组的顺序不同的顺序来处理所接收的数据元组。
15.一种系统,包括:
计算机处理器;以及
内存,其包含程序,所述程序当在所述计算机处理器上执行时执行用于处理数据的操作,所述操作包括:
接收将被包括一个或多个操作子的多个处理单元处理的流式数据,所述操作子通过一个或多个计算机处理器的操作来处理所接收的数据的至少一部分;
建立多个操作子的操作子图,所述操作子图定义至少一个执行路径,在该执行路径中,所述多个操作子的第一操作子被配置为从至少一个上游操作子接收数据元组,并且向至少一个下游操作子发送数据元组;
相对于预定义的标准识别在执行所述操作子的计算系统中未充分利用的硬件资源;
克隆所述多个处理单元的第一处理单元,使得克隆的处理单元与所述第一处理单元包括相同的一个或多个操作子;以及
在包括克隆的处理单元的第一执行路径中处理所接收的流式数据的至少一部分,所述第一执行路径与包括所述第一处理单元的第二执行路径并行地执行,其中克隆的处理单元使用所述未充分利用的硬件资源来处理所接收的流式数据的所述部分。
16.根据权利要求15所述的系统,进一步包括:
在所述操作子图中所述克隆的和第一处理单元的上游启动第二处理单元,该第二处理单元包括分离操作子,该分离操作子向所述克隆的和第一处理单元两者中的操作子发送数据元组;以及
在所述操作子图中所述克隆的和第一处理单元的下游启动第三处理单元,该第三处理单元包括合并操作子,该合并操作子合并从在所述克隆的和第一处理单元两者中的操作子接收的数据元组。
17.根据权利要求16所述的系统,进一步包括:在所述多个处理单元正在处理所接收的流式数据时,向所述操作子图插入所述克隆的、第二和第三处理单元。
18.根据权利要求15所述的系统,其中,所述未充分利用的硬件资源是CPU和内存的一部分中的至少一个。
19.根据权利要求18所述的系统,其中,所述未充分利用的硬件资源是当前未执行所述多个处理单元之一的操作子之一的CPU。
20.根据权利要求15所述的系统,进一步包括:
克隆所述多个处理单元的第二处理单元以产生与所述第二处理单元包括相同的一个或多个操作子的第二克隆的处理单元,其中所述第二处理单元直接连接到所述第二执行路径中的所述第一处理单元;以及
在包括所述第二克隆的处理单元的所述第一执行路径中处理所接收的流式数据,其中,所述第二克隆的处理单元使用所述未充分利用的硬件资源来处理所接收的流式数据。
CN201380007312.9A 2012-01-30 2013-01-10 流式数据系统中的处理单元管理 Active CN104094232B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/361,287 2012-01-30
US13/361,287 US9405553B2 (en) 2012-01-30 2012-01-30 Processing element management in a streaming data system
PCT/IB2013/050228 WO2013114228A1 (en) 2012-01-30 2013-01-10 Processing element management in a streaming data system

Publications (2)

Publication Number Publication Date
CN104094232A true CN104094232A (zh) 2014-10-08
CN104094232B CN104094232B (zh) 2017-09-12

Family

ID=48871267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380007312.9A Active CN104094232B (zh) 2012-01-30 2013-01-10 流式数据系统中的处理单元管理

Country Status (5)

Country Link
US (4) US9405553B2 (zh)
CN (1) CN104094232B (zh)
DE (1) DE112013000752B4 (zh)
GB (1) GB2510769A (zh)
WO (1) WO2013114228A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9535707B2 (en) 2012-01-30 2017-01-03 International Business Machines Corporation Processing element management in a streaming data system
US9588812B2 (en) 2011-07-26 2017-03-07 International Business Machines Corporation Dynamic reduction of stream backpressure
CN107016083A (zh) * 2017-03-31 2017-08-04 清华大学 一种支持处理单元在线切换的流数据处理方法
CN110389830A (zh) * 2018-04-16 2019-10-29 国际商业机器公司 在作业覆盖期间融合和去融合操作器

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137138B (zh) * 2010-09-28 2013-04-24 华为技术有限公司 缓存协作方法、装置及系统
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) * 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9665386B2 (en) * 2013-06-14 2017-05-30 Nutanix, Inc. Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US9740514B1 (en) 2013-06-26 2017-08-22 Nutanix, Inc. Method and system to share data with snapshots in a virtualization environment
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US8997060B2 (en) * 2013-07-31 2015-03-31 International Business Machines Corporation Parallel program analysis and branch prediction
US9515965B2 (en) 2013-09-18 2016-12-06 International Business Machines Corporation Managing data paths in an operator graph
US9298848B2 (en) * 2013-11-01 2016-03-29 International Business Machines Corporation Managing a template in an operator graph
US9379950B2 (en) 2013-11-07 2016-06-28 International Business Machines Corporation Using cloud resources to improve performance of a streaming application
US9237079B2 (en) 2013-11-19 2016-01-12 International Business Machines Corporation Increasing performance of a streaming application by running experimental permutations
US9535734B2 (en) * 2014-03-06 2017-01-03 International Business Machines Corporation Managing stream components based on virtual machine performance adjustments
US9438490B2 (en) 2014-03-07 2016-09-06 International Business Machines Corporation Allocating operators of a streaming application to virtual machines based on monitored performance
US9794139B2 (en) 2014-03-07 2017-10-17 International Business Machines Corporation Allocating operators of a streaming application to virtual machines based on monitored performance
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US9614740B2 (en) * 2014-05-13 2017-04-04 International Business Machines Corporation Multifusion of a stream operator in a streaming application
US9781004B2 (en) 2014-10-16 2017-10-03 Cisco Technology, Inc. Discovering and grouping application endpoints in a network environment
US10129170B2 (en) 2015-04-30 2018-11-13 International Business Machines Corporation Automated split of work in a cloud environment
US10389850B2 (en) * 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
US10152516B2 (en) 2015-05-21 2018-12-11 International Business Machines Corporation Managing staleness latency among application bundles
US9888057B2 (en) 2015-05-21 2018-02-06 International Business Machines Corporation Application bundle management across mixed file system types
US10530660B2 (en) * 2015-05-21 2020-01-07 International Business Machines Corporation Application bundle preloading
US9965262B2 (en) 2015-05-21 2018-05-08 International Business Machines Corporation Application bundle pulling
US10389794B2 (en) * 2015-05-21 2019-08-20 International Business Machines Corporation Managing redundancy among application bundles
US10175961B2 (en) * 2015-06-10 2019-01-08 International Business Machines Corporation Joining operator graph elements via whole program optimization
US9652295B2 (en) 2015-06-26 2017-05-16 International Business Machines Corporation Runtime fusion of operators based on processing element workload threshold and programming instruction compatibility
KR102381343B1 (ko) 2015-07-27 2022-03-31 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR102401600B1 (ko) 2015-08-31 2022-05-25 삼성전자주식회사 데이터 양에 기초하여 복수의 데이터 스트림을 관리하도록 구성되는 스토리지 장치
US9535763B1 (en) 2015-11-30 2017-01-03 International Business Machines Corporation System and method for runtime grouping of processing elements in streaming applications
CN106506393A (zh) * 2016-02-05 2017-03-15 华为技术有限公司 一种数据流处理方法、装置和系统
US9928046B2 (en) 2016-02-12 2018-03-27 International Business Machines Corporation System and method for dynamic runtime merging of real time streaming operator environments
US10599478B1 (en) 2016-03-29 2020-03-24 Amazon Technologies, Inc. Automated reconfiguration of real time data stream processing
US9904520B2 (en) 2016-04-15 2018-02-27 International Business Machines Corporation Smart tuple class generation for merged smart tuples
US10083011B2 (en) * 2016-04-15 2018-09-25 International Business Machines Corporation Smart tuple class generation for split smart tuples
US10523724B2 (en) * 2016-05-10 2019-12-31 International Business Machines Corporation Dynamic stream operator fission and fusion with platform management hints
US10901998B2 (en) * 2016-05-31 2021-01-26 International Business Machines Corporation Managing a modification to a consistent region of a stream computing environment
US10613947B2 (en) 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
US10341189B2 (en) * 2016-09-22 2019-07-02 International Business Machines Corporation Operator fusion management in a stream computing environment
US10560328B2 (en) 2017-04-20 2020-02-11 Cisco Technology, Inc. Static network policy analysis for networks
US10623264B2 (en) 2017-04-20 2020-04-14 Cisco Technology, Inc. Policy assurance for service chaining
US10826788B2 (en) 2017-04-20 2020-11-03 Cisco Technology, Inc. Assurance of quality-of-service configurations in a network
US20180351788A1 (en) 2017-05-31 2018-12-06 Cisco Technology, Inc. Fault localization in large-scale network policy deployment
US10439875B2 (en) 2017-05-31 2019-10-08 Cisco Technology, Inc. Identification of conflict rules in a network intent formal equivalence failure
US10505816B2 (en) 2017-05-31 2019-12-10 Cisco Technology, Inc. Semantic analysis to detect shadowing of rules in a model of network intents
US10554483B2 (en) 2017-05-31 2020-02-04 Cisco Technology, Inc. Network policy analysis for networks
US10693738B2 (en) 2017-05-31 2020-06-23 Cisco Technology, Inc. Generating device-level logical models for a network
US10581694B2 (en) 2017-05-31 2020-03-03 Cisco Technology, Inc. Generation of counter examples for network intent formal equivalence failures
US10623271B2 (en) 2017-05-31 2020-04-14 Cisco Technology, Inc. Intra-priority class ordering of rules corresponding to a model of network intents
US10812318B2 (en) 2017-05-31 2020-10-20 Cisco Technology, Inc. Associating network policy objects with specific faults corresponding to fault localizations in large-scale network deployment
US11645131B2 (en) 2017-06-16 2023-05-09 Cisco Technology, Inc. Distributed fault code aggregation across application centric dimensions
US10904101B2 (en) 2017-06-16 2021-01-26 Cisco Technology, Inc. Shim layer for extracting and prioritizing underlying rules for modeling network intents
US11469986B2 (en) 2017-06-16 2022-10-11 Cisco Technology, Inc. Controlled micro fault injection on a distributed appliance
US10498608B2 (en) 2017-06-16 2019-12-03 Cisco Technology, Inc. Topology explorer
US11150973B2 (en) 2017-06-16 2021-10-19 Cisco Technology, Inc. Self diagnosing distributed appliance
US10686669B2 (en) 2017-06-16 2020-06-16 Cisco Technology, Inc. Collecting network models and node information from a network
US10574513B2 (en) 2017-06-16 2020-02-25 Cisco Technology, Inc. Handling controller and node failure scenarios during data collection
US10587621B2 (en) 2017-06-16 2020-03-10 Cisco Technology, Inc. System and method for migrating to and maintaining a white-list network security model
US10547715B2 (en) 2017-06-16 2020-01-28 Cisco Technology, Inc. Event generation in response to network intent formal equivalence failures
US10218572B2 (en) 2017-06-19 2019-02-26 Cisco Technology, Inc. Multiprotocol border gateway protocol routing validation
US10652102B2 (en) 2017-06-19 2020-05-12 Cisco Technology, Inc. Network node memory utilization analysis
US10567228B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validation of cross logical groups in a network
US10536337B2 (en) 2017-06-19 2020-01-14 Cisco Technology, Inc. Validation of layer 2 interface and VLAN in a networked environment
US11283680B2 (en) 2017-06-19 2022-03-22 Cisco Technology, Inc. Identifying components for removal in a network configuration
US10528444B2 (en) 2017-06-19 2020-01-07 Cisco Technology, Inc. Event generation in response to validation between logical level and hardware level
US10560355B2 (en) 2017-06-19 2020-02-11 Cisco Technology, Inc. Static endpoint validation
US10805160B2 (en) 2017-06-19 2020-10-13 Cisco Technology, Inc. Endpoint bridge domain subnet validation
US10432467B2 (en) 2017-06-19 2019-10-01 Cisco Technology, Inc. Network validation between the logical level and the hardware level of a network
US10567229B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validating endpoint configurations between nodes
US10623259B2 (en) 2017-06-19 2020-04-14 Cisco Technology, Inc. Validation of layer 1 interface in a network
US10554493B2 (en) 2017-06-19 2020-02-04 Cisco Technology, Inc. Identifying mismatches between a logical model and node implementation
US10341184B2 (en) 2017-06-19 2019-07-02 Cisco Technology, Inc. Validation of layer 3 bridge domain subnets in in a network
US10437641B2 (en) 2017-06-19 2019-10-08 Cisco Technology, Inc. On-demand processing pipeline interleaved with temporal processing pipeline
US10348564B2 (en) 2017-06-19 2019-07-09 Cisco Technology, Inc. Validation of routing information base-forwarding information base equivalence in a network
US11343150B2 (en) 2017-06-19 2022-05-24 Cisco Technology, Inc. Validation of learned routes in a network
US10812336B2 (en) 2017-06-19 2020-10-20 Cisco Technology, Inc. Validation of bridge domain-L3out association for communication outside a network
US10505817B2 (en) 2017-06-19 2019-12-10 Cisco Technology, Inc. Automatically determining an optimal amount of time for analyzing a distributed network environment
US10673702B2 (en) 2017-06-19 2020-06-02 Cisco Technology, Inc. Validation of layer 3 using virtual routing forwarding containers in a network
US10700933B2 (en) 2017-06-19 2020-06-30 Cisco Technology, Inc. Validating tunnel endpoint addresses in a network fabric
US10333787B2 (en) 2017-06-19 2019-06-25 Cisco Technology, Inc. Validation of L3OUT configuration for communications outside a network
US10644946B2 (en) 2017-06-19 2020-05-05 Cisco Technology, Inc. Detection of overlapping subnets in a network
US10411996B2 (en) 2017-06-19 2019-09-10 Cisco Technology, Inc. Validation of routing information in a network fabric
US10587456B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Event clustering for a network assurance platform
US10587484B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Anomaly detection and reporting in a network assurance appliance
US10554477B2 (en) 2017-09-13 2020-02-04 Cisco Technology, Inc. Network assurance event aggregator
US10333833B2 (en) 2017-09-25 2019-06-25 Cisco Technology, Inc. Endpoint path assurance
US11184432B2 (en) * 2017-09-28 2021-11-23 Oracle International Corporation System and method for dynamic auto-scaling based on roles
US20190097895A1 (en) * 2017-09-28 2019-03-28 Oracle International Corporation System and method for dynamic auto-scaling based on roles
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
US11102053B2 (en) 2017-12-05 2021-08-24 Cisco Technology, Inc. Cross-domain assurance
US10599440B2 (en) 2017-12-27 2020-03-24 International Business Machines Corporation Method for sharing processing modules between pipelines
US10873509B2 (en) 2018-01-17 2020-12-22 Cisco Technology, Inc. Check-pointing ACI network state and re-execution from a check-pointed state
US10572495B2 (en) 2018-02-06 2020-02-25 Cisco Technology Inc. Network assurance database version compatibility
US10963262B2 (en) * 2018-05-09 2021-03-30 International Business Machine Corporation Establishing data pipelines with inclusion of iterative sub-pipelines
US10812315B2 (en) 2018-06-07 2020-10-20 Cisco Technology, Inc. Cross-domain network assurance
US10659298B1 (en) 2018-06-27 2020-05-19 Cisco Technology, Inc. Epoch comparison for network events
US11019027B2 (en) 2018-06-27 2021-05-25 Cisco Technology, Inc. Address translation for external network appliance
US11044273B2 (en) 2018-06-27 2021-06-22 Cisco Technology, Inc. Assurance of security rules in a network
US11218508B2 (en) 2018-06-27 2022-01-04 Cisco Technology, Inc. Assurance of security rules in a network
US10911495B2 (en) 2018-06-27 2021-02-02 Cisco Technology, Inc. Assurance of security rules in a network
US10904070B2 (en) 2018-07-11 2021-01-26 Cisco Technology, Inc. Techniques and interfaces for troubleshooting datacenter networks
US11095751B2 (en) * 2018-07-25 2021-08-17 Cisco Technology, Inc. In-network content caching exploiting variation in mobility-prediction accuracy
US10826770B2 (en) 2018-07-26 2020-11-03 Cisco Technology, Inc. Synthesis of models for networks using automated boolean learning
US10616072B1 (en) 2018-07-27 2020-04-07 Cisco Technology, Inc. Epoch data interface
US10965750B2 (en) 2018-09-27 2021-03-30 International Business Machines Corporation Distributed management of dynamic processing element connections in streaming applications
US10768917B2 (en) 2018-12-17 2020-09-08 International Business Machines Corporation Dynamic deployment placement of processing elements in a streaming data system
US11061681B2 (en) 2019-07-25 2021-07-13 International Business Machines Corporation Instruction streaming using copy select vector
CN111258574B (zh) * 2020-01-14 2021-01-15 中科驭数(北京)科技有限公司 加速器体系结构的编程方法和系统
US11340958B2 (en) 2020-07-08 2022-05-24 Vmware, Inc. Real-time simulation of compute accelerator workloads for distributed resource scheduling
US11822924B2 (en) * 2020-09-04 2023-11-21 Oracle International Corporation System and method for reactive flattening map for use with a microservices or other computing environment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240112A1 (en) * 2006-02-23 2007-10-11 Microsoft Corporation Parallel loops in a workflow
US20080168179A1 (en) * 2005-07-15 2008-07-10 Xiaohui Gu Method and apparatus for providing load diffusion in data stream correlations
US20090037553A1 (en) * 2007-07-31 2009-02-05 Jun Yuan Configuring or Reconfiguring a Multi-Master Information Sharing Environment
CN102138138A (zh) * 2008-08-18 2011-07-27 国际商业机器公司 用于实现流处理计算机架构的方法及系统
US8090974B1 (en) * 2008-02-08 2012-01-03 Joviandata, Inc. State machine controlled dynamic distributed computing

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4612624A (en) 1982-10-25 1986-09-16 Mitsubishi Denki Kabushiki Kaisha Demand estimation apparatus
JP4309480B2 (ja) 1995-03-07 2009-08-05 株式会社東芝 情報処理装置
JPH1097437A (ja) 1996-09-20 1998-04-14 Nippon Steel Corp 並列分散処理システム
JPH1197431A (ja) 1997-09-19 1999-04-09 Dainippon Screen Mfg Co Ltd 基板熱処理装置
JP2000132390A (ja) 1998-10-23 2000-05-12 Toshiba Corp プロセッサ及び分岐予測器
US6347254B1 (en) 1998-12-31 2002-02-12 Honeywell Inc Process facility control systems using an efficient prediction form and methods of operating the same
JP2001325041A (ja) 2000-05-12 2001-11-22 Toyo Eng Corp 計算機資源活用方法及びシステム
US20020083063A1 (en) 2000-12-26 2002-06-27 Bull Hn Information Systems Inc. Software and data processing system with priority queue dispatching
US7644863B2 (en) 2001-11-14 2010-01-12 Sap Aktiengesellschaft Agent using detailed predictive model
US8055492B2 (en) 2002-01-10 2011-11-08 International Business Machines Corporation Non-unique results in design verification by test programs
US8275889B2 (en) * 2002-06-10 2012-09-25 International Business Machines Corporation Clone-managed session affinity
US7206861B1 (en) 2002-07-29 2007-04-17 Juniper Networks, Inc. Network traffic distribution across parallel paths
US9414255B2 (en) 2002-09-13 2016-08-09 Alcatel Lucent Packet flow control in a wireless communications network based on an indication contained in a packet
US7634477B2 (en) 2002-09-18 2009-12-15 Netezza Corporation Asymmetric data streaming architecture having autonomous and asynchronous job processing unit
US7480640B1 (en) 2003-12-16 2009-01-20 Quantum Leap Research, Inc. Automated method and system for generating models from data
US20060004935A1 (en) 2004-06-30 2006-01-05 Pak-Lung Seto Multi-protocol bridge
US7536486B2 (en) 2004-07-30 2009-05-19 Microsoft Corporation Automatic protocol determination for portable devices supporting multiple protocols
US20060036619A1 (en) 2004-08-09 2006-02-16 Oren Fuerst Method for accessing and analyzing medically related information from multiple sources collected into one or more databases for deriving illness probability and/or for generating alerts for the detection of emergency events relating to disease management including HIV and SARS, and for syndromic surveillance of infectious disease and for predicting risk of adverse events to one or more drugs
US20060064438A1 (en) 2004-09-17 2006-03-23 International Business Machines Corporation Methods and apparartus for monitoring abnormalities in data stream
US7477653B2 (en) 2004-12-10 2009-01-13 Microsoft Corporation Accelerated channel change in rate-limited environments
EP1672161B1 (de) 2004-12-20 2009-04-01 Gabriel Pichler Fugendichtung und Verfahren zu ihrer Herstellung
US20060206706A1 (en) 2005-03-14 2006-09-14 Bryan Dietz Method and apparatus for dynamically distributing data flow in a communication network
US20060224763A1 (en) 2005-03-18 2006-10-05 Sharp Laboratories Of America, Inc. Switching and simultaneous usage of 802.11a and 802.11g technologies for video streaming
US8126870B2 (en) 2005-03-28 2012-02-28 Sybase, Inc. System and methodology for parallel query optimization using semantic-based partitioning
JP4687253B2 (ja) 2005-06-03 2011-05-25 株式会社日立製作所 ストリームデータ処理システムのクエリ処理方法
US20070073685A1 (en) 2005-09-26 2007-03-29 Robert Thibodeau Systems and methods for valuing receivables
US8144149B2 (en) 2005-10-14 2012-03-27 Via Technologies, Inc. System and method for dynamically load balancing multiple shader stages in a shared pool of processing units
US7808930B2 (en) * 2005-10-26 2010-10-05 Cisco Technology, Inc. Dynamic multipoint tree rearrangement
US8886261B2 (en) 2005-12-06 2014-11-11 Motorola Mobility Llc Multi-mode methods and devices utilizing battery power level for selection of the modes
US7894356B2 (en) * 2005-12-23 2011-02-22 Jds Uniphase Corporation System and method for measuring network performance using real network traffic
US7302362B2 (en) 2006-03-01 2007-11-27 International Business Machines Corporation System and method for efficient and collective adjustment of sensor reporting ranges for long-lived queries
US7548937B2 (en) * 2006-05-04 2009-06-16 International Business Machines Corporation System and method for scalable processing of multi-way data stream correlations
US7481244B2 (en) 2006-06-05 2009-01-27 Bioquiddity, Inc. Fluid flow control device
US7493406B2 (en) * 2006-06-13 2009-02-17 International Business Machines Corporation Maximal flow scheduling for a stream processing system
US7613848B2 (en) * 2006-06-13 2009-11-03 International Business Machines Corporation Dynamic stabilization for a stream processing system
US7496683B2 (en) * 2006-07-27 2009-02-24 International Business Machines Corporation Maximization of sustained throughput of distributed continuous queries
JP4839164B2 (ja) 2006-09-15 2011-12-21 株式会社日立製作所 ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
CA2678154C (en) 2007-02-12 2013-11-12 Huseyin Cahit Akin Access line bonding and splitting methods and apparatus
US8776052B2 (en) 2007-02-16 2014-07-08 International Business Machines Corporation Method, an apparatus and a system for managing a distributed compression system
US7834875B2 (en) 2007-04-02 2010-11-16 International Business Machines Corporation Method and system for automatically assembling stream processing graphs in stream processing systems
US8243924B2 (en) 2007-06-29 2012-08-14 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
WO2009018361A1 (en) 2007-07-30 2009-02-05 Marvell Semiconductor, Inc. Simultaneously maintaining bluetooth and 802.11 connections to increase data throughput
US9424315B2 (en) 2007-08-27 2016-08-23 Teradata Us, Inc. Methods and systems for run-time scheduling database operations that are executed in hardware
US8375395B2 (en) 2008-01-03 2013-02-12 L3 Communications Integrated Systems, L.P. Switch-based parallel distributed cache architecture for memory access on reconfigurable computing platforms
JP4872945B2 (ja) 2008-02-25 2012-02-08 日本電気株式会社 運用管理装置、運用管理システム、情報処理方法、及び運用管理プログラム
US20090313641A1 (en) 2008-06-12 2009-12-17 Condel International Technologies Inc. Application management methods and systems
US8949810B2 (en) * 2008-06-16 2015-02-03 International Business Machines Corporation Method for high-performance data stream processing
US20100030896A1 (en) 2008-06-19 2010-02-04 Microsoft Corporation Estimating latencies for query optimization in distributed stream processing
US7860009B2 (en) 2008-06-26 2010-12-28 Alcatel Lucent Providing backpressure flow control to specific traffic flows
US8030974B1 (en) 2008-09-10 2011-10-04 Marvell International, Ltd. Method and apparatus for sampling
JP5465413B2 (ja) * 2008-10-29 2014-04-09 株式会社日立製作所 ストリームデータ処理方法、及びそのシステム
US8918488B2 (en) 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
JP5149840B2 (ja) 2009-03-03 2013-02-20 株式会社日立製作所 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置
US8578076B2 (en) 2009-05-01 2013-11-05 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8949801B2 (en) 2009-05-13 2015-02-03 International Business Machines Corporation Failure recovery for stream processing applications
US8601458B2 (en) 2009-05-14 2013-12-03 International Business Machines Corporation Profile-driven data stream processing
US8255554B2 (en) 2009-05-14 2012-08-28 International Business Machines Corporation Application resource model composition from constituent components
US8490072B2 (en) * 2009-06-23 2013-07-16 International Business Machines Corporation Partitioning operator flow graphs
US8479181B2 (en) 2010-02-01 2013-07-02 International Business Machines Corporation Interactive capacity planning
US8751436B2 (en) 2010-11-17 2014-06-10 Bank Of America Corporation Analyzing data quality
US8478743B2 (en) 2010-12-23 2013-07-02 Microsoft Corporation Asynchronous transfer of state information between continuous query plans
US8732300B2 (en) * 2011-01-10 2014-05-20 International Business Machines Corporation Application monitoring in a stream database environment
US9965520B2 (en) 2011-06-17 2018-05-08 Microsoft Corporation Efficient logical merging over physically divergent streams
US9148495B2 (en) 2011-07-26 2015-09-29 International Business Machines Corporation Dynamic runtime choosing of processing communication methods
US8959313B2 (en) 2011-07-26 2015-02-17 International Business Machines Corporation Using predictive determinism within a streaming environment
US8560526B2 (en) 2011-07-26 2013-10-15 International Business Machines Corporation Management system for processing streaming data
US8990452B2 (en) 2011-07-26 2015-03-24 International Business Machines Corporation Dynamic reduction of stream backpressure
US9405553B2 (en) 2012-01-30 2016-08-02 International Business Machines Corporation Processing element management in a streaming data system
US9146775B2 (en) 2012-04-26 2015-09-29 International Business Machines Corporation Operator graph changes in response to dynamic connections in stream computing applications
CN103379041B (zh) 2012-04-28 2018-04-20 国际商业机器公司 一种系统检测方法和装置以及流量控制方法和设备
US9002822B2 (en) 2012-06-21 2015-04-07 Sap Se Cost monitoring and cost-driven optimization of complex event processing system
US9930081B2 (en) 2012-11-13 2018-03-27 International Business Machines Corporation Streams optional execution paths depending upon data rates
US8819685B2 (en) 2013-01-24 2014-08-26 Huawei Technologies Co., Ltd. Method and apparatus for adjusting I/O channel on virtual platform

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168179A1 (en) * 2005-07-15 2008-07-10 Xiaohui Gu Method and apparatus for providing load diffusion in data stream correlations
US20070240112A1 (en) * 2006-02-23 2007-10-11 Microsoft Corporation Parallel loops in a workflow
US20090037553A1 (en) * 2007-07-31 2009-02-05 Jun Yuan Configuring or Reconfiguring a Multi-Master Information Sharing Environment
US8090974B1 (en) * 2008-02-08 2012-01-03 Joviandata, Inc. State machine controlled dynamic distributed computing
CN102138138A (zh) * 2008-08-18 2011-07-27 国际商业机器公司 用于实现流处理计算机架构的方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588812B2 (en) 2011-07-26 2017-03-07 International Business Machines Corporation Dynamic reduction of stream backpressure
US10324756B2 (en) 2011-07-26 2019-06-18 International Business Machines Corporation Dynamic reduction of stream backpressure
US9535707B2 (en) 2012-01-30 2017-01-03 International Business Machines Corporation Processing element management in a streaming data system
US9870262B2 (en) 2012-01-30 2018-01-16 International Business Machines Corporation Processing element management in a streaming data system
US10296386B2 (en) 2012-01-30 2019-05-21 International Business Machines Corporation Processing element management in a streaming data system
CN107016083A (zh) * 2017-03-31 2017-08-04 清华大学 一种支持处理单元在线切换的流数据处理方法
CN110389830A (zh) * 2018-04-16 2019-10-29 国际商业机器公司 在作业覆盖期间融合和去融合操作器
CN110389830B (zh) * 2018-04-16 2023-05-05 国际商业机器公司 在作业覆盖期间融合和去融合操作器

Also Published As

Publication number Publication date
GB2510769A (en) 2014-08-13
US20180074862A1 (en) 2018-03-15
DE112013000752T5 (de) 2014-12-11
US20130198489A1 (en) 2013-08-01
US20170004014A1 (en) 2017-01-05
WO2013114228A1 (en) 2013-08-08
US9535707B2 (en) 2017-01-03
US9405553B2 (en) 2016-08-02
DE112013000752B4 (de) 2024-02-01
GB201409144D0 (en) 2014-07-09
CN104094232B (zh) 2017-09-12
US20130198318A1 (en) 2013-08-01
US9870262B2 (en) 2018-01-16
US10296386B2 (en) 2019-05-21

Similar Documents

Publication Publication Date Title
CN104094232A (zh) 流式数据系统中的处理单元管理
Chowdhury et al. Coflow: A networking abstraction for cluster applications
US10148771B2 (en) Systems and methods for decentralized service placement in a resource pool
US9589069B2 (en) Platform for continuous graph update and computation
US10003649B2 (en) Systems and methods to improve read/write performance in object storage applications
JP5679917B2 (ja) データ・ストリームを処理するためのコンピュータ実装方法、システム及びコンピュータ・プログラム
US9298848B2 (en) Managing a template in an operator graph
US20150081693A1 (en) Managing data paths in an operator graph
US10498817B1 (en) Performance tuning in distributed computing systems
US9344342B2 (en) Monitoring similar data in stream computing
US11016897B2 (en) Cache management in a stream computing environment that uses a set of many-core hardware processors
Ma et al. vLocality: Revisiting data locality for MapReduce in virtualized clouds
Lohrmann et al. Massively-parallel stream processing under qos constraints with nephele
JP6069913B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
US9716666B2 (en) Process cage providing attraction to distributed storage
US9253070B2 (en) Predicted outputs in a streaming environment
Wang et al. Cost-driven data caching in edge-based content delivery networks
US20160364450A1 (en) Tracking tuples to reduce redundancy in a graph
Vicat-Blanc et al. Computing networks: from cluster to cloud computing
US12086141B1 (en) Coordination of services using PartiQL queries
Sun Performance optimization for distributed machine learning and graph processing at scale over virtualized infrastructure
Fürst CloudNet embeddings

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant