CN105453068A - 使用分布式缓存的数据流处理 - Google Patents
使用分布式缓存的数据流处理 Download PDFInfo
- Publication number
- CN105453068A CN105453068A CN201380078582.9A CN201380078582A CN105453068A CN 105453068 A CN105453068 A CN 105453068A CN 201380078582 A CN201380078582 A CN 201380078582A CN 105453068 A CN105453068 A CN 105453068A
- Authority
- CN
- China
- Prior art keywords
- task
- window
- key
- result
- engine
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/603—Details of cache memory of operating mode, e.g. cache mode or local memory mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种用于处理流数据的方法可以包括:基于第一窗口密钥,从分布式缓存平台获取第一窗口;在处理器资源上并行执行第一任务和第二任务;以及基于第一任务密钥和第二任务密钥之间的关系,将第一结果和第二结果合并成流结果。
Description
背景技术
计算机可以具有能够并行地或以其它方式与其它操作同时地处理数据和/或指令的处理器,或者是计算机网络的一部分。并行处理能力可以基于并行化的程度,如在数据级、指令级和/或任务级上处理。可以在计算独立于其它计算时并行处理该计算,或可以在计算依赖于另一计算时顺序地处理该计算。例如,指令级并行处理可以确定彼此独立的指令,并且指定并行处理那些指令。
附图说明
图1示出可以在其中实现用于处理数据流的各示例的示例环境。
图2和图3是示出用于处理数据流的示例方法的流程图。
图4示出用于处理数据流的示例操作。
图5和图6是示出用于处理数据流的示例***的框图。
具体实施方式
介绍:在下面的描述和图中,描述用于处理数据流的***和/或方法的一些示例实现方式。数据流可以包括经数字编码的信号的序列。该数据流可以是传输的一部分、电子文件的一部分或一组传输和/或文件的一部分。例如,数据流可以是数据包的序列或包含字符串或字符的文档,如脱氧核糖核酸(“DNA”)序列。
流处理可以对来自数据流的一组数据的一部分实施一系列操作。流处理通常可以处理顺序模式分析,并且可能对与该数据流关联的顺序和/或历史敏感。具有这样敏感性的流处理可能难以并行化。
流处理的滑动窗口技术可以将数据流的该组数据的一部分指定为窗口,并且可以随着该窗口的边界沿数据流移动,对数据的该窗口实施操作。窗口可以沿数据流“滑动”,以覆盖数据流的第二组边界,并且由此覆盖第二组数据。流处理可以对数据流的每个窗口应用分析操作。基于滑动窗口技术的许多流处理应用可以使用顺序模式分析,并且可以实施历史敏感的分析操作。例如,对数据的窗口的操作可以依据前一窗口的操作的结果。
并行化的一个形式可以使用拆分-合并机制。在拆分-合并机制下,拆分操作可以将内容分配给并行运行的多个计算操作,并且合并操作可以合并结果。窗口通常可以由多个数据区块或数据流的数据的多个部分构成。顺序窗口可以具有重叠的数据区块。可以对每个窗口实施顺序模式分析。对顺序模式分析应用拆分-合并机制,拆分操作可以向每个任务提供窗口的拷贝,并且因此,由于顺序窗口可能具有重叠的数据区块,所以可能生成数据区块的多个拷贝。当处理具有重叠内容的窗口时,窗口生成器可能因为高吞吐量而过载。
但是,通过使用分布式缓存平台,处理***可以拆分数据,将数据放到通常可访问的介质中,对来自介质的数据进行操作,以及合并任务结果。分布式缓存平台可以对分布式缓存提供统一访问协议,并且可以允许并行化操作来访问分布式缓存。可以通过经由分布式缓存平台管理对数据流(更具体地,数据区块)的访问以及管理对操作结果进行合并的顺序,并行实施对每个滑动窗口实施的单独任务。分布式缓存平台可以通过使用分布式缓存的引用而不是针对每个任务生成数据区块的拷贝,允许从拆分操作上卸载(或完全移除)拷贝操作。由于拆分操作通常可以分割并拷贝窗口数据,所以可以通过卸载拷贝操作以及并行实施操作或任务,改善流处理速度和/或***性能。
下面的描述分成多个部分。标为“环境”的第一部分描述可以在其中实现用于处理数据流的各示例的计算机和网络环境的示例。标为“操作”的第二部分描述实现用于处理数据流的各示例的示例方法。标为“组件”的第三部分描述用于实现各示例的物理组件和逻辑组件的示例。
环境:图1示出可以在其中实现各示例的示例环境100。环境100被示出为包括流处理***102。下面结合图5和图6描述的流处理***102通常可以表示被配置为处理数据流的硬件和程序的任意组合。流处理***102可以集成到服务器设备104或客户端设备108中。流处理***102可以分布在服务器设备104、客户端设备108或服务器设备104和客户端设备108的组合上。
在图1的示例中,客户端设备108可以访问服务器设备104。服务器设备104通常可以表示被配置为对从客户端设备108接收的网络请求做出响应的任何计算设备。服务器设备104可以包括网络服务器、应用服务器或数据服务器。客户端设备108通常可以表示被配置有用于传递这样的请求以及接收和/或处理对应响应的浏览器或其它应用的任何计算设备。链路106通常可以表示经由电信链路、红外链路、射频链路或提供电子通信的***的任何其它连接器的线缆、无线连接、光纤连接或远程连接中的一个或任意组合。链路106可以至少部分地包括内联网、互联网或二者的组合。链路106还可以包括中间代理、路由器、交换机、负载均衡器等等。
操作:图2和图3是示出用于处理数据流的示例方法的流程图。在介绍图2和图3时,可以参照图4、图5和/或图6的元件和图,以提供上下文示例。但是,实现方式不限于那些示例。与图4-图6关联的描述包括适用于参照图3和图4介绍的方法的细节。
在图2的框202中,可以基于第一窗口密钥从分布式缓存或多个存储介质获取第一窗口。第一窗口可以是数据流的一组数据的一部分。数据流可以通过参照图3-图6进一步介绍的拆分操作分成多个区块。第一窗口可以包括数据流的多个区块的第一集合。第一窗口可以通过第一窗口密钥来识别。第一窗口密钥可以是标识符,该标识符能够与分布式缓存平台一起使用以从多个存储介质获取数据。分布式缓存平台可以是用于访问多个存储介质的协议或其它方法,仿佛多个存储介质是单个存储介质。例如,分布式缓存平台可以使用窗口密钥来访问包含在多个存储介质中的一组数据。在本文中,多个存储介质可以在本文中被表示以及以其它方式被描述为分布式缓存。参照图3-图6更详细地介绍窗口、区块、分布式缓存以及分布式缓存平台。
可以基于第二窗口密钥,从分布式缓存中获取第二窗口或其它窗口。第二窗口可以包括多个区块的第二集合。多个区块的第一集合以及多个区块的第二集合可以包括重叠的或相同的区块。例如在图2中,第一窗口可以包括标为“A”、“B”和“C”的区块,并且第二窗口可以包括标为“B”、“C”和“D”的区块。
在框204中,可以在处理器资源(如图6的处理器资源622)上并行执行第一任务和第二任务。第一任务可以基于第一窗口产生第一结果,第二任务可以基于第二窗口产生第二结果。第一任务和第二任务可以分别对第一窗口和第二窗口实施分析操作。
在框206中,可以基于第一任务密钥和第二任务密钥之间的关系而将第一结果和第二结果合并成流结果。第一任务密钥可以与第一任务关联,第二任务密钥可以与第二任务关联。可以通过组合、聚合、增加、计算、概括、分析或以其它方式组织数据来合并结果。可以对单独的结果和/或合并的流结果进行分析和概括。参照图3-图6更详细地介绍任务密钥和合并操作。
参照图3,框202、框204和框206的描述可以分别应用于框308、框310和框316。
在图3的框302中,可以将数据流的多个区块存储在分布式缓存中。在拆分操作下,数据流可以被分为多个区块,以与窗口关联。多个区块中的每个可以具有基于数据特性的大小。数据特性可以是时间长度、带宽容量和延迟阈值中的至少一个。数据特性可以包括可用于确定区块大小的数据的任何其它特性。
在框304中,可以将第一窗口密钥指派为表示第一窗口。可以将第一窗口密钥发送给任务,以在实施分析操作时用作输入。第一窗口密钥可以置于将窗口密钥与窗口关联的数据结构中。拆分操作可以将每个区块加标点或其它标记为与第一窗口关联,并且可以基于该关联而指派窗口密钥。可以将该窗口密钥和其它窗口密钥指派为分别表示其它窗口。
在框306中,可以基于第一窗口在数据流中的位置来指派第一任务密钥。可以基于对数据流实施的任务的操作的顺序来指派第一任务密钥,第一任务密钥可以基于第一窗口在数据流中的位置,或者第一任务密钥可以被指派用于维护分析操作中的历史数据和/或结果的合并。可以关于被实施的任务和/或操作的窗口的量而指派其它任务密钥。可以基于其它窗口在数据流中的位置来指派其它任务密钥。
在框308中,可以基于第一窗口密钥,从分布式缓存获取第一窗口。可以基于相应的窗口密钥来获取其它窗口。可以基于数据特性(如延迟阈值)通过第一窗口密钥和/或其它窗口密钥获取多个窗口。***的效率可以与每个存储器访问请求获取的窗口的数量相关地增加。
在框310中,可以并行执行第一任务和第二任务。可以通过引擎或通过处理器资源(如图6的处理器资源622)并行执行第一任务和第二任务。可以通过任务引擎或通过处理器资源并行或串行执行其它任务。
在框312中,可以将第一任务的第一结果存储在分布式缓存中。第一结果可以由其它任务和/或合并引擎访问。
在框314中,可以从分布式缓存获取第一结果,以计算第二结果和第三结果中的至少一个。可以通过向分布式缓存平台提供结果以供在其它操作中使用,来改进处理操作。
在框316中,可以基于第一任务密钥和第二任务密钥之间的关系,将第一结果和第二结果合并成流结果。可以将任务引擎的结果输入给分布式缓存,或可以直接向合并操作发送任务引擎的结果。任务密钥之间可能存在用于限定任务密钥的顺序的关系。例如,第一任务密钥和第二任务密钥之间的关系可以是历史的。任务密钥顺序可以是历史的和/或另外是历史敏感的,或可以基于对任务结果做出的分析和/或概括操作。可以将流结果放入分布式缓存中,以供其它操作访问。
图4示出用于处理数据流430的示例操作。参照图4,流处理***400通常可以包括拆分操作器440、任务操作器(如任务操作器442A)、合并操作器444以及分布式缓存平台操作器446。
分布式缓存平台操作器446可以操作地耦接至分布式缓存410。分布式缓存平台操作器446可以实施分布式缓存平台的操作,该操作可以是用于访问分布式缓存410的协议或其它方法。例如,分布式缓存平台可以使用密钥(如本文描的窗口密钥)访问包含在分布式缓存410中的一组数据。参照图2、图3、图5和图6更详细地介绍包括窗口密钥的分布式缓存平台的操作。特别地,在图5的分布式缓存平台引擎502的描述中更详细地描述分布式缓存平台操作器446的操作。分布式缓存410通常可以包含多个存储介质。参照图5和图6更详细地介绍分布式缓存410。
拆分操作器440可以接收数据流430。数据流430可以包括能够被分成多个数据区块(如区块432)的一组数据以及窗口(如窗口434A、434B和434C)。数据区块可以表示数据流430的一组数据的一部分。例如,在图4中,用字母A到字母F表示数据区块432。窗口可以表示多个数据区块。例如,在图2中,窗口234A可以包括标为“A”、“B”和“C”的区块232。可以以任意合适的顺序接收数据流430,并且在将这些区块放到分布式缓存410中时,拆分操作可以重新排列数据。例如,在图4中,以先到先服务为基础,接收数据流430并且将数据流430存储在分布式缓存410中。拆分操作器440可以确定区块大小和窗口大小。参照图2、图3、图5和图6更详细地介绍区块大小和窗口大小确定。
拆分操作器440可以使用分布式缓存平台操作器446来将数据区块输入给分布式缓存410。拆分操作器440可以向分布式缓存410发送数据流430的每个区块。拆分操作器440可以避免直接向处理包含该区块的窗口的任务操作器发送该区块。
拆分操作器440或分布式缓存平台操作器446可以向窗口指派窗口密钥,或以其它方式将窗口密钥与窗口关联。例如,在图4中,标为“密钥1”的窗口密钥436A可以表示标为“A”、“B”和“C”的数据区块432的组合。拆分操作器440可以向任务操作器发送与该窗口关联的窗口密钥。例如,拆分操作器440可以向任务操作器442A发送与窗口434A关联的窗口密钥436A。拆分操作器440还可以向分布式缓存平台操作器446发送该窗口密钥。拆分操作器440可以直接地或经由分布式缓存平台操作器446将其它窗口密钥分配给任务操作器的其它实例。拆分操作器440还可以将任务密钥438指派给由任务操作器442执行的窗口或操作,或以其它方式将任务密钥438与由任务操作器442执行的窗口或操作关联。任务密钥438可以被传递至分布式缓存平台操作器446,并且存储在分布式缓存410中,如图4所示。如下面描述的,一个或多个任务密钥438可以由合并操作器444获取和/或使用。任务密钥438可以是独立的数据引用,或可以是与窗口密钥相同的密钥。与任务密钥438的顺序关联的信息可以与任务密钥438一起存储在分布式缓存410中。可以向每个任务指派任务密钥,并且如下面介绍的,任务密钥的顺序可以由合并操作器444用于合并结果。参照图2、图3、图5和图6更详细地介绍任务密钥和任务密钥顺序。可以在图5的拆分引擎508的描述中更详细地描述拆分操作器440的操作。
任务操作器可以接收窗口密钥,并且使用该窗口密钥来从分布式缓存410获取与该窗口密钥关联的窗口。例如,在图4中,任务操作器442B可以通过使用标为“密钥2”的窗口密钥434B从分布式缓存平台操作器446请求数据,获取包括标为“B”、“C”和“D”的数据区块432的窗口434B。任务操作器可以对该窗口实施任务或操作。任务操作器的每个任务(或任务操作器的每个实例)可以使用窗口密钥来从分布式缓存410获取窗口。分布式缓存410可以是统一的或通常是以其它方式可访问的,以允许由第二任务从缓存的数据流中获取其它窗口或其它数据区块。
任务操作器可以对使用窗口密钥获取的窗口234实施分析操作。任务操作器可以对使用第二窗口密钥或其它窗口密钥获取的第二窗口或其它窗口实施分析操作。任务操作器或任务操作器的实例可以并行执行任务,以及另外同时地或部分同时地实施分析操作。由于使用了分布式缓存平台,所以每个任务操作器可以共享数据流430的区块,而没有由该任务操作器实施的任务之间的数据复制。任务操作器可以使用窗口密钥作为对缓存的数据流430的窗口的引用来请求数据,并且允许并行执行的多个处理任务访问数据流430的重叠区块。例如,在图4中,可以并行访问标为“B”的区块232,以对分别与标为“密钥1”和“密钥2”的窗口密钥436A和窗口密钥436B关联的窗口434A和窗口434B实施操作。
对窗口的分析操作可以提供结果,如模式。例如,任务操作器442A可以产生标为“R1”的结果450A。任务操作器可以向分布式缓存平台操作器446和/或合并操作器444发送该结果。例如,在图4中,任务操作器442A可以将标为“R1”的结果450A输入给分布式缓存平台操作器446和/或向合并操作器444发送结果450A。
任务操作器可以从分布式缓存平台操作器446获取之前的结果,以供分析操作使用。例如,在图4中,任务操作器442B可以获取表示任务操作器442A的结果的、标为“R1”的结果450A,并且在任务操作器442B的分析操作中使用该模式;结果250A可以同时地或部分同时地由任务操作器442C使用。由一个或多个任务操作器实施的任务的结果可以被编码,或另外表示任务密钥238。例如,标为“R1”的框可以表示任务的结果250A和任务密钥238。在图5的任务引擎504的描述中更详细地描述任务操作器的操作。
合并操作器444可以接收任务操作器的结果,并且可以将该结果与其它结果合并,以形成流结果452。合并操作器444可以组合、分析、概括或以其它方式合并结果。例如,在图4中,合并操作器444可以接收任务操作器的结果,该结果可以包括标为“R1”的结果450A、标为“R2”的结果450B以及标为“R3”的结果450C,并且将它们合并成标为“SR”的流结果452。可以基于任务密钥238和/或任务密钥顺序来合并结果。例如,可以基于任务密钥238而以数字顺序组合分别标为“R1”、“R2”和“R3”的结果250A、250B和250C,其中可以由结果250A、250B、250C表示任务密钥238,或任务密钥238可以被编码在结果250A、250B、250C和/或窗口密钥236A、236B和236C中。任务密钥顺序可以表示窗口在数据流430中的位置或其它表示,以在分析或以其它方式合并结果时维护数据的历史。参照图2、图3、图5和图6更详细地介绍任务密钥顺序。合并操作器444可以将流结果452输入给分布式缓存平台操作器446。合并操作器444可以单独地分析结果或将结果分析为作为流结果452。可以在图5的合并引擎506的描述中更详细地描述合并操作器444的操作。
通常,上面描述的图4的操作器440、442、444和446表示由图5的引擎502、504、506和508实施的操作、处理、交互或其它动作,或表示与图5的引擎502、504、506和508结合的操作、处理、交互或其它动作。
组件:图5和图6示出用于实现各示例的物理组件和逻辑组件的示例。图5示出流处理***500的示例,该流处理***500的示例通常可以包括分布式缓存510、分布式缓存平台引擎502、任务引擎504以及合并引擎506。示例流处理***500还可以包括拆分引擎508。分布式缓存510可以与图4的分布式缓存410相同,并且在合适时,与分布式缓存410关联的描述可以被应用于分布式缓存510或者与分布式缓存510关联的描述可以被应用于分布式缓存410。
拆分引擎508可以表示如下硬件和程序的任意组合:该硬件和程序的任意组合被配置为将数据流的一组数据组织成多个窗口并且管理用于对数据流实施分析操作的多个任务的任务顺序。拆分引擎508可以将数据流的该组数据分成区块和窗口。窗口可以构成由一组区块表示的数据流的该组数据的一部分。顺序窗口通常可以包含数据的重叠区块。例如,滑动窗口技术可以通过处理包括区块1到区块5的第一组数据来计算第一分析,通过处理包括区块2到区块6的第二组数据来计算第二分析,以及通过处理包括区块3到区块7的第三组数据来计算第三分析。在该示例中,区块3、区块4和区块5是重叠区块,或是在这三个分析操作的每个中使用的区块。
拆分引擎508可以基于数据特性(如该组数据的可处理性),将数据拆分成窗口。例如,拆分引擎508可以将数据拆分成可由任务处理的窗口。拆分引擎508可以是窗口感知的,并且可以确定哪组数据(如区块和/或元组)可以在相同的分区中并且通过将区块及其互补区块与窗口密钥关联,向合适的节点输送数据。
拆分引擎508可以被配置为指派窗口密钥。窗口密钥可以是能够表示窗口的标识符。拆分引擎508可以顺序地指派窗口密钥,基于数据特性指派窗口密钥或随机地指派窗口密钥。例如,拆分引擎508可以通过使用像“密钥1、密钥2、密钥3、…、密钥N”这样的引用来区分窗口。密钥可能更具描述性,如“流A_5分钟、流A_10分钟、…、流A_N分钟”。拆分引擎508可以向任务发送多个窗口密钥。
拆分引擎508可以指派窗口,向任务引擎504发送窗口密钥,以及请求任务引擎504基于窗口密钥来实施操作。拆分引擎508可以向任务发送窗口密钥,而不是发送数据流的实际数据。窗口密钥可以允许通过基于窗口密钥从分布式缓存平台引擎502获取窗口而从分布式缓存510访问窗口,并且使用分析操作处理该窗口。可以在每个任务中从分布式缓存510获取数据,并且通过拆分操作来避免拷贝数据。
可以将窗口密钥指派为与其它窗口或多个窗口关联。例如,第一窗口密钥可以表示多个窗口,并且任务引擎504或处理器资源(如图6的处理器资源622)可以基于第一窗口密钥而获取该多个窗口。该多个窗口可以基于数据特性,如延迟阈值。批处理或每个窗口密钥处理多个窗口可以通过减少访问时间和数据获取请求,改善处理性能。
拆分引擎508可以指派与数据流的一组数据的多个窗口相应的多个窗口密钥。可以基于数据流的特性进行窗口密钥的指派。例如,拆分引擎508可以基于数据特性(如时间长度)指派第一窗口密钥。数据特性可以是时间长度、带宽容量和延迟阈值中的至少一个。时间长度可以是在确定的一段时间内广播的数据的量。带宽容量可以是处理器资源和/或数据连接(如图1的链路106)的负载能力。延迟阈值可以是针对处理目的被确定可允许的延迟的最小值、最大值或范围。例如,数据获取的总延迟可以依赖于由每个任务实施的每次数据获取的数据的量。因此,窗口的大小可以确定处理该数据流的总性能。流处理***500可以基于数据特性来确定窗口的大小,并且可以相应地指派窗口密钥。由于窗口大小可以直接与总延迟和任务处理时间相关,所以可以基于延迟和任务处理时间之间的平衡来确定窗口的大小。
拆分引擎508可以指派任务密钥。任务密钥可以是用于在窗口由任务处理时追踪分析操作和/或该窗口的结果的标识符。拆分引擎508可以基于窗口在数据流中的位置和多个任务的执行顺序中的至少一个来指派代表该多个任务之一的任务密钥。例如,如下面描述的,该任务密钥可以基于窗口位置或其它历史来追踪窗口操作。例如,拆分引擎508可以基于第一窗口在数据流中的位置而向第一任务指派第一任务密钥。该任务密钥可以用于组织、分析或合并对窗口的分析操作的结果。基于任务密钥合并结果可以维护数据流分析的历史敏感的上下文。
拆分引擎508可以指派由与数据流关联的拆分引擎508实施的多个任务对应的多个任务密钥。该任务密钥可以具有顺序,或可以与可以确定任务密钥顺序的表或其它结构关联。类似于窗口密钥的指派,拆分引擎508可以顺序地指派、基于数据特性指派或随机地指派任务密钥。例如,拆分引擎508可以通过使用像“任务1、任务2、任务3、…、任务N”这样的引用来区分任务,或可以包括描述性引用,如“窗口5分钟、窗口10分钟、…、窗口N分钟”。随机化的密钥指派可以使用表或其它数据结构来组织密钥。
拆分引擎508可以执行以下至少之一:指派多个窗口密钥和/或多个任务密钥,以维持数据流的历史状态。拆分引擎508可以将一组历史状态数据输入给分布式缓存平台引擎502,以可由任务引擎504和合并引擎506中的至少一个访问。可以将任务密钥指派为基于历史敏感的操作来维护结果顺序和/或分析结果。例如,第一任务密钥和第二任务密钥之间的关系可以是历史的。历史关系可以是以数据输入时间、窗口在数据流中的位置、实施任务的时间,或对数据的历史和/或处理操作敏感的其它关系为基础的关系。***可以通过使用任务密钥和/或与要合并的结果关联的每个任务密钥来合并结果,以维护窗口和/或该组数据的历史。
拆分引擎508可以将窗口密钥和/或任务密钥输入给分布式缓存平台引擎502。拆分引擎508可以将该组数据的区块输入给分布式缓存平台引擎502,在分布式缓存平台引擎502中区块可以供由任务引擎504实施的任务中的每个使用。可以通过使用分布式缓存平台来避免向多个计算操作分配连续滑动窗口的冗余数据区块。
分布式缓存510可以包括多个存储介质。多个存储介质可以是本文描述的缓存、存储器或任意存储介质,并且可以被表示为分布式缓存510。分布式缓存平台引擎502可以表示如下硬件和程序的任意组合:该硬件和程序的任意组合被配置为维护分布式缓存510并且特别地维护分布式缓存510中的数据流的一组数据。分布式缓存平台引擎502可以允许使用分布式缓存平台来访问该多个存储介质。分布式缓存510可以是由本文介绍的分布式缓存平台引擎502、分布式缓存平台模块612和/或分布式缓存平台操作器446使用的分布式缓存平台可访问的计算机可读存储介质。分布式缓存平台可以是如下硬件和程序的任意组合:该硬件和程序的任意组合用于提供应用编程接口(“API”)或其它协议,该其它协议提供通过多个存储介质访问数据或以其它方式统一存储介质。对于将API用于本文描述的流处理***的示例,“get(streamA_key1)”可以返回第一窗口的数据。该API可以允许在本地(如在主机或客户端计算机上)做出命令,或远程地(如通过可使用网页浏览器和互联网访问的基于云的服务)做出命令。示例开源分布式缓存平台是MEMCACHED,其使用多个机器上的哈希表来提供分布式内存缓存***。MEMCACHED使用基于键值的数据缓存和API。
可以将数据流输入给分布式缓存平台引擎502,以将数据流存储在分布式缓存510中。数据流可以按照区块来输入至或存储至分布式缓存平台引擎502。数据流的拷贝可以在可获得数据流时、在请求数据流时、逐区块地或以数据流的多个部分的可变大小存储在分布式缓存510中。例如,拆分引擎508可以逐区块地将数据流输入到分布式缓存510中。数据流拷贝可以一次性地全部、以规划的间隔或在不同的时间存储在分布式缓存510中。例如,数据流可以在一批中存储或可以在多批中和/或多个存储请求中存储。
数据流可以根据处理期望而分成多个窗口大小。例如,分布式缓存平台引擎502或拆分引擎508可以确定区块大小和/或窗口大小,并且将数据流的该组数据分成区块。区块的大小可以基于以下至少之一:数据流输入的速率、指定窗口大小、延迟或处理批量大小。分布式缓存平台引擎502可以标记该组数据的区块,以将该区块与窗口关联。加标点或加标记可以基于数据特性。例如,基于时间长度的数据特性进行的加标点可以使用时间戳,以确定哪些数据区块属于每个窗口。数据流加标点可以允许***识别数据的区块是窗口的一部分,以进行处理。例如,可以用与窗口关联的标识符标记区块,以将该区块与窗口密钥关联。
分布式缓存平台引擎502可以基于窗口密钥从分布式缓存510获取窗口或数据流的该组数据的一部分。窗口密钥可以是名字、标签、数字或能够引用分布式缓存510中的窗口和/或位置的其它标识符。窗口密钥可以根据分布式缓存平台来表示窗口。例如,窗口密钥可以是与窗口关联的名字或标签,使得分布式缓存平台可以识别该窗口密钥可能引用分布式缓存510中的一组数据。分布式缓存510中包含的数据可以由每个流处理任务经由分布式缓存平台引擎502访问。例如,数据流在经由分布式缓存平台引擎502拷贝到分布式缓存510中之后,由流处理***500实施的任务可以访问该数据流。
分布式缓存平台510可以是统一化的多个存储介质,或另外是可使用分布式缓存平台作为一个介质访问的。分布式缓存平台可以使用窗口密钥来访问数据,并且请求和/或使用该数据的功能可能不知道哪个特定存储介质包含该数据。分布式缓存平台可以允许通过引用访问存储在分布式缓存510内的数据。例如,在流环境中,数据的每个区块可以一次就被发送至分布式缓存510,并且可以使用窗口密钥在任务期间被引用,而不是针对每个任务发送窗口和/或区块的数据的拷贝。分布式缓存平台引擎502可以减少和/或卸载拆分-合并机制的拆分操作的操作。
任务引擎504可以表示被配置为基于窗口密钥处理窗口的硬件和程序的任意组合。任务引擎504可以使用数据的窗口作为输入而根据操作(如模式分析操作)实施任务。例如,第一任务可以基于第一窗口产生第一结果,第二任务可以基于第二窗口产生第二结果,其中这两个窗口都可以包括多个区块的独立集合,并且结果可以与可能的模式关联。模式分析可以包括顺序模式分析。可以由任务引擎504使用与分类序列标记方法(categoricalsequencelabelingmethod)、分类方法、聚类方法、集合学习方法、任意结构的标签预测方法(arbitrarily-structuredlabelpredictionmethod)、多线性子空间学习方法、语义分析方法、真值序列标记方法、回归方法等中的至少一个一致的操作,实施模式分析。
多个任务中的每个可以根据分析操作计算结果。例如,多个任务中的一个可以计算与第一窗口关联的结果,并且结果可以是由分析操作发现的模式。多个任务可以通过使用与窗口关联的窗口密钥,从分布式缓存510获得数据流的该窗口。例如,多个任务中的一个可以基于第一窗口密钥处理第一窗口。任务引擎504可以从拆分引擎508接收窗口密钥,并且可以从分布式缓存平台引擎502请求窗口。
任务引擎504可以被配置为并行执行任务。例如,任务引擎504可以并行执行第一任务和第二任务。任务引擎504可以在处理器资源上执行任务,如图6的处理器资源622。任务引擎504可以在处理器资源上并行执行多个任务或计算操作。
任务引擎504还可以从拆分引擎508接收任务密钥。可选地,如下面介绍的,任务引擎504可以向分布式缓存平台引擎502提供任务密钥,以供任务引擎504和/或合并引擎506访问和/或使用。
任务可以使用窗口密钥从分布式缓存平台引擎502请求窗口或一批窗口。例如,第一窗口密钥可以与第一窗口和第二窗口关联。任务操作可以包括分析操作,并且可以产生与窗口关联的结果。任务操作可以处理其它窗口并且产生其它结果。
任务引擎504可以提供对每个任务的结果的访问。例如,任务引擎504可以将第一结果存储至分布式缓存平台引擎502,以供第二任务访问。任务结果可以用于未来的任务操作。例如,第一结果可以是数据流中被发现的模式,并且可以在后面的操作中用于与其它窗口比较。任务引擎504可以执行第二任务,从分布式缓存平台引擎502获取第一结果,并且基于第一结果计算第二结果。任务引擎504可以产生多个结果,其中第一结果可以是多个结果中的一个并且第二结果可以是多个结果中的另一个。
任务引擎504可以将任务分配在处理器资源上,如图6的处理器资源622。例如,处理器资源可以包括多个处理器和/或可以直接地耦接或穿越链路(如图1的链路106)耦接的多个机器。任务引擎504可以基于分区标准来分配任务。例如,任务引擎504可以基于洗牌(shuffle)分区标准和哈希分区标准中的至少一个来将任务分配给处理器资源的第一处理器。
合并引擎506可以表示被配置为基于任务密钥合并任务引擎504的结果的硬件和程序的任意组合。合并引擎506可以被配置为组合、概括、分析和/或以其它方式合并任务引擎504的操作的结果。例如,合并引擎506可以基于第一任务密钥和第二任务密钥来将第一结果和第二结果合并成流结果,其中第一任务密钥可以与第一任务关联,第二任务密钥可以与第二任务关联。例如,合并引擎506可以基于任务顺序而将结果合并成流结果。对于另一示例,合并引擎506可以基于任务顺序而将多个结果中的每个合并成流结果。合并引擎506可以从由任务引擎504实施的任务中的每一个接收结果。合并引擎506可以组合、概括、分析和/或以其它方式合并结果、多个结果和/或数据流的该组数据。合并引擎506可以从分布式缓存平台引擎502获取任务密钥,或从任务引擎504或拆分引擎508接收任务密钥,如下面介绍的。
图6示出流处理***600可以在操作地耦接至处理器资源622的存储器资源620上实现。处理器资源622可以操作地耦接至分布式缓存610。分布式缓存610可以与图4的分布式缓存410和/或图5的分布式缓存510相同,并且在合适时,与分布式缓存410和分布式缓存510关联的描述可以适用于分布式缓存610,并且与分布式缓存610关联的描述可以适用于分布式缓存410和分布式缓存510。
在图6的示例中,存储器资源620可以包含由处理器资源622执行的一组指令。存储在存储器资源620上的可执行程序指令可以被表示为分布式缓存平台模块612、任务模块614、合并模块616和拆分模块618,这些模块在由处理器资源622执行时可以实现流处理***600。处理器资源622可以执行该组指令,以执行分布式缓存平台模块612、任务模块614、合并模块616、拆分模块618和/或流处理***600的模块之间的任何操作或其它与流处理***600的模块关联的操作。例如,处理器资源622可以执行一组指令,以基于窗口密钥从分布式缓存平台引擎502获取窗口,使任务引擎504并行执行多个任务,以及向合并引擎发送任务结果来基于任务顺序将结果合并成流结果。分布式缓存平台模块612可以表示如下程序指令:该程序指令在被执行时起到分布式缓存平台引擎502的功能。任务模块614可以表示如下程序指令:该程序指令在被执行时起到任务引擎504的功能。合并模块616可以表示如下程序指令:该程序指令在执行时起到合并引擎506的功能。拆分模块618可以表示如下程序指令:该程序指令在执行时起到拆分引擎508的功能。引擎502、504、506和508和/或模块612、614、616和618可以分布在服务器设备、客户端设备以及存储介质的任意组合上。引擎502、504、506和508和/或模块612、614、616和618可以完成或辅助完成在描述其它引擎502、504、506和508和/或模块612、614、616和618时实施的操作。
处理器资源622可以是能够从存储器资源620获取指令并且执行那些指令的一个或多个中央处理单元(“CPU”)。除非本文另外描述,否则处理器资源622可以顺序地、同时地或部分同时地处理这些指令。
存储器资源620和分布式缓存610可以表示用于存储由流处理***600使用的数据的介质。该介质可以是能够以电子方式存储数据和/或能够存储流处理***600的模块和/或由流处理***600使用的数据的任何非暂时性介质或非暂时性介质的组合。该介质可以是机器可读的,如计算机可读的。分布式缓存610的数据可以包括数据流、窗口密钥、任务密钥、结果和/或本文提到的其它数据的表示。
在本文的介绍中,引擎502、504、506和508以及模块612、614、616和618已被描述为硬件和程序的组合。可以以多种方式实现这样的组件。看图6,该程序可以是在存储器资源620上存储的处理器可执行指令,存储器资源620可以是有形的非暂时性计算机可读存储介质,并且硬件可以包括用于执行那些指令的处理器资源622。例如,处理器资源622可以包括一个或多个处理器。这样的多个处理器可以集成在一个设备中或分布在多个设备上。例如,处理器资源622可以分布在服务器设备和客户端设备的任意组合上。存储器资源620可以用于存储程序指令,该程序指令在由处理器资源622执行时实现图6的流处理***600。存储器资源620可以与处理器资源622集成在相同的设备中,或可以是独立的,但可由该设备和处理器资源622访问。存储器资源620可以分布在多个设备上。除非上面另外描述,否则存储器资源620和分布式缓存610可以表示相同的物理介质。
在一个示例中,程序指令可以是安装包的一部分,该安装包的一部分在被安装时可以由处理器资源622执行以实现***600。在此情况中,存储器资源620可以是便携式介质,如由可以从其中下载并安装该安装包的服务器维护的CD、DVD或闪驱或存储器。在另一示例中,程序指令可以是已安装的一个或多个应用的一部分。这里,存储器资源620可以包括集成的存储器,如硬盘、固态硬盘等等。
结论:图1-图6描绘各示例的体系结构、功能以及操作。特别地,图5和图6图示各个物理组件和逻辑组件。各组件至少部分地被限定为程序或程序设计。每个这样的组件及其一部分或其各种结合可以完整地或部分地表示如下模块片段或代码部分:该模块片段或代码部分包括可以独立地或与其它可执行指令结合实现任何一个或多个特定逻辑函数的可执行指令。每个组件或其各种组合可以表示用于实现该一个或多个特定逻辑函数的电路或多个互联电路。
可以在由指令执行***使用或与指令执行***关联使用的任何计算机可读介质中实现各示例,指令执行***如基于计算机/处理器的***或专用集成电路(“ASIC”)或能够从该计算机可读介质获得或获取逻辑并且执行包含在其中的指令的其它***。“计算机可读介质”可以是可包含、存储或维护由该指令执行***使用或与该指令执行***结合使用的一组指令和数据的任何单独介质或不同媒介。计算机可读存储介质可以包括诸如电媒介、磁性媒介、光媒介、电磁媒介或半导体媒介之类的许多物理的非暂时性媒介中的任一个或结合。计算机可读介质的特定示例可以包括但不限于:便携式磁性计算机盘,如硬盘、固态硬盘、随机存取存储器(“RAM”)、只读存储器(“ROM”)、可擦除可编程ROM、闪驱和便携式光盘。
尽管图2-图3的流程图图示特定执行顺序,但是执行的顺序可以与所图示的不同。例如,框的执行顺序可以相对于所示出的顺序而被打乱。此外,连续示出的框可以同时执行或部分同时执行。所有这样的变化在本发明的范围内。
已参考上述示例示出并描述本说明书。但是应理解,可以做出其它形式、细节和示例,而不脱离在下面的权利要求中限定的本发明的精神和范围。
Claims (15)
1.一种用于处理数据流的方法,包括:
基于第一窗口密钥从分布式缓存获取第一窗口,所述第一窗口包括所述数据流的多个区块的第一集合;
在处理器资源上并行执行第一任务和第二任务,所述第一任务用于基于所述第一窗口产生第一结果,所述第二任务用于基于第二窗口产生第二结果;以及
基于第一任务密钥和第二任务密钥之间的关系,将所述第一结果和所述第二结果合并成流结果,所述第一任务密钥与所述第一任务关联,所述第二任务密钥与所述第二任务关联。
2.根据权利要求1所述的方法,包括:
将所述第一窗口密钥指派为表示所述第一窗口;以及
将所述第二窗口密钥指派为表示所述第二窗口。
3.根据权利要求1所述的方法,包括:
基于所述第一窗口在所述数据流中位置,指派所述第一任务密钥;以及
基于所述第二窗口在所述数据流中的位置,指派所述第二任务密钥。
4.根据权利要求1所述的方法,其中所述第一任务密钥和所述第二任务密钥之间的关系是历史的。
5.根据权利要求1所述的方法,包括将所述数据流的所述多个区块存储在所述分布式缓存中,所述多个区块中的每个具有基于数据特性的大小。
6.根据权利要求5所述的方法,其中所述数据特性是时间长度、带宽容量以及延迟阈值中的至少一个。
7.根据权利要求1所述的方法,包括:
将所述第一结果存储在所述分布式缓存中;以及
从所述分布式缓存获取所述第一结果,以计算所述第二结果和第三结果中的至少一个。
8.一种计算机可读存储介质,具有在所述计算机可读存储介质上存储的指令,所述指令包括分布式缓存平台模块、任务模块和合并模块,其中:
所述分布式缓存平台模块能由处理器资源执行,以:
将数据流的多个区块存储在一组存储介质中;以及
基于第一窗口密钥从所述一组存储介质获取第一窗口,所述第一窗口包括所述多个区块的第一集合;
所述任务模块能由所述处理器资源执行,以:
在所述处理器资源上并行执行第一任务和第二任务,所述第一任务用于基于所述第一窗口产生第一结果,所述第二任务用于基于所述第二窗口产生第二结果,所述第二窗口包括所述多个区块的第二集合;
所述合并模块能由所述处理器资源执行,以:
基于与所述第一任务关联的第一任务密钥和与所述第二任务关联的第二任务密钥,将所述第一结果和第二结果合并成流结果。
9.根据权利要求8所述的计算机可读存储介质,其中所述指令包括拆分模块,其中所述拆分模块能由所述处理器资源执行,以:
基于数据特性指派所述第一窗口密钥;以及
基于所述第一窗口在所述数据流中的位置,将所述第一任务密钥指派给所述第一任务。
10.根据权利要求8所述的计算机可读存储介质,其中所述第一窗口密钥表示多个窗口,所述处理器资源用于基于所述第一窗口密钥获取所述多个窗口,所述第一窗口构成所述多个窗口中的一个。
11.根据权利要求8所述的计算机可读存储介质,其中所述多个窗口基于延迟阈值。
12.一种用于处理数据流的***,包括:
分布式缓存平台引擎,用于维护一组存储介质中所述数据流的一组数据;
任务引擎,用于基于窗口密钥来处理窗口,所述窗口构成所述一组数据的一部分;
合并引擎,用于基于任务密钥来合并所述任务引擎的结果;以及
处理器资源,操作地耦接至计算机可读存储介质,其中所述计算机可读存储介质包含一组指令,所述处理器资源用于执行所述一组指令,以:
基于所述窗口密钥从所述分布式缓存平台引擎获取所述窗口;
使所述任务引擎在所述处理器资源上并行执行多个任务,所述多个任务中的一个用于计算结果,所述多个任务中的一个用于基于所述窗口密钥处理所述窗口;以及
向所述合并引擎发送所述结果,以基于任务顺序将所述结果合并成流结果。
13.根据权利要求12所述的***,进一步包括拆分引擎,所述拆分引擎用于将所述一组数据组织成多个窗口并且管理所述任务顺序,所述拆分引擎用于:
指派窗口密钥来表示所述窗口;以及
基于所述窗口在所述数据流中的位置和/或所述多个任务的执行顺序,将所述任务密钥指派为表示所述多个任务中的所述一个。
14.根据权利要求12所述的***,其中所述一组指令:
将所述数据流输入给所述分布式缓存平台引擎;以及
标记所述一组数据的区块,以将所述区块与所述窗口关联。
15.根据权利要求12所述的***,其中所述一组指令:
将第一结果输入给所述分布式缓存平台引擎;
从所述分布式缓存平台引擎获取所述第一结果;以及
基于所述第一结果计算第二结果。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/053012 WO2015016907A1 (en) | 2013-07-31 | 2013-07-31 | Data stream processing using a distributed cache |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105453068A true CN105453068A (zh) | 2016-03-30 |
Family
ID=52432266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380078582.9A Pending CN105453068A (zh) | 2013-07-31 | 2013-07-31 | 使用分布式缓存的数据流处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160154867A1 (zh) |
EP (1) | EP3028167A1 (zh) |
CN (1) | CN105453068A (zh) |
WO (1) | WO2015016907A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959672A (zh) * | 2017-04-28 | 2017-07-18 | 深圳市汇川控制技术有限公司 | 一种基于api的工业运动控制***及方法 |
CN109189746A (zh) * | 2018-07-12 | 2019-01-11 | 北京百度网讯科技有限公司 | 通用流式Shuffle引擎的实现方法、装置、设备及存储介质 |
CN109726004A (zh) * | 2017-10-27 | 2019-05-07 | 中移(苏州)软件技术有限公司 | 一种数据处理方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3059606C (en) | 2008-12-15 | 2023-01-17 | Ip Reservoir, Llc | Method and apparatus for high-speed processing of financial market depth data |
US10659532B2 (en) * | 2015-09-26 | 2020-05-19 | Intel Corporation | Technologies for reducing latency variation of stored data object requests |
EP3488386A4 (en) * | 2016-07-22 | 2020-02-19 | Cornell University | FAST PROTOTYPIZATION AND IN VITRO MODELING OF PATIENT-SPECIFIC CORONAL ARTERY BYPASS IMPLANTS |
US10503654B2 (en) | 2016-09-01 | 2019-12-10 | Intel Corporation | Selective caching of erasure coded fragments in a distributed storage system |
US10761765B2 (en) * | 2018-02-02 | 2020-09-01 | EMC IP Holding Company LLC | Distributed object replication architecture |
US11816193B2 (en) * | 2020-04-20 | 2023-11-14 | Cisco Technology, Inc. | Secure automated issue detection |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100262871A1 (en) * | 2007-10-03 | 2010-10-14 | William Bain L | Method for implementing highly available data parallel operations on a computational grid |
US20100312801A1 (en) * | 2009-06-05 | 2010-12-09 | Microsoft Corporation | Parallel processing of an ordered data stream |
US20110154339A1 (en) * | 2009-12-17 | 2011-06-23 | Electronics And Telecommunications Research Institute | Incremental mapreduce-based distributed parallel processing system and method for processing stream data |
CN102521405A (zh) * | 2011-12-26 | 2012-06-27 | 中国科学院计算技术研究所 | 支持高速加载的海量结构化数据存储、查询方法和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2443277B (en) * | 2006-10-24 | 2011-05-18 | Advanced Risc Mach Ltd | Performing diagnostics operations upon an asymmetric multiprocessor apparatus |
-
2013
- 2013-07-31 CN CN201380078582.9A patent/CN105453068A/zh active Pending
- 2013-07-31 US US14/906,003 patent/US20160154867A1/en not_active Abandoned
- 2013-07-31 EP EP13890858.7A patent/EP3028167A1/en not_active Withdrawn
- 2013-07-31 WO PCT/US2013/053012 patent/WO2015016907A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100262871A1 (en) * | 2007-10-03 | 2010-10-14 | William Bain L | Method for implementing highly available data parallel operations on a computational grid |
US20100312801A1 (en) * | 2009-06-05 | 2010-12-09 | Microsoft Corporation | Parallel processing of an ordered data stream |
US20110154339A1 (en) * | 2009-12-17 | 2011-06-23 | Electronics And Telecommunications Research Institute | Incremental mapreduce-based distributed parallel processing system and method for processing stream data |
CN102521405A (zh) * | 2011-12-26 | 2012-06-27 | 中国科学院计算技术研究所 | 支持高速加载的海量结构化数据存储、查询方法和*** |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959672A (zh) * | 2017-04-28 | 2017-07-18 | 深圳市汇川控制技术有限公司 | 一种基于api的工业运动控制***及方法 |
CN109726004A (zh) * | 2017-10-27 | 2019-05-07 | 中移(苏州)软件技术有限公司 | 一种数据处理方法及装置 |
CN109189746A (zh) * | 2018-07-12 | 2019-01-11 | 北京百度网讯科技有限公司 | 通用流式Shuffle引擎的实现方法、装置、设备及存储介质 |
CN109189746B (zh) * | 2018-07-12 | 2021-01-22 | 北京百度网讯科技有限公司 | 通用流式Shuffle引擎的实现方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3028167A1 (en) | 2016-06-08 |
US20160154867A1 (en) | 2016-06-02 |
WO2015016907A1 (en) | 2015-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105453068A (zh) | 使用分布式缓存的数据流处理 | |
KR102310187B1 (ko) | 복수의 엣지와 클라우드를 포함하는 분산 컴퓨팅 시스템 및 이의 적응적 지능 활용을 위한 분석 모델 제공 방법 | |
CN101211277B (zh) | 选择子os的一个执行计划的方法与使用该方法的虚拟机监视器 | |
CN101233514B (zh) | 管理输入/输出的方法 | |
CN108769146B (zh) | 一种基于区块链的数据传输方法、装置及区块链*** | |
CN106294614A (zh) | 用于访问业务的方法和装置 | |
CN101438275B (zh) | 工作项事件处理 | |
KR100779215B1 (ko) | 작업 데이터 자동 이동 방법 및 이를 위한 장치 | |
CN104954468A (zh) | 资源的分配方法及装置 | |
CN104618304B (zh) | 数据处理方法及数据处理*** | |
US20120331229A1 (en) | Load balancing based upon data usage | |
CN104756079A (zh) | 规则分配服务器、事件处理***和方法以及程序 | |
US20170123855A1 (en) | Stage-aware performance modeling for computer cluster sizing | |
US20120173535A1 (en) | Allowing External Access to Private Information of a Local Data Store | |
CN108563697B (zh) | 一种数据处理方法、装置和存储介质 | |
US10558670B2 (en) | Smart tuple condition-based operation performance | |
CN104346426A (zh) | 共享数据去重复的方法和*** | |
CN107305570A (zh) | 一种数据检索方法及*** | |
CN104956340A (zh) | 可扩展数据重复删除 | |
CA2702133A1 (en) | Redistribute native xml index key shipping | |
US10657135B2 (en) | Smart tuple resource estimation | |
US20150089062A1 (en) | Methods and systems for dynamically specializing and re-purposing computer servers in an elastically scaling cloud computing infrastructure | |
Li et al. | A production scheduling problem with sequence-dependent changeover costs | |
KR20170111838A (ko) | 사물 기능과 클라우드 서비스를 활용한 자율 서비스 구성 방법 | |
CN103425707A (zh) | 数据分析方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160330 |