CN105765578B - 分布式文件***中的数据的并行访问 - Google Patents
分布式文件***中的数据的并行访问 Download PDFInfo
- Publication number
- CN105765578B CN105765578B CN201480064544.2A CN201480064544A CN105765578B CN 105765578 B CN105765578 B CN 105765578B CN 201480064544 A CN201480064544 A CN 201480064544A CN 105765578 B CN105765578 B CN 105765578B
- Authority
- CN
- China
- Prior art keywords
- data
- processes
- computing system
- distributed
- distributed processing
- 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.)
- Active
Links
Images
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1858—Parallel file systems, i.e. file systems supporting multiple processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
从分布式文件***(110)并行访问数据的方法通过创建多个并行数据流使得期望单元的所有数据分区到多个流上来提供对文件***中的一个或更多命名单元(例如,文件)的并行访问。在一些例子中,多个流形成计算***(130)(诸如基于图形的计算***、基于数据流的***和/或(例如,关系)数据库***)的并行实现的多个输入。
Description
相关申请的交叉引用
本申请要求享有2013年11月26日提交的序列号为14/090,434的美国申请的优先权。
技术领域
本发明涉及分布式文件***中的数据的并行访问。
背景技术
分布式文件***的一个例子是Hadoop分布式文件***(HDFS)。HDFS是用Java编写的可扩展、可移植的分布式文件***。HDFS具有为文件***中的多个文件保存数据且能够通过数据网络提供文件块的一组节点(“数据节点”)。每一个文件通常分布在多个节点上。通过一组节点(“名称节点”)来维护文件***的目录。该目录能够用于识别文件***中的每个命名文件的多个分布式块的位置。
参照图1A-图1B,使用MapReduce编程模型是处理分布式文件***(例如,HDFS)中的数据的一种方式。通常,MapReduce程序包括映射(Map)进程和归约(Reduce)进程,其中映射进程进行过滤和排序(例如,按名字把学生排成队列,每个名字排一个队列),归约进程进行总结操作(例如,计数每个队列中学生的人数,产生名字频率)。***的用户指定映射进程和归约进程,但不一定要确定每个进程(即,“过程”)的实例(或调用)的数目或者它们执行所在的节点。相反,“MapReduce***”(也称为“架构”、“框架”)通过编组一组分布式节点来进行编排,并行运行各种任务(例如,映射进程和归约进程及相关联的通信),管理***的各个部分之间的所有通信和数据传送,提供冗余和故障并且整体管理整个过程来进行协调管理。MapReduce***能够安排映射进程和归约进程的实例的执行,并知道数据位置。在图1A中,HDFS是分布式文件***110的一个例子,而Hadoop框架是分布式处理***的一个例子,这样一组映射进程24在多个处理器122上并行执行以处理分布式文件的多个部分14并在文件***110中存储多个输出文件16。在图1B中,一组归约进程26处理映射进程的多个输出以产生多个输出文件18,从而完成了MapReduce执行。
虽然使用与MapReduce***集成的分布式文件***能够获得计算优势,然而访问与其它编程范例一起进行处理的数据可能是低效的。例如,数据的提取可能导致瓶颈,例如,文件的全部数据通过单数据流传递(即使数据的处理本身是并行的)。例如,HDFS提供文件***命令(hadoop fs-cat文件),该命令将文件的内容传递到标准输出端口并可能地流式传输到可并行处理内容的过程或服务器。
避免此类瓶颈的一种方法是将大文件明确分成多个单独的命名部分(即,目录中的各个条目),然后促使每个部分在单独的流中被提取。然而,这类方法可能存在缺点,例如,需要有关例如这些部分的数量和提取的这些部分所在的节点的潜在次优选择的先前决策,因为这些命名部分本身是分布式的。
将数据从分布式文件***提供到一个应用程序(例如,数据库引擎)的另一种方法是在文件***内实现该应用程序或与文件***紧密耦合地实现该应用程序。然而,这种方法可能限制于使用具体应用程序进行处理,并且不一定能从该应用程序的未移植到文件***中的实现中受益。
发明内容
在一个方案中,通常,从分布式文件***并行提取数据的新方法通过创建多个并行数据流使得期望单元的所有数据分区到多个流上来提供对文件***中的一个或更多命名单元(例如,文件)的并行访问。在一些例子中,多个流形成计算***(诸如基于图形的计算***、基于数据流的***和/或(例如,关系)数据库***)的并行实现的多个输入。
该方法的一种实现方式利用文件存储***的监督或管理功能,该文件存储***接收文件***中的一个或更多命名单元(例如,文件)的指定和指定单元的内容的一组目的地的指定。监督功能然后创建提取进程的多个执行实例。提取进程的每一个实例通过监督功能配置而成以访问期望内容的一部分,并且配置为例如使用数据流(例如,TCP流、本地命名管道等)将该内容传送到该组指定目的地中的一个。在一些例子中,监督功能还接收其它信息,诸如,提取进程的实例(或其限制)的期望数目、在提取的内容传输到目的地之前对提取的内容执行的特定计算进程、或者关于托管提取进程的期望位置(诸如节点)的信息。
多种方法能够用于指定该组目的地并且用于在提取进程与来自这些进程的数据的使用者之间建立连接。在一个例子中,该组目的地具有名称,并且每一个提取进程配置有一种访问共享的“代理”的方式(例如,其网络地址)。在传送数据之前,提取进程与代理通信,代理将具***置(例如,网络地址)提供给来自所请求的提取过程的内容的目的地。
提取进程的一种实现方式利用标准的映射函数(例如,不具有归约阶段)。标准的监督功能确定在哪执行该映射的实例以及该映射所处理的期望文件的片段。映射(例如,用户指定的映射的输出过滤器)执行的具体进程然后将内容流传输到期望的目的地,而不促使该内容存储在文件***中。
在一些版本的***中,作为提取的内容的使用者或潜在使用者的多个过程的实例在相同的计算节点上执行,这些计算节点可用于托管提取进程,并且由代理所实现的决策过程可以试图重新定位提取进程和由提取进程所提取的数据的使用者,从而允许本地传送(例如,通过存储器中消息传送、UNIX命名管道等)内容用于处理。在这样一些版本中,代理例如通过选择与提取进程共同位于相同的计算节点上的目的地过程来为从每一个提取进程提取的数据选择目的地。
在一些实现方式中,可以在多个提取进程中有效地实现特定处理或者与多个提取进程紧密关联地有效实现特定处理。例如,可以在提取进程中托管特定数据过滤、格式重组、或者一些情况下的特定聚合任务。
在一个方案中,通常,一种用于处理数据的方法包括:接收存储在分布式处理***的分布式文件***中的一个或更多命名单元的指定;接收用于与和分布式处理***分离的计算***建立数据连接的指定;在分布式处理***上调用多个第一过程,多个第一过程的每一个过程与分布式文件***的存储元建立数据连接,用于访问分布式文件***中的命名单元的相应部分;使用用于建立数据连接的指定在分布式处理***与计算***之间形成多个数据连接,在多个第一过程的每一个过程与计算***之间形成至少一个数据连接;并且通过多个数据连接将数据从分布式处理***同时传递到计算***。
多个方案能够包括一个或更多以下特征。
同时传递数据包括通过多个第一过程的多个过程从文件***提取数据,并将所提取的数据从所述多个过程传输到计算***而不进一步存储在分布式文件***中。
接收命名单元的指定包括接收命名单元的文本文件名。
命名单元的多个部分是未命名的。
接收用于建立数据连接的指定包括接收代理的指定,并且形成数据连接包括多个第一过程的每一个过程与代理通信以确定用于与计算***建立数据连接的进一步指定。
接收用于建立数据连接的指定包括接收用于向计算***广播的指定。
计算***包括多个第二过程,并且其中在多个第一过程的每一个过程与计算***之间形成数据连接包括在多个第一过程的多个过程与多个第二过程的多个过程之间形成数据连接。
该方法还包括调用计算***的多个第二过程的多个过程。
多个第一过程的至少一些过程和多个第二过程的一些过程在一组通用处理器上执行。
分布式处理***和计算***使用通过数据网络耦合的不同的计算资源。
分布式处理***和计算***共享计算资源。
在另一个方案中,通常,一种软件存储在非临时性计算机可读介质上用于处理数据。该软件包括用于促使***进行以下操作的指令:接收存储在分布式处理***的分布式文件***中的一个或更多命名单元的指定;接收用于与和分布式处理***分离的计算***建立数据连接的指定;在分布式处理***上调用多个第一过程,多个第一过程的每一个过程与分布式文件***的存储元建立数据连接,用于访问分布式文件***中的命名单元的相应部分;使用用于建立数据连接的指定在分布式处理***与计算***之间形成多个数据连接,在多个第一过程的每一个过程与计算***之间形成至少一个数据连接;并且通过多个数据连接将数据从分布式处理***同时传递到计算***。
在另一个方案中,通常,一种用于处理数据的***包括:分布式处理***,其包括分布式文件***;以及计算***,与分布式处理***分离。分布式处理***配置为:接收存储在分布式文件***中的一个或更多命名单元的指定;接收用于与计算***建立数据连接的指定;调用多个第一过程,多个第一过程的每一个过程与分布式文件***的存储元建立数据连接,用于访问分布式文件***中的命名单元的相应部分;使用用于建立数据连接的指定在分布式处理***与计算***之间形成多个数据连接,在多个第一过程的每一个过程与计算***之间形成至少一个数据连接;并且通过多个数据连接将数据同时传递到计算***。
在另一个方案中,通常,一种用于处理数据的方法包括:提供存储在分布式文件***中的一个或更多命名单元的指定;提供用于与计算***建立数据连接的指定;提供用于在分布式处理***上调用的多个第一过程的多个过程的指定,多个第一过程的每一个过程被指定用于与分布式文件***的存储元建立数据连接,用于访问分布式文件***中的命名单元的相应部分;接收请求以在分布式处理***与计算***之间形成多个数据连接;并且提供用于在多个第一过程的每一个过程与计算***之间形成至少一个数据连接的信息;并且在计算***处通过多个数据连接从多个第一过程同时接收数据。
多个方案能够包括一个或更多以下特征。
该方法还包括调用计算***中的多个第二过程,其中在多个第一过程的多个过程与多个第二过程的多个过程之间形成数据连接。
调用多个第二过程包括在托管多个第一过程的处理器上调用所述多个过程的至少一些过程,其中数据连接的至少一些连接是本地的处理器。
提供用于形成数据连接的信息包括从多个可用端点根据请求过程的位置和可用端点的位置选择数据连接的端点。
在另一个方案中,通常,一种软件存储在非临时性计算机可读介质上用于处理数据。该软件包括用于促使***进行以下操作的指令:提供存储在分布式文件***中的一个或更多命名单元的指定;提供用于与计算***建立数据连接的指定;提供用于在分布式处理***上调用的多个第一过程的多个过程的指定,多个第一过程的每一个过程被指定用于与分布式文件***的存储元建立数据连接,用于访问分布式文件***中的命名单元的相应部分;接收请求以在分布式处理***与计算***之间形成多个数据连接;并且提供用于在多个第一过程的每一个过程与计算***之间形成至少一个数据连接的信息;并且在计算***处通过多个数据连接从多个第一过程同时接收数据。
在另一个方案中,通常,一种用于处理数据的***包括:分布式文件***;分布式处理***;计算***;以及分布式处理***的客户端,配置为:提供存储在分布式文件***中的一个或更多命名单元的指定;提供用于与计算***建立数据连接的指定;提供用于在分布式处理***上调用的多个第一过程的多个过程的指定,多个第一过程的每一个过程被指定用于与分布式文件***的存储元建立数据连接,用于访问分布式文件***中的命名单元的相应部分;接收请求以在分布式处理***与计算***之间形成多个数据连接;并且提供用于在多个第一过程的每一个过程与计算***之间形成至少一个数据连接的信息;并且在计算***处通过多个数据连接从多个第一过程同时接收数据。
在另一个方案中,通常,提供一种用于处理数据的方法,数据提供自实现映射-归约数据处理框架的分布式处理***,该方法包括:将在分布式处理***上调用的映射进程的指定提供给分布式处理***,映射进程的指定识别分布式文件***中的一个或更多命名单元用于处理并且包括用于与和分布式处理***分离的计算***建立数据连接的指定;在分布式处理***上促使执行映射进程的多个实例;接收请求以在映射进程的执行实例与计算***之间形成多个数据流连接,并提供用于在映射进程的每一个执行实例与计算***之间形成至少一个数据流连接的信息;并且通过多个数据流连接同时接收数据并在计算***中处理接收的数据。
多个方案能够包括一个或更多以下特征。
数据流连接包括传输层数据网络通信连接。
在另一个方案中,通常,一种软件存储在非临时性计算机可读介质上用于处理数据,数据提供自实现映射-归约数据处理框架的分布式处理***。该软件包括用于促使***进行以下操作的指令:将在分布式处理***上调用的映射进程的指定提供给分布式处理***,映射进程的指定识别分布式文件***中的一个或更多命名单元用于处理并且包括用于与和分布式处理***分离的计算***建立数据连接的指定;在分布式处理***上促使执行映射进程的多个实例;接收请求以在映射进程的执行实例与计算***之间形成多个数据流连接,并提供用于在映射进程的每一个执行实例与计算***之间形成至少一个数据流连接的信息;并且通过多个数据流连接同时接收数据并在计算***中处理接收的数据。
在另一个方案中,通常,一种用于处理数据的***包括:分布式文件***;分布式处理***;计算***,与分布式处理***分离;以及分布式处理***的客户端,配置为:将在分布式处理***上调用的映射进程的指定提供给分布式处理***,映射进程的指定识别分布式文件***中的一个或更多命名单元用于处理并且包括用于与计算***建立数据连接的指定;在分布式处理***上促使执行映射进程的多个实例;接收请求以在映射进程的执行实例与计算***之间形成多个数据流连接,并提供用于在映射进程的每一个执行实例与计算***之间形成至少一个数据流连接的信息;并且通过多个数据流连接同时接收数据并在计算***中处理接收的数据。
该方法的一个或更多方案解决对存储在分布式文件***中的数据的有效访问的技术问题。调用提取进程的多个实例(例如,在监督器或管理器的控制下)的技术方案允许提取进程的多个实例有效并行访问数据,每一个实例将数据流提供到计算***。这个方案例如使用本地文件***命令(例如,“hadoop fs–cat文件”命令)而具有避免数据提取过程中的瓶颈的技术优点。通过避免该瓶颈,在单独的计算***中进行数据处理是可行的,从而不局限于文件***上可用的计算形式(例如,MapReduce)。
一个或更多方案提供了优于现有Hadoop***的计算优点。通常,Hadoop工作在MapReduce范例(paradigm)上,其中将映射作业的输出以及归约作业的输出写入到多个文件。尽管这是高度并行的,然而却由于多文件写入而遭受输入/输出挑战。一般地,考虑到人们利用Hadoop从范例中得到的益处,这是可容忍的。然而,通过本文描述的方法也能够获得范例的益处,而无输入/输出成本。在一些例子中,通过并行拦截映射作业的输出,不将这些结果写入到文件而是经由TCP/IP将它们传输到能够并行处理数据的并行操作***来实现效率。从而,这种方法同时实现了并行速度且无文件输入/输出成本。另一个益处是MapReduce相对而言不够灵活敏捷,并且与其它数据库不能很好地接合,通过将数据移出MapReduce范例,能够获得额外的灵活性、互操作性、效率、速度等。
本发明的其它特征和优点将通过以下说明和权利要求变得明显。
附图说明
图1A和图1B为分别示出映射操作和归约操作的框图。
图2为一种提供对分布式文件***的并行访问的***的框图。
图3为该***的框图,示出了用于建立对文件***的并行访问的控制通信。
具体实施方式
参照图2,计算***100包括分布式文件***110、分布式处理***120,并且还包括或者可以访问计算***130。这种类型的文件***110的一个例子是Hadoop分布式文件***(HDFS),而分布式处理***120是Hadoop框架,但应当理解本文描述的方法不限于与HDFS结合使用。分布式文件***110包括许多命名单元的存储,这些命名单元在下文称为“文件”,而不旨在赋予“文件”这个词特定属性。通常,文件的名称可以包括引用诸如文件夹等包含单元的路径。一般而言,每一个文件可以使其的多个部分存储在文件***的不同的数据存储112(例如,磁盘子***)上。
在一些实现方式中,上文描述的方法利用Hadoop框架在处理器122上促使映射进程124的复本并行执行,使得映射进程124有效地访问Hadoop文件***中的命名文件的部分114。然而,为了以图1B所示的方式在归约阶段进行进一步处理,映射进程124配置为将从文件部分114确定的数据通过多个单独的流直接流式传输到计算***130,而不要求中间数据存储在Hadoop文件***中,而不是以图1A所示的方式使用Hadoop框架促使映射进程在Hadoop文件***中存储中间文件。Hadoop***能够确定应当执行映射进程124的合适处理器122及其数量,从而提供对部分114的有效访问。在这些实现方式中,因为从映射进程直接传递数据,所以能够省略归约进程。要注意,下文的说明不限于利用Hadoop架构的实现方式。
计算***100支持的一个功能是并行提取文件***110中的多个命名单元之一或者命名单元的集合的内容以在计算***130中进行处理。通常,与所有数据通过单个流传递的情况相比,计算***130具有更有效地接收并处理多个数据流的能力。在一些例子中,这些流利用局域网上的基于TCP/IP的会话,并且在其它例子中使用其它形式的数据传送(例如,使用Unix命名管道)。要注意,将传送的数据称为“流”应按照其通常意义来理解,并不表示任何特定模式的数据传送(例如,“流式传送”)。
代表性命名单元在图2中表示为具有驻存在多个数据存储112中的部分114。并行提取功能提供将这些部分114中的数据向计算***130中的多个过程134的传送。例如,每一个过程134能够访问一个或更多数据流。那么,在一些情况下,在数据的部分114与过程134之间可能存在一一对应的关系,但是更一般地说,在这些部分与过程之间可能存在多对一的关系。在一些实施例中,存储在分布式文件***110中的命名单元由一组子单元组成,为了说明,该组子单元在这里称为“记录”,而不旨在赋予这些子单元特定特性。文件***中的命名单元的每一个部分114由这些记录中的一个或更多组成。在下文的讨论中,这些记录看作是没有顺序的。然而,这些记录可以与能够用于重构整个文件的顺序的记录编号(例如,与这些记录结合存储)相关联地进行排序。
分布式处理***120具有许多单独的处理器122(例如,物理或虚拟计算节点、服务器和/或提供计算服务的其它单元)。每一个处理器可访问一个或更多数据存储112(例如,物理或逻辑磁盘、多个磁盘子***等)。通常,与其它单元相比,特定处理器122能够更有效地访问一个或更多数据存储112。例如,与特定处理器122访问需要通过局域网传送数据的存储112的情况相比,特定处理器122能够更有效地访问与该处理器具有本地数据连接的存储112。在执行提取功能期间,提取过程124(例如,操作***过程或操作***过程内的计算单元)在分布式处理***的处理器122的每一个或多个上执行。每一个过程访问待提取的文件的一个或更多部分114,并且该部分的内容(例如,记录)将数据连接传递到计算***130的多个过程134中的一个。
参照图3,并行提取功能的实施例利用多个元素,它们协调提取过程中涉及的过程的调用并有助于在这些过程之间建立数据连接。图3示出了这些进程以及用于协调在过程124(例如,Hadoop映射进程)与过程134之间建立连接的其它组件,在过程134中进一步处理过程124中提供的数据。虚线示出在建立连接的过程中使用的控制通信的路径。在本实施例中,协调器142负责促使通过许多过程134处理驻存在分布式文件***110中的特定文件或文件集合的数据。协调器142促使过程134(例如,作为操作***过程或操作***过程中的其它计算单元)被调用。协调器142也将信息传递到每一个被调用的过程134使得该过程能够联系代理144,并且每一个被调用的过程134将信息(包括关于其位置的信息)(例如,托管该过程的处理器的标识)传递给代理。在一些实现方式中,代理144也由协调器142调用,或者协调器142和代理144的功能合并到一个单元中。然后协调器142与分布式文件***110和相关联的处理***120的管理器115通信。协调器142将待处理的文件或文件集合的名称以及代理144的位置传递给管理器115。
此时,或者在现有配置中,协调器142识别出(例如,通过名称、代码识别出)待在处理器120上调用以提取命名文件的多个部分的进程给管理器115。管理器115确定命名文件的部分114(参见图1)驻存在哪里,并基于此确定在哪些处理器120(参见图1)上调用作为多个过程124中的一个的该进程。被调用的过程124在它们被调用或者与管理器115后续通信的时候被告知如何联系代理144。每一个过程124联系代理以请求诸如用于联系将要接收数据的多个过程134中的一个的地址等信息。在至少一些实现方式中,代理例如根据该过程的位置选择多个过程134中的一个,以减少请求提取过程124和接收过程134之间的数据传送中的通信开销(例如,通过在一个处理器上共同定位多个过程),并且将所选择的过程134的地址信息发送回到提取过程124。然后,过程124联系过程134以建立数据连接。
此时,建立了数据存储112、过程124和过程134之间的数据连接(图2中的粗线所示),并且过程124开始从分布式文件***110将数据并行传送到计算***130的过程134。
要注意,明确的代理144的功能在所有实现方式中并不是必需的。例如,过程124能够使用网络广播方法邀请过程134响应以形成连接,并且过程134能单独地响应,或者作为一个群组协调响应过程124,以形成连接。
在一个具体实现方式中,分布式文件***是Hadoop分布式文件***(HDFS),而管理器115实现为MapReduce***的本地部分。在本实现方式中,协调器142(其对于MapReduce***而言非本地)指定文件名称和要执行的映射函数,而不指定相应的归约处理。管理器115遵循传统MapReduce处理以根据其所知道的文件***中的命名文件的部分的位置将指定映射函数的执行编排为过程124。映射函数的指定(specification)中合并有使映射函数的每一个实例与代理144通信所需的信息,从而,与计算***130的过程134形成数据连接。
应当理解,分布式处理***120和计算***130不一定托管在不同的计算机处理节点上。例如,如上文所介绍的,一组通用处理器(例如,处理节点、服务器)可以被管理器115用于托管过程124,并且被协调器142用于托管实际上处理数据的过程134。在一些例子中,当过程124与过程134之间的通信不在节点之间传递时,能够使用有效的数据传递方法,例如,使用Unix命名管道、消息通过共享存储器传递等。要注意,使用接收数据的单独的提取过程124和过程134允许执行不同类型的软件,同时保持它们之间的有效通信。例如,提取过程可以用Java实现为Java虚拟机(JVM)中的单独的任务,而过程134可以实现为操作***过程,例如,用C或C++实现。
计算***130可以具有各种形式。作为一个例子,该***实现包括多个顶点(表示数据处理组件)的数据流图,该多个顶点通过顶点之间的定向链路(表示工作元素(即数据)的流)连接。例如,在通过引用合并于此的名称为“管理基于图形的应用程序的参数(Managing Parameters for Graph-Based Applications)”的第2007/0011668号美国公开文本中更详细地描述了这种环境。在通过引用合并于此的名称为“执行表示为图形的计算(EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS)”的第5,966,072号美国专利中描述了一种用于执行这种基于图形的计算的***。在这个例子中,过程134可以实现数据流图形的组件的子集,并提供输出到其它组件。例如,数据流图可以包括一组件,该组件配置为与该组件的在不同计算节点上执行的多个实例并行执行。过程134的每一个可以作为从分布式处理***120读取数据的并行组件的多个实例中的一个来执行。
作为其它例子,过程134可以形成数据库***的一部分。例如,文件的部分114可以表示数据库表的部分,并且过程134配置为并行处理数据库表,例如,作为执行包括一个或更多表的查询的一部分。
在一些实现方式中,管理器115的功能与协调器142结合,并且可选地,提取过程124和目的地过程134的功能可以结合。在一个这种实现方式中,协调器/管理器使用文件或文件集合的名称访问分布式文件***中的编目,以确定存储这些文件的部分的存储112,并且可选地确定这些文件中的数据的记录结构。然后,协调器/管理器调用提取进程124,或者为了管理器115,在以如上所述相同或相似的方式选择的适当处理器上结合提取和处理进程。在一些实现方式中,首先处理相同的命名文件或文件集合以在文件中建立并存储记录的索引。随后,当协调器/管理器想要提取匹配查询的记录的子集时,读入索引并且在处理器上调用提取进程,使得不需要读取整个文件或文件集合,例如,只读取文件或文件集合的匹配记录,从而提高提取功能的效率。
要注意,上文描述的方法的实现方式存在许多可选方案。尤其,称为“过程”的组件不一定实现为操作***过程(例如,利用exec()***调用在UNIX环境中执行)。可选方案包括位于操作***过程的上下文(context)内的轻量级过程(例如,线程)、利用虚拟机环境(例如,利用Java虚拟机(JVM)执行的Java应用程序或小应用程序)执行的应用程序、在过程的上下文中明确调度而不使用诸如线程等操作***原语的任务、监督器的上下文中执行的虚拟机。
在一些实施例中,在分布式处理***120中执行的过程124不一定局限于文件***110与计算***130之间的数据传送。在一些例子中,这些过程进一步配置(例如,通过协调器142,参见图2)为对数据进行特定计算。例如,每一个过程124可以提取和/或变换从文件***检索的记录的字段。
上述方法能够使用执行适当软件的计算***来实现。例如,该软件可以包括在一个或更多编程或可编程的计算***(其可以是各种架构,诸如,分布式客户端/服务器或网格)上执行的一个或更多计算机程序中的多个进程,每个计算***包括至少一个处理器、至少一个数据存储***(包括易失性和/或非易失性存储器和/或存储元件)、至少一个用户界面(用于使用至少一个输入设备或端口接收输入并且用于使用至少一个输出设备或端口提供输出)。该软件可以包括例如更大程序的一个或更多模块,该更大程序提供与数据流图的设计、配置和执行有关的服务。该程序的模块(例如,数据流图的元素)能够实现为数据结构或符合存储在数据储存库中的数据模型的其它组织的数据。
该软件可以设置在有形的非临时性介质(诸如CD-ROM)或其它计算机可读介质(例如,通用或专用计算***或设备可读的)、或者该软件可以在其被执行时通过网络的通信介质递送(例如,以传播信号形式)到计算***的有形的非临时性介质。处理的一些或全部可以在专用计算机上执行,或者使用专用硬件,诸如协处理器或现场可编程门阵列(FPGA)或专用集成电路(ASIC)。处理可以以分布式方式来实现,该方式使软件指定的计算的不同部分由不同的计算元件来进行。每一个这种计算机程序优选地存储在或下载到可由通用或专用可编程计算机可访问的存储设备的计算机可读存储介质(例如,固态存储器或介质、或者磁或光介质),用于在计算机读取该存储介质或设备时配置和操作该计算机,以执行本文描述的处理。也可以考虑将本发明的***实现为有形的非临时性介质,其配置有计算机程序,其中,如此配置的介质促使计算机以特定和预定义的方式操作以执行本文描述的一个或多个处理步骤。
已经对本发明的多个实施例进行了描述。然而,应当理解,前面的描述旨在说明而并非限制本发明的范围,本发明的范围由以下权利要求书的范围来限定。因此,其它实施例也落在以下权利要求书的范围内。例如,在不脱离本发明的范围的情况下可进行各种修改。此外,上述的一些步骤可以是顺序独立的,因此可以以不同于所述的顺序来执行。
Claims (24)
1.一种用于处理数据的方法,所述方法包括:
接收存储在分布式处理***的分布式文件***中的一个或更多命名单元的指定;
接收用于与和所述分布式处理***分离的计算***建立数据连接的指定;
在所述分布式处理***上调用多个第一过程,所述多个第一过程的每一个过程与所述分布式文件***的存储元建立数据连接,用于访问所述分布式文件***中的命名单元的相应部分;
使用用于建立数据连接的指定在所述分布式处理***与所述计算***之间形成多个数据连接,在所述多个第一过程的每一个过程与所述计算***之间形成至少一个数据连接;以及
通过所述多个数据连接将数据从所述分布式处理***同时传递到所述计算***。
2.根据权利要求1所述的方法,其中同时传递数据包括:通过所述多个第一过程的多个过程从所述文件***提取数据,并将所提取的数据从所述多个过程传输到所述计算***而不进一步存储在所述分布式文件***中。
3.根据权利要求1所述的方法,其中接收命名单元的指定包括:接收命名单元的文本文件名。
4.根据权利要求1所述的方法,其中命名单元的多个部分是未命名的。
5.根据权利要求1所述的方法,其中接收用于建立数据连接的指定包括:接收代理的指定,并且形成数据连接包括:所述多个第一过程的每一个过程与所述代理通信以确定用于与所述计算***建立数据连接的进一步指定。
6.根据权利要求1所述的方法,其中接收用于建立数据连接的指定包括:接收用于向所述计算***广播的指定。
7.根据权利要求1所述的方法,其中所述计算***包括多个第二过程,并且其中在所述多个第一过程的每一个过程与所述计算***之间形成数据连接包括:在所述多个第一过程的多个过程与所述多个第二过程的多个过程之间形成数据连接。
8.根据权利要求7所述的方法,还包括:
调用所述计算***的所述多个第二过程的多个过程。
9.根据权利要求7所述的方法,其中至少所述多个第一过程的一些过程和所述多个第二过程的一些过程在一组通用处理器上执行。
10.根据权利要求1所述的方法,其中所述分布式处理***和所述计算***使用通过数据网络耦合的不同的计算资源。
11.根据权利要求1所述的方法,其中所述分布式处理***和所述计算***共享计算资源。
12.一种非临时性计算机可读介质,存储有用于处理数据的软件,所述软件包括用于促使***进行以下操作的指令:
接收存储在分布式处理***的分布式文件***中的一个或更多命名单元的指定;
接收用于与和所述分布式处理***分离的计算***建立数据连接的指定;
在所述分布式处理***上调用多个第一过程,所述多个第一过程的每一个过程与所述分布式文件***的存储元建立数据连接,用于访问所述分布式文件***中的命名单元的相应部分;
使用用于建立数据连接的指定在所述分布式处理***与所述计算***之间形成多个数据连接,在所述多个第一过程的每一个过程与所述计算***之间形成至少一个数据连接;以及
通过所述多个数据连接将数据从所述分布式处理***同时传递到所述计算***。
13.一种用于处理数据的***,所述***包括:
分布式处理***,其包括分布式文件***;以及
计算***,与所述分布式处理***分离;
其中所述分布式处理***配置为:
接收存储在所述分布式文件***中的一个或更多命名单元的指定;
接收用于与所述计算***建立数据连接的指定;
调用多个第一过程,所述多个第一过程的每一个过程与所述分布式文件***的存储元建立数据连接,用于访问所述分布式文件***中的命名单元的相应部分;
使用用于建立数据连接的指定在所述分布式处理***与所述计算***之间形成多个数据连接,在所述多个第一过程的每一个过程与所述计算***之间形成至少一个数据连接;以及
通过所述多个数据连接将数据同时传递到所述计算***。
14.一种用于处理数据的方法,所述方法包括:
提供存储在分布式文件***中的一个或更多命名单元的指定;
提供用于与计算***建立数据连接的指定;
提供用于在分布式处理***上调用的多个第一过程的多个过程的指定,所述多个第一过程的每一个过程被指定用于与所述分布式文件***的存储元建立数据连接,用于访问所述分布式文件***中的命名单元的相应部分;
接收请求以在所述分布式处理***与所述计算***之间形成多个数据连接;并且提供用于在所述多个第一过程的每一个过程与所述计算***之间形成至少一个数据连接的信息;以及
在所述计算***处通过所述多个数据连接从所述多个第一过程同时接收数据。
15.根据权利要求14所述的方法,还包括:
调用所述计算***中的多个第二过程,其中在所述多个第一过程的多个过程与所述多个第二过程的多个过程之间形成数据连接。
16.根据权利要求15所述的方法,其中调用所述多个第二过程包括:在托管所述多个第一过程的处理器上调用所述多个过程的至少一些过程,并且其中所述数据连接的至少一些连接是本地的所述处理器。
17.根据权利要求14所述的方法,其中提供用于形成数据连接的信息包括:从多个可用端点中,根据请求过程的位置和这些可用端点的位置选择该数据连接的端点。
18.一种非临时性计算机可读介质,存储有用于处理数据的软件,所述软件包括用于促使***进行以下操作的指令:
提供存储在分布式文件***中的一个或更多命名单元的指定;
提供用于与计算***建立数据连接的指定;
提供用于在分布式处理***上调用的多个第一过程的多个过程的指定,所述多个第一过程的每一个过程被指定用于与所述分布式文件***的存储元建立数据连接,用于访问所述分布式文件***中的命名单元的相应部分;
接收请求以在所述分布式处理***与所述计算***之间形成多个数据连接;并且提供用于在所述多个第一过程的每一个过程与所述计算***之间形成至少一个数据连接的信息;以及
在所述计算***处通过所述多个数据连接从所述多个第一过程同时接收数据。
19.一种用于处理数据的***,所述***包括:
分布式文件***;
分布式处理***;
计算***;以及
所述分布式处理***的客户端,其配置为:
提供存储在所述分布式文件***中的一个或更多命名单元的指定;
提供用于与所述计算***建立数据连接的指定;
提供用于在所述分布式处理***上调用的多个第一过程的多个过程的指定,所述多个第一过程的每一个过程被指定用于与所述分布式文件***的存储元建立数据连接,用于访问所述分布式文件***中的命名单元的相应部分;
接收请求以在所述分布式处理***与所述计算***之间形成多个数据连接;并且提供用于在所述多个第一过程的每一个过程与所述计算***之间形成至少一个数据连接的信息;以及
在所述计算***处通过所述多个数据连接从所述多个第一过程同时接收数据。
20.一种用于处理数据的方法,数据提供自实现映射-归约数据处理框架的分布式处理***,所述方法包括:
将用于在所述分布式处理***上调用的映射进程的指定提供给所述分布式处理***,所述映射进程的指定识别用于处理的分布式文件***中的一个或更多命名单元并且包括用于与和所述分布式处理***分离的计算***建立数据连接的指定;
在所述分布式处理***上促使执行所述映射进程的多个实例;
接收请求以在所述映射进程的执行实例与所述计算***之间形成多个数据流连接,并提供用于在所述映射进程的每一个执行实例与所述计算***之间形成至少一个数据流连接的信息;以及
通过所述多个数据流连接同时接收数据并在所述计算***中处理接收的数据。
21.根据权利要求20所述的方法,其中所述分布式处理***包括Apache Hadoop***。
22.根据权利要求20所述的方法,其中所述数据流连接包括传输层数据网络通信连接。
23.一种非临时性计算机可读介质,存储有用于处理数据的软件,数据提供自实现映射-归约数据处理框架的分布式处理***,所述软件包括用于促使***进行以下操作的指令:
将用于在所述分布式处理***上调用的映射进程的指定提供给所述分布式处理***,所述映射进程的所述指定识别用于处理的分布式文件***中的一个或更多命名单元并且包括用于与和所述分布式处理***分离的计算***建立数据连接的指定;
在所述分布式处理***上促使执行所述映射进程的多个实例;
接收请求以在所述映射进程的执行实例与所述计算***之间形成多个数据流连接,并提供用于在所述映射进程的每一个执行实例与所述计算***之间形成至少一个数据流连接的信息;以及
通过所述多个数据流连接同时接收数据并在所述计算***中处理接收的数据。
24.一种用于处理数据的***,所述***包括:
分布式文件***;
分布式处理***;
计算***,与所述分布式处理***分离;以及
所述分布式处理***的客户端,其配置为:
将用于在所述分布式处理***上调用的映射进程的指定提供给所述分布式处理***,所述映射进程的所述指定识别用于处理的所述分布式文件***中的一个或更多命名单元并且包括用于与所述计算***建立数据连接的指定;
在所述分布式处理***上促使执行所述映射进程的多个实例;
接收请求以在所述映射进程的执行实例与所述计算***之间形成多个数据流连接,并提供用于在所述映射进程的每一个执行实例与所述计算***之间形成至少一个数据流连接的信息;以及
通过所述多个数据流连接同时接收数据并在所述计算***中处理接收的数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/090,434 US10776325B2 (en) | 2013-11-26 | 2013-11-26 | Parallel access to data in a distributed file system |
US14/090,434 | 2013-11-26 | ||
PCT/US2014/066781 WO2015080962A1 (en) | 2013-11-26 | 2014-11-21 | Parallel access to data in a distributed file system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105765578A CN105765578A (zh) | 2016-07-13 |
CN105765578B true CN105765578B (zh) | 2020-04-17 |
Family
ID=52021459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480064544.2A Active CN105765578B (zh) | 2013-11-26 | 2014-11-21 | 分布式文件***中的数据的并行访问 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10776325B2 (zh) |
EP (1) | EP3074887B1 (zh) |
JP (1) | JP6580566B2 (zh) |
KR (1) | KR102361156B1 (zh) |
CN (1) | CN105765578B (zh) |
AU (2) | AU2014354970B2 (zh) |
CA (1) | CA2929618C (zh) |
WO (1) | WO2015080962A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590620B1 (en) * | 2004-06-18 | 2009-09-15 | Google Inc. | System and method for analyzing data records |
US10776325B2 (en) | 2013-11-26 | 2020-09-15 | Ab Initio Technology Llc | Parallel access to data in a distributed file system |
US10325032B2 (en) | 2014-02-19 | 2019-06-18 | Snowflake Inc. | Resource provisioning systems and methods |
US9607073B2 (en) | 2014-04-17 | 2017-03-28 | Ab Initio Technology Llc | Processing data from multiple sources |
US10013443B2 (en) * | 2015-06-25 | 2018-07-03 | Bank Of America Corporation | Comparing data stores using hash sums on disparate parallel systems |
TWI547822B (zh) * | 2015-07-06 | 2016-09-01 | 緯創資通股份有限公司 | 資料處理方法及系統 |
US10506016B2 (en) | 2016-05-19 | 2019-12-10 | Oracle International Corporation | Graph analytic engine that implements efficient transparent remote access over representational state transfer |
CN106383738B (zh) * | 2016-09-30 | 2019-10-11 | 北京百度网讯科技有限公司 | 任务处理方法和分布式计算框架 |
US10318355B2 (en) * | 2017-01-24 | 2019-06-11 | Oracle International Corporation | Distributed graph processing system featuring interactive remote control mechanism including task cancellation |
US10534657B2 (en) | 2017-05-30 | 2020-01-14 | Oracle International Corporation | Distributed graph processing system that adopts a faster data loading technique that requires low degree of communication |
US9934287B1 (en) * | 2017-07-25 | 2018-04-03 | Capital One Services, Llc | Systems and methods for expedited large file processing |
CN107885779A (zh) * | 2017-10-12 | 2018-04-06 | 北京人大金仓信息技术股份有限公司 | 一种Spark并行访问MPP数据库的方法 |
US11360983B2 (en) * | 2019-03-01 | 2022-06-14 | Hitachi Vantara Llc | Techniques for processing of data in motion |
US11436003B2 (en) * | 2019-03-26 | 2022-09-06 | Flowfinity Wireless, Inc. | Non-stop internet-of-things (IoT) controllers |
US11461130B2 (en) | 2020-05-26 | 2022-10-04 | Oracle International Corporation | Methodology for fast and seamless task cancelation and error handling in distributed processing of large graph data |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292118A (zh) * | 1998-02-26 | 2001-04-18 | 太阳微***公司 | 网络上的动态分布式计算的方法和设备 |
CN101398771A (zh) * | 2008-11-18 | 2009-04-01 | 中国科学院软件研究所 | 一种基于构件的分布式***访问控制方法及访问控制*** |
CN103441996A (zh) * | 2013-08-16 | 2013-12-11 | 上海理工大学 | 并发传输文件的方法及*** |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226159A (en) * | 1989-05-15 | 1993-07-06 | International Business Machines Corporation | File lock management in a distributed data processing system |
US6446070B1 (en) * | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US5966072A (en) * | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US5897638A (en) * | 1997-06-16 | 1999-04-27 | Ab Initio Software Corporation | Parallel virtual file system |
US6389420B1 (en) * | 1999-09-30 | 2002-05-14 | Emc Corporation | File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration |
US7587467B2 (en) * | 1999-12-02 | 2009-09-08 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7146524B2 (en) * | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US7200747B2 (en) * | 2001-10-31 | 2007-04-03 | Hewlett-Packard Development Company, L.P. | System for ensuring data privacy and user differentiation in a distributed file system |
US7487353B2 (en) * | 2004-05-20 | 2009-02-03 | International Business Machines Corporation | System, method and program for protecting communication |
US7315926B2 (en) * | 2004-09-21 | 2008-01-01 | Emc Corporation | Lock management for concurrent access to a single file from multiple data mover computers |
US7716630B2 (en) * | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US8775647B2 (en) * | 2007-12-10 | 2014-07-08 | Deluxe Media Inc. | Method and system for use in coordinating multimedia devices |
KR100907533B1 (ko) * | 2007-12-17 | 2009-07-14 | 한국전자통신연구원 | 작업 분산 병렬 처리 시스템 및 방법 |
JP5557430B2 (ja) * | 2008-04-11 | 2014-07-23 | 日東電工株式会社 | プロトン伝導性高分子電解質膜およびその製造方法ならびにそれを用いた膜−電極接合体および高分子電解質型燃料電池 |
US9054913B1 (en) * | 2009-11-30 | 2015-06-09 | Dell Software Inc. | Network protocol proxy |
KR101285078B1 (ko) * | 2009-12-17 | 2013-07-17 | 한국전자통신연구원 | 스트림 데이터에 대한 점진적인 맵리듀스 기반 분산 병렬 처리 시스템 및 방법 |
US20120259983A1 (en) | 2009-12-18 | 2012-10-11 | Nec Corporation | Distributed processing management server, distributed system, distributed processing management program and distributed processing management method |
US8539192B2 (en) | 2010-01-08 | 2013-09-17 | International Business Machines Corporation | Execution of dataflow jobs |
US9805101B2 (en) * | 2010-02-26 | 2017-10-31 | Ebay Inc. | Parallel data stream processing system |
US8918388B1 (en) | 2010-02-26 | 2014-12-23 | Turn Inc. | Custom data warehouse on top of mapreduce |
US8386621B2 (en) * | 2010-03-12 | 2013-02-26 | Netflix, Inc. | Parallel streaming |
US8555265B2 (en) * | 2010-05-04 | 2013-10-08 | Google Inc. | Parallel processing of data |
US9495427B2 (en) | 2010-06-04 | 2016-11-15 | Yale University | Processing of data using a database system in communication with a data processing framework |
US8751682B2 (en) * | 2010-09-27 | 2014-06-10 | Z124 | Data transfer using high speed connection, high integrity connection, and descriptor |
US20120239612A1 (en) | 2011-01-25 | 2012-09-20 | Muthian George | User defined functions for data loading |
KR101231294B1 (ko) * | 2011-05-31 | 2013-02-07 | 삼성에스디에스 주식회사 | 데이터의 병렬 수신을 위한 스트림 제어 방법 및 장치 |
US8954568B2 (en) | 2011-07-21 | 2015-02-10 | Yahoo! Inc. | Method and system for building an elastic cloud web server farm |
US8356050B1 (en) | 2011-11-21 | 2013-01-15 | Yahoo! Inc. | Method or system for spilling in query environments |
US9172608B2 (en) | 2012-02-07 | 2015-10-27 | Cloudera, Inc. | Centralized configuration and monitoring of a distributed computing cluster |
JP5966404B2 (ja) | 2012-02-14 | 2016-08-10 | 日本電気株式会社 | 分散ファイルアクセス装置、分散ファイルアクセスシステム、分散ファイルアクセス方法、及び、分散ファイルアクセスプログラム |
US9268590B2 (en) | 2012-02-29 | 2016-02-23 | Vmware, Inc. | Provisioning a cluster of distributed computing platform based on placement strategy |
US9588994B2 (en) | 2012-03-02 | 2017-03-07 | International Business Machines Corporation | Transferring task execution in a distributed storage and task network |
US9367601B2 (en) | 2012-03-26 | 2016-06-14 | Duke University | Cost-based optimization of configuration parameters and cluster sizing for hadoop |
US9158843B1 (en) | 2012-03-30 | 2015-10-13 | Emc Corporation | Addressing mechanism for data at world wide scale |
US9081772B1 (en) * | 2012-04-26 | 2015-07-14 | Pivotal Software, Inc. | Method and apparatus for acid validation within a distributed relational database under controlled concurrent workloads |
US20130325814A1 (en) | 2012-05-30 | 2013-12-05 | Spectra Logic Corporation | System and method for archive in a distributed file system |
US9235446B2 (en) * | 2012-06-22 | 2016-01-12 | Microsoft Technology Licensing, Llc | Parallel computing execution plan optimization |
US9201638B2 (en) | 2012-08-07 | 2015-12-01 | Nec Laboratories America, Inc. | Compiler-guided software accelerator for iterative HADOOP® jobs |
KR101245994B1 (ko) | 2012-08-31 | 2013-03-20 | 케이씨씨시큐리티주식회사 | 대용량 데이터의 분산 병렬 처리 시스템 및 방법 |
CN103714073B (zh) | 2012-09-29 | 2017-04-12 | 国际商业机器公司 | 数据查询的方法和装置 |
US8805835B2 (en) * | 2012-12-20 | 2014-08-12 | Clipcard Inc. | Systems and methods for integrated management of large data sets |
US10476915B2 (en) * | 2013-02-04 | 2019-11-12 | Oracle International Corporation | Real-time communication signaling gateway |
US9342557B2 (en) | 2013-03-13 | 2016-05-17 | Cloudera, Inc. | Low latency query engine for Apache Hadoop |
US9292373B2 (en) | 2013-03-15 | 2016-03-22 | International Business Machines Corporation | Query rewrites for data-intensive applications in presence of run-time errors |
US9113299B2 (en) * | 2013-05-17 | 2015-08-18 | Xerox Corporation | Method and apparatus for automatic mobile endpoint device configuration management based on user status or activity |
US10133800B2 (en) | 2013-09-11 | 2018-11-20 | Microsoft Technology Licensing, Llc | Processing datasets with a DBMS engine |
US20150127649A1 (en) * | 2013-11-01 | 2015-05-07 | Cognitive Electronics, Inc. | Efficient implementations for mapreduce systems |
US10776325B2 (en) | 2013-11-26 | 2020-09-15 | Ab Initio Technology Llc | Parallel access to data in a distributed file system |
-
2013
- 2013-11-26 US US14/090,434 patent/US10776325B2/en active Active
-
2014
- 2014-11-21 CA CA2929618A patent/CA2929618C/en active Active
- 2014-11-21 EP EP14810094.4A patent/EP3074887B1/en active Active
- 2014-11-21 JP JP2016530184A patent/JP6580566B2/ja active Active
- 2014-11-21 KR KR1020167016421A patent/KR102361156B1/ko active IP Right Grant
- 2014-11-21 WO PCT/US2014/066781 patent/WO2015080962A1/en active Application Filing
- 2014-11-21 CN CN201480064544.2A patent/CN105765578B/zh active Active
- 2014-11-21 AU AU2014354970A patent/AU2014354970B2/en active Active
-
2020
- 2020-08-10 AU AU2020217330A patent/AU2020217330B2/en active Active
- 2020-08-31 US US17/007,368 patent/US11599509B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292118A (zh) * | 1998-02-26 | 2001-04-18 | 太阳微***公司 | 网络上的动态分布式计算的方法和设备 |
CN101398771A (zh) * | 2008-11-18 | 2009-04-01 | 中国科学院软件研究所 | 一种基于构件的分布式***访问控制方法及访问控制*** |
CN103441996A (zh) * | 2013-08-16 | 2013-12-11 | 上海理工大学 | 并发传输文件的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
US20210089503A1 (en) | 2021-03-25 |
JP2017506373A (ja) | 2017-03-02 |
CA2929618A1 (en) | 2015-06-04 |
AU2014354970A1 (en) | 2016-05-26 |
AU2014354970B2 (en) | 2020-05-21 |
KR20160090840A (ko) | 2016-08-01 |
AU2020217330B2 (en) | 2022-03-03 |
WO2015080962A1 (en) | 2015-06-04 |
EP3074887B1 (en) | 2021-01-06 |
AU2020217330A1 (en) | 2020-09-03 |
KR102361156B1 (ko) | 2022-02-09 |
JP6580566B2 (ja) | 2019-09-25 |
CN105765578A (zh) | 2016-07-13 |
US11599509B2 (en) | 2023-03-07 |
US10776325B2 (en) | 2020-09-15 |
EP3074887A1 (en) | 2016-10-05 |
CA2929618C (en) | 2022-09-27 |
US20150149503A1 (en) | 2015-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020217330B2 (en) | Parallel access to data in a distributed file system | |
US10824474B1 (en) | Dynamically allocating resources for interdependent portions of distributed data processing programs | |
US11711420B2 (en) | Automated management of resource attributes across network-based services | |
JP6732798B2 (ja) | コンピュートクラスタ内のリソースインスタンスグループの自動スケーリング | |
CN109643312B (zh) | 托管查询服务 | |
US8572236B2 (en) | Distributing services in graph-based computations | |
US20140108450A1 (en) | System and method for supporting named operations in a distributed data grid | |
US11695840B2 (en) | Dynamically routing code for executing | |
Luckow et al. | Pilot-data: an abstraction for distributed data | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、***、装置和存储介质 | |
US11706312B2 (en) | Distributed data stream programming and processing | |
CN104239508A (zh) | 数据查询方法和装置 | |
US9588685B1 (en) | Distributed workflow manager | |
US10200301B1 (en) | Logical control groups for distributed system resources | |
Chawla et al. | Implementing microservices | |
US11522799B1 (en) | Dynamically managed data traffic workflows | |
WO2022057698A1 (en) | Efficient bulk loading multiple rows or partitions for single target table | |
US20230315541A1 (en) | Tightly coupled parallel applications on a serverless computing system | |
US20130332609A1 (en) | Network computing over multiple resource centers | |
Luu et al. | Spark Streaming | |
EP3994575A1 (en) | Distributed system that promotes task-machine affinity | |
CN113268355A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1225118 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |