CN109154897A - 可重新配置的分布式处理 - Google Patents
可重新配置的分布式处理 Download PDFInfo
- Publication number
- CN109154897A CN109154897A CN201780030688.XA CN201780030688A CN109154897A CN 109154897 A CN109154897 A CN 109154897A CN 201780030688 A CN201780030688 A CN 201780030688A CN 109154897 A CN109154897 A CN 109154897A
- Authority
- CN
- China
- Prior art keywords
- configuration
- data element
- data
- component
- module
- 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
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- 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/5061—Partitioning or combining of resources
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Peptides Or Proteins (AREA)
Abstract
对数据集合的分布式处理包括接收用于对分布式处理系统进行配置的信息。形成组件的第一配置,组件的所述第一配置包括分布在计算资源(190至194)之中的数据元素的源(110)以及被配置用于处理数据元素的工作器(240)。每个数据元素包括分区值,所述分区值根据分区规则来标识所述工作器的子集。在第一处理时期内从所述源接受所述数据集合的第一部分的数据元素,并且通过所述第一配置来路由所述数据元素。在接受所述数据集合的第一部分之后,启动配置更改,变成第二配置。执行组件的配置之间的一系列两次或更多次转变以得到一系列经修改的配置,所述经修改的配置中的最后一个对应于所述第二配置。在第二处理时期内从所述第二配置的源接受其他的数据元素。
Description
相关申请的交叉引用
本申请要求于2016年5月17日提交的美国申请序列号62/337,422的优先权。
背景技术
本发明涉及一种用于可重新配置分布式处理的方法,并且更具体地涉及可响应于处理位点数量的变化或者数据生成器或消费者位点数量的变化而进行重新配置的分布式处理方法。
对数据元素集进行分布式处理可以使用多个数据元素生成器(即,每个都是数据生成的位点),例如,不同的计算机服务器,或者多处理器系统内的物理处理器或逻辑处理器,每个数据元素生成器都为待处理的部分数据提供数据访问(例如,来自数据库)或数据存储(例如,来自盘文件系统)。类似地,处理的结果可以被发送至多个数据消耗位点(例如,处理、存储、传输),所述多个数据消耗位点也可以是计算机服务器或处理器的集。处理其本身可以分布在不同的处理位点之中,例如,每个位点与不同的物理资源(比如,单独的计算机服务器或者服务器上的处理器)、或逻辑资源(比如,服务器上的操作系统进程、和/或操作系统进程内的处理线程)相关联。一种用于协调所述处理的方法是确定生成器位点、处理位点、和消费者位点例如在基于图形的数据流架构中的安排。
发明内容
在2016年3月3日公开的标题为“Executing Graph-Based ProgramSpecifications(执行基于图形的程序规范)”的美国专利公开2016/0062776中描述了一种用于分布式处理的方法,所述美国专利通过引用结合在此。本系统的一个方面是实施“forall(全面)”操作,其中,对数据集合的所有数据元素进行处理而不一定需要对集合的元素进行严格排序。通常,数据元素源分布在多个计算资源(例如,服务器)上,并且对数据元素的处理结果分布在多个计算资源上。
在一些情况下,对数据集合的数据元素的处理不具有对元素处理的排序和/或并发性方面的约束,并且计算负载和/或存储负载在资源之中的分布很大程度上基于效率考虑因素。
在其他情况下,可能存在两种类型的约束中的一种或两种。第一约束,以下称为“分区约束”,涉及维持某些数据元素子集的严格排序。为了具体说明此约束,每个元素可以包括“分区密钥”字段,并且所述约束是对具有(a)相同分区密钥值并且是(b)从数据源的同一部分(即,从同一存储设备或同一服务器)检索出的数据元素的约束,保证数据元素到达处理位点的顺序与数据元素从此数据源检索出来的顺序相同。通常,可以同时处理对到达处理位点的数据元素的处理。
第二约束,以下称为“并发性约束”,涉及防止在处理位点处对某些数据元素子集中的元素进行并发处理。为了具体说明此约束,每个元素可以包括“并发性密钥”字段,并且所述约束是关于不可以在处理位点处同时对具有相同并发性密钥的两个数据元素进行处理的约束。
系统可以将所述约束中的任一者单独地应用到处理数据元素中,或者可以对处理一起施加这两个约束。在一些示例中,保证具有相同并发性密钥值的两个数据元素具有相同的分区密钥值(例如,并发性密钥是分区密钥的“扩展”),然而,更一般地,并发性密钥值独立于数据元素的分区密钥值。在并发性密钥是分区密钥的扩展(或者所述分区对于具有相同并发性密钥的数据元素而言另外唯一)的情况下,并发性约束保证在系统的任何处理位点处不同时对具有相同并发性密钥的两个数据元素进行处理。
需要提供一种方法,用于在计算资源集上分配对数据集合的元素的“forall”处理,其方式为使得满足以上标识的分区约束和/或并发性约束。还需要一种对处理进行分配的方法,以允许对计算资源进行重新配置或重新定位,同时继续满足分区约束和定序约束。
在一个方面,通常,一种用于对数据集合进行分布式处理的方法包括通过输入设备或端口接收用于配置分布式处理系统的信息,所述配置包括形成所述分布式处理系统的组件的第一配置。所述第一配置包括所述数据集合的数据元素的多个源以及被配置用于处理所述数据集合的数据元素的多个工作器,其中,所述源和所述工作器分布在多个计算资源之中。每个数据元素包括分区值,所述分区值根据组件的所述第一配置的分区规则来标识所述第一配置的所述多个工作器的子集。在至少两个处理时期期间在所述分布式处理系统中处理数据,所述处理包括以下步骤。在第一处理时期内从所述源接受所述数据集合的第一部分的数据元素,并且通过所述第一配置来路由这些数据元素。完成对所述第一部分的这些数据元素中的至少一些的处理,而所述第一部分的其他数据元素(即,除了已经完成处理的数据元素之外的数据元素)在所述第一配置的组件处保持排队。在接受所述数据集合的第一部分之后,启动所述分布式处理系统从所述第一配置到第二配置的配置更改。在启动所述配置更改之后,执行所述系统的组件的配置之间的一系列两次或更多次转变,以形成组件的一系列经修改的配置。在每次转变之后,在所述经修改的配置的组件之间传送数据元素。所述经修改的配置中的最后一个对应于所述第二配置,由此完成从所述第一配置到所述第二配置的转变。在完成到所述第二配置的转变之后,在第二处理时期内从所述第二配置的多个源接受所述数据集合中的其他数据元素。
方面可以包括以下特征中的一项或多项。
所述多个计算资源包括经由通信链路联接的多个处理器。
所述多个计算资源包括在所述多个处理器中的每一个上执行的至少一个处理线程,每个计算资源与不同的处理线程相关联。
每个数据元素源被联接到被配置用于从所述源接受数据元素的分区器模块,并且其中,每个分区器配置有所述分区规则以将数据元素引导至根据所述分区规则所标识的工作器。
执行所述系统的组件的配置之间的所述一系列两次或更多次转变中的第一转变包括:中止所述分区器模块的操作,停止在所述分区器模块处从所述源接受数据元素,对多个分区模块重新配置经修改的分区规则,以及联接从源接受的至少一个数据元素队列,以向重新配置有所述经修改的分区的分区模块提供数据元素。
每个分区器模块与联接到所述分区器模块的源被托管在同一计算资源上,其中,执行数据元素从所述源到所述分区器的传递而无需处理器之间的通信。
所述多个工作器包括一个或多个工作器,所述一个或多个工作器中的每个工作器被联接到被配置用于从多个分区器模块接受数据元素的接受器模块。
执行所述系统的组件的配置之间的所述一系列两次或更多次转变中的第一转变包括:中止所述分区器模块的操作,停止在所述分区器模块处从所述源接受数据元素,中止多个接受器模块的操作,对所述多个分区模块重新配置经修改的分区规则,以及联接所述多个接受器模块的至少一个接受器模块队列,以向重新配置有所述经修改的分区的分区模块提供数据元素。
每个接受器模块与联接到所述接受器模块的工作器被托管在同一计算资源上,其中,执行数据元素从所述接受器模块到所述工作器的传递而无需处理器之间的通信。
第一分区器模块与第一接受器模块被托管在同一计算资源上、并且与第二接受器模块被托管在不同的计算资源上,并且其中,路由所述数据元素包括将数据元素从所述第一分区器模块传递到所述第一接受器模块而无需处理器之间的通信,并且其中,路由所述数据元素包括在对数据元素进行处理器之间的通信以传递到所述第二接受器模块之前在所述第一分区器模块处使所述数据元素排队。
所述多个工作器包括一个或多个工作器,所述一个或多个工作器中的每个工作器被联接到被配置用于从多个分区器模块接受数据元素的接受器模块。
以先进先出顺序从所述分区器模块中的任何一个接收数据元素。
每个数据元素进一步包括序列化值,并且其中,在所述第一处理时期期间,使用所述第一配置进行的处理强制执行序列化策略,由此工作器不会彼此同时处理具有相同序列化值的两个数据元素。
所述多个工作器包括一个或多个工作器,所述一个或多个工作器中的每个工作器被联接到被配置用于从多个分区器模块接受数据元素的接受器模块,所述接受器模块被配置用于强制执行序列化策略,由此联接到所述接受器模块的工作器不会彼此同时处理具有相同序列化值的两个数据元素。
在所述第一处理时期之后并且在所述第二处理时期之前,根据每个经修改的配置进行的处理继续强制执行所述序列化策略。
在所述第一处理时期期间,使用组件的所述第一配置进行的处理强制执行分区策略,由此,以第一顺序从第一数据源接受的具有相同分区值的所有数据元素按所述第一顺序被提供至所述多个工作器的同一子集。
在所述第一处理时期之后并且在所述第二处理时期之前,所述数据的所述第一部分的、从所述第一数据源接受的在所述第一时期内未完成处理并且具有相同分区值的数据元素按所述第一顺序被提供至同一工作器。
在所述经修改的配置的组件之间传送所述数据元素中的至少一些。
所述第二组件配置在以下方面中的至少一方面不同于所述第一配置:(a)分区规则;(b)源集;以及(c)工作器集。例如,所述分区规则可以在被用于执行分区的映射方面或者在所形成分区的数量方面中的任一方面或两方面不同;所述源集可以在所使用源的数量方面或者在托管所述计算资源的服务器上的源布局方面中的任一方面或两方面不同;并且所述工作器集可以在所使用工作器的数量方面或者在托管所述计算资源的服务器上的工作器布局方面中的任一方面或两方面不同。
在另一个方面,通常,存储在非暂态机器可读介质上的软件包括存储在其上的指令。所述指令当由数据处理系统的一个或多个处理器执行时使得所述数据处理系统执行以上陈述的方法中的任一方法的所有步骤。
在另一个方面,通常,分布式处理系统包括多个处理引擎、并且被配置用于执行对分布在所述处理引擎之中的组件的配置。所述系统被配置用于在对来自一个或多个数据源的数据元素进行处理期间,执行以上陈述的方法中的任一方法的所有步骤。
方面可以具有以下优点中的一项或多项。
可以在对数据元素集合进行处理期间执行对系统组件的重新配置,而无需要求所有系统组件完全静态。这样做的结果是,与其他方法相比提高了整体效率或吞吐量。可以出于各种原因启动重新配置,所述原因包括出于与更有效地利用可用资源有关的原因,例如以便匹配正在被处理的数据元素的特征或者可用于被应用于处理的计算资源的特征。
通过以下描述、以及通过权利要求书,本发明的其他特征和优点变得清楚。
附图说明
图1A是分布式处理配置的框图,其包括分区组、接受组、以及用于处理组件的工作组;图1B是分布式处理配置的框图,其将接受组和工作组添加到图1A的配置中;并且图1C是分布式处理配置的框图,其相对于图1A的配置将组件从一个主机迁移到另一个主机;
图2是分区组内的组件配置的框图;
图3是接受组内的组件配置的框图;
图4是接受组的替代性配置的框图;
图5是工作组内的组件配置的框图;
图6是工作组内的替代性组件配置的框图;
图7至图9是分布式处理配置的示例;
图10是重新配置过程的流程图;并且
图11A至图11I是从图11A中示出的对应于图1A的初始配置、通过图11B至图11H中示出的中间配置、到图11I中示出的对应于图1C的最终配置的一系列配置的图解。
具体实施方式
参照图1A,分布式处理系统的分布式处理配置100将数据集合的数据元素从多个源110传递到多个工作组140,在所述多个工作组中所述数据元素被处理或以其他方式被消费。通常,来自源110的数据元素经由分区组120被传递,使得不同的数据元素根据分区规则被传递到不同的目的地。在此配置中,具有相同分区密钥值的元素从各分区组120被传递到同一目的地。通常,所述配置的不同分区组120使用相同的分区规则,这导致具有相同分区密钥值的数据元素被分区组传递到同一目的地。
分区组120将数据元素传递到接受组130。通常,每个分区组使用相同的分区规则,使得任何特定接受组接收数据集合中位于由分区规则限定的特定部分(即,分区密钥值的不相交集)中的所有元素。
每个接受组130将元素传递到一个或多个工作组140,所述一个或多个工作组对传递至该工作组的元素执行处理。通常,每个接受组130以及被所述接受组传递元素的工作组140一起强制执行并发性约束。在此配置中,通常,具有相同并发性密钥值的所有数据元素被分区组路由到同一接受组130,并且然后,接受组130及其工作组140进行操作以防止同时处理具有相同并发性密钥的任何两个元素。
应当理解,图1中展示的组件通常分布在不同的计算资源上。针对图1中的图解,指示了单独的计算资源190至195。资源190和191表示在一个服务器计算机上执行的不同处理线程,并且资源192和193与资源194和195表示在不同服务器计算机上的不同处理线程。因此,表示组件之间的通信的一些组件之间的链路对应于单个线程内的通信(例如,链路111、121、131),一些表示在单个计算机上的不同线程之间的通信(例如,链路132),并且一些表示在服务器计算机之间的通信(例如,链路123)。
可以在执行整体“forall”处理任务之前确定图1A中展示的组件到不同计算资源的分配。有时组件集、或者组件到分布式处理系统的计算资源的分配可能会改变。例如,在图1B中,可以添加第三接受组130、以及另一工作组140。作为另一个示例,在图1C中,来自其中一个服务器(例如,处理线程192和193)的组件被迁移到另一个服务器(例如,线程194和195)。
从图1A的配置转变到图1B的配置的一种情境是为了通过增加工作组的数量来提高处理率。应当认识到,在两个接受组130的情况下,数据元素被分区组120分区到两个部分中;而在具有三个接受组的最终配置中,分区组120执行对数据元素的三路分区。重要的是在从二路分区配置到三路分区配置的转变期间不违反处理规则。从图1A的配置转变到图1C的配置的一种情境是使用可能具有不同能力的不同服务器。
更改配置的一种方法可以是简单地停止从源110提供数据元素,并且等待直到系统完成所有处理,使得在源110与工作组140之间不存在“飞行中的(in flight)”元素。然后,可以启动新的配置而不具有违反由分区密钥约束制定的排序或者根据并发性密钥约束制定的定序的可能性。然而,这种方法可能是低效的,因为在等待已经由源110提供的所有待处理元素的同时,计算资源可能未被充分利用。一种替代性方法使用系统的组件的经修改配置的过渡序列,所述经修改配置的选择方式为使得在每个经修改配置中保持满足约束、并且保持对计算资源的良好利用。在以下描述的实施例中,图1A和图1B中示出的某些组件被实施为多个构成组件,并且配置的过渡序列包括更改这些构成组件之间的连接。在描述用于实现配置的整体更改的转变之前,比如,从图1A中示出的配置到图1B中示出的配置的更改、或从图1A中示出的配置到图1C中示出的配置的更改,在图2至图6中提供了对构成组件的描述。在这些附图中,图1A至图1C的组件被以虚线示出以供参照、示出了构成组件,并且这些组件在其内的互连为实线。
参照图2,分区组120包括先进先出(FIFO)队列211,所述队列通过数据路径111从数据源110接受数据元素。因为队列211是FIFO,因此通过队列来维持分区约束。分区器220实施分区规则,分区器配置有所述分区规则(例如,根据用于表示分区器内或可用于分区器的分区规则的数据的数据存储)。例如,如果分区密钥对应于姓氏,则分区规则可以根据所述姓氏的第一个字母来限定部分,并且范围‘A’至‘H’可以在第一输出数据路径121上传递,‘I’至‘P’通过第二数据路径122传递,并且‘S’至‘Z’在第三数据路径上传递。在一些示例中,分区规则可以使用其他形式的映射来将值映射到数据路径,比如结合了诸如散列函数等的函数的映射。离开分区器220的数据路径可以是各种类型的,包括:(1)保持在同一计算资源(例如,处理器上的同一线程)上的数据路径121;(2)到达在不同计算资源(例如,不同的线程)上执行的组件的数据路径122,其中,不同的计算资源与分区器220的计算资源共享运行时存储器(例如,共享的动态存储器);以及(3)将数据元素传递到不同计算资源所通过的路径223,其中,到所述不同计算资源的通信需要进行处理器之间的通信(例如,数据网络通信)。为了实施来自分区器220的处理器之间的通信,分区组120还包括FIFO队列221,以及通信组件222,所述通信组件负责致使其接收的数据元素通过数据路径123被移动到特定的远程计算资源,例如使用远程过程调用(RPC)机制。
参照图3,接受组130被实施为第一示例、作为使用FIFO队列226的接受组130A,所述FIFO队列可以通过不同类型的数据路径接收数据元素,例如以上描述的数据路径121、122和123。在一些示例中,队列226的先进先出策略可以放宽成仅要求来自任一数据路径的数据元素维持先进先出顺序,例如,通过为每条输入数据路径实施单独的FIFO队列并且例如根据轮询策略依次服务这些队列。图3的接受组130A还包括接受器230,所述接受器可以向多个工作组140提供用于进行处理的数据元素。例如,接受器可以通过数据路径131将数据元素发送到同一计算资源(例如,同一线程)上的一个或多个工作组140、和/或通过数据路径132发送到与其共享运行时存储器的不同计算资源上的一个或多个工作组140。在图3中示出的配置中,接受器可以调度由多个工作组140同时处理的多个数据元素。因此,在实施序列化密钥策略的实施例中,接受器被配置用于通过决不将两个数据元素调度到工作组140使得不能同时处理这两个数据从而强制执行序列化密钥约束。根据用于表示接受器内或可用于分区器的定序规则的数据的数据存储来配置接受器。
参照图4,在一些配置中,接受组130可以被实施为第二示例、作为接受组130B,所述接受组当仅存在单个输入数据路径121以及仅单个输出数据路径131时仅仅具有数据路径239。当这种接受组130B被分配给与其输出工作组140相同的计算资源以及与为其提供数据元素的单个分区组120相同的计算资源时,分区组120(即,此分区组内的分区器220)可以直接向工作组140提供数据元素而完全无需担心违反分区约束和定序约束。
参照图5,在一些配置中,工作组140可以被实施为工作组140A的第一示例。FIFO队列231接收在一个或多个分区组处起源的数据元素,并且维持这些数据元素的顺序(至少在来自每个分区组的数据元素内)。序列化器232通过延迟数据单元来强制执行序列化,以防止具有相同序列化密钥值的两个数据元素位于序列化器下游并且尚未被完全处理。序列化器将数据元素传递到FIFO队列236,并且工作器240启动对来自队列236的数据元素的按序处理并且通常同时处理多于单个数据元素。在本说明书的上下文中,“工作器”是系统的软件实施元件,所述软件实施元件对其接收的数据元素执行工作(即,计算功能、存储功能和传输功能中的一项或多项)。在一些情况下,由工作器执行的工作引起副作用,比如数据库中的数据更改或者工作器可以访问的其他数据存储安排。在一些实施方式中,工作器240可以具有单个执行线程(例如,被实施为操作系统进程、轻量型进程、或线程);而在其他实施方式中,工作器240可以具有彼此不阻碍的多个执行线程,并且应当理解,系统可以具有各种类型的、例如具有不同吞吐量的工作器。
参照图6,工作组140的另一个示例工作组140B包括如图5中示出的示例中的FIFO队列236。在本示例中,不存在序列化约束,并且工作器240直接从队列236接收数据元素,所述数据队列从工作组的输入数据路径接收其数据元素。
通常,考虑到上述构成组件,多种不同的拓扑模式是典型的。在所有这些示例中要观察的一个重要属性是,针对每一对源110与提供数据元素至工作器240的队列236,恰好存在从源到此队列的一条路径。沿着所述路径,当队列中存在缓冲时,其根据FIFO策略。因此,在同一分区中的由所述源提供的所有数据元素按顺序到达所述分区的队列,由此保证满足分区约束。
参照图7至图9,以上介绍的元素支持各种各样的拓扑。以下讨论了三个示例。通常,这些拓扑可以被认为具有十一层,其中每层专用于forall记录生成、路由、序列化和处理的特定功能。
这些拓扑图形的一个重要属性是,任何一对源110与接受组130之间最多存在一条路径。这确保了从同一个源产生并且在同一个分区中处理的记录将总是被按顺序处理,除非在所接受组的下游明确允许重新排序。
参照图7,在相对一般的情况下,在每个引擎790、793、796(其中,每个引擎具有多个处理线程791、792、794、795、797、798)上可以存在许多记录源110被分区到分散在多个其他引擎上的许多分区。forall拓扑中包含的引擎可以托管源与分区组、或者接受组与工作组、或者二者。图7中展示的组件与以上图1至图6的描述编号一致。要注意的一点是,可以在一个处理线程内的多个工作组140之间共享工作器240,如图7中示出的处理线程795。
十一层拓扑模式的完整普遍性并非在所有情况下都需要,因此存在可以应用的各种专用化和优化。参照图8,一种常见模式是从(线程791上的)未分区源110扇出比如串行文件,以跨集群中的所有可用线程791、792、794、795、797、798进行处理。
参照图9,另一种常见使用情况是使用经校准的分区来处理数据,以避免跨引擎移动数据。在本示例中,引擎790与引擎793之间不存在数据传送,尽管每个引擎上利用了多个处理线程。
如以上介绍的,可以在执行之前根据对所需要数据集合的处理、数据源的位置、以及可用的计算资源来确定组件的配置。由于源已经耗尽(即,已经提供其所有数据元素),并且信息结束(EOI)元素通过数据路径传播由此允许组件关闭,当已经完成对数据元素的全部处理时最终关闭所有组件。
如以上介绍的,有时可能希望在对数据集合进行处理期间更改组件配置。这种重新配置的各种原因可以通过添加或移除计算资源(例如,服务器计算机、处理线程等)、或者观察到由特定分区规则导致的负载不均衡并且希望更改分区规则以使负载均衡来提示。
在配置为静止期间,数据元素被正确地分区并且被按顺序处理以满足分区约束。配置为静止期间的这个时间段被称为路由时期。一个路由时期与另一个路由时期之间的转变被实现为一系列重新配置,使得数据元素保持被适当地分区和处理。
如以上介绍的,一种用于进行从一个路由时期到另一个路由时期的转变的方法是基本上停止从源提供数据元素,并且沿着所有路径处理信息结束元素直到所有组件都基本上静态,此时可以对组件进行重新配置并且然后启动下一个时期。然而,应当明显的是,这种方法将导致许多计算资源在转变期间未得到充分利用。
在更高效的方法中,例如配置中单独数据路径的源或目的地被更改,并且单独静态的组件(例如,空队列、空闲工作器等)被终止或在计算机服务器或线程之间移动,并且新的组件被启动且被连接到现有数据路径或新的数据路径。
这种定序的一个示例包括以下步骤,所述步骤被展示在图10中的流程图1000中。
步骤1,暂停多个组件,使得没有数据元素正在被处理。具体地,暂停所有分区器220使得不存在正在被分区组120处理的数据元素(即,参照图2,从队列211读取的任何数据元素已经在输出数据路径121、122、或223上被发射)。还暂停通信组件222,通常在分区器220与通信组件222之间的队列221中留下至少一些数据元素。还暂停接受器230,通常在队列226中留下数据元素。还暂停序列化器232。工作组140的组件继续操作。
步骤2,某些队列中的数据被重新定位到上游队列的头部。具体地,每个队列221的内容在同一分区组120的相应队列211的头部处进入队列,其中,分区器220保持暂停以便这些数据元素不会立即出队。类似地,FIFO队列231以及每个工作组140的队列236的内容在图4中示出的类型130A的上游接受组130的队列226的头部处进入队列,或者当上游接受组130属于图5中示出的类型130B时在来自接受组130的第一下游队列的头部处进入队列。
步骤3,允许完成对工作组140的处理。此时,除了分区组120的队列211以及接受组130的队列226之外,配置中没有数据元素进入队列。
步骤4,然后,配置被更改以移除新配置中不需要的任何接受组130或工作组140,保留具有未决数据元素的队列226。任何保留的接受组130的队列226与其接受器230断开连接,并且新的空队列226被附接到其上。
步骤5,在处理队列211的数据元素或还没有从源100读取出来的数据元素之前,对队列226的数据元素进行处理。构造临时的三层组件配置以用于处理从队列226接受的数据记录,将所述数据记录传递通过根据新配置而配置的分区器220,并且将所述数据记录发送到所述新配置的接受组130。
步骤6,在每个旧队列226的末尾处插入信息结束信息(EOI)标记。对步骤5中构造的临时组件解除暂停,并且系统等待临时组件传递指示它们不被启用的EOI标记。
步骤7,此时,已经在之前的路由时期内被分区的所有现有数据元素在新路由时期内将位于正确的接受器组130中。移除步骤5中构造的临时组件以及旧队列226。
步骤8,在新时期内对分区组120的所有分区器220进行配置。
步骤9,现在,通过添加EOI标记到每个队列来对队列211中来自之前时期的在新时期内不被使用(因为其源100不被使用)的数据元素进行处理,并且然后对这些队列的分区器220(被根据新分区规则来配置)解除暂停。当EOI标记已经传递通过这些分区组的所有组件时,处于“飞行中的”所有数据记录位于其正确接受器组130或工作组140中。
步骤10,移除源100以及不在新配置中使用的相应分区组120。
步骤11,添加新的源100和分区组并且将它们连接到新配置中。
步骤12,对新配置的所有组件解除暂停并且开始新的时期。
参照图11A至图11I,提供了如以上描述的重新配置过程的示例。参照图11A,首先在数据源上执行forall被分区到两个引擎790、793上,并且需要转变源110与其工作组140中的一者。图11A示出了路由时期1期间的初始拓扑,并且图11I示出了已经用引擎796的使用来替代引擎793的使用的期望拓扑。
参照图11B,在步骤1中,暂停由图中的虚线轮廓指示的源110、分区器220、接受器230和序列化器232。在图11B中,所暂停的组件用虚线轮廓展示。参照图11C,在步骤2中,然后将记录从队列221(示例中不存在)移回到队列211的前面,并且从FIFO队列231、序列化器232和队列236移回到队列226的前面,以保留数据元素顺序。参照图11D,在步骤3中,当forall变为空闲时,进程的步骤4通过对拓扑图形的后一半进行重新配置来进行forall拓扑的第一更改。
参照图11E,步骤5临时添加三个等级到拓扑中,以经由新组件将来自旧队列226的数据元素重新分区到新FIFO队列231中,所述新组件包括分区器720、队列721、和通信组件722。
参照图11F,在步骤6中,执行拓扑的此新部分将使数据元素重新分区到新FIFO队列231中。在本示例中,引擎1上的记录保持在引擎1上,但是引擎2上的记录移到引擎3上。通常,重新分区可以是多对多。这允许来自不同源的数据元素混合在FIFO队列231中,但是同一源处起源并且具有相同分区密钥的所有记录将保持有序,因为它们将全部一起位于同一旧FIFO队列中。同样地,在重新分区期间数据元素位于混杂的不同队列中,但是保留在分区和序列化密钥组内的排序。
参照图11G,步骤7和步骤8移除临时组件720、721、722,并且重新配置拓扑的前一半以使用新组件对来自源110的即将离开的数据元素进行重新分区,所述新组件包括分区器820、队列821、和通信组件822。参照图11H,执行过渡拓扑从所有队列211移除了在新路由时期内即将离开去往其正确FIFO队列231的记录。在新路由时期内,步骤10和步骤11将拓扑重新配置成其最终形式,如图11I所示。在对数据重新分区、保留排序以及完全转变拓扑的情况下,可以在新路由时期内安全地恢复对步骤12的执行。
在以上涉及数据入队、或以其他方式将数据从一个队列移到另一个队列的描述中,应当理解,当这种传送的源和目的地具有单个进程或线程或者是在共享某一地址空间的多个进程或线程之中时,可以通过将数据元素留在适当的位置并且仅仅移动指向数据元素的指针来实施移动。类似地,描述将队列A的内容移到队列B的头部、然后对来自队列B的元素进行处理的过程可以通过一系列配置来实施,其中,在第一配置中,队列A依次供应其全部元素,并且在队列A的全部元素都耗尽之后,然后在第二配置中,队列B依次提供其元素。
以上描述的方法可以例如使用执行合适的软件指令的可编程计算系统来实施,或者所述方法可以在合适的硬件中实施,比如现场可编程门阵列(FPGA)或以某种混合形式。例如,在程控方法中,软件可以包括一个或多个计算机程序中的在一个或多个程控的或可编程计算系统(其可以是各种体系架构,比如分布式客户端/服务器、或电网)上执行的过程,所述计算系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和/或非易失性存储器和/或存储元件)、至少一个用户接口(用于使用至少一个输入设备或端口接收输入,并且用于使用至少一个输出设备或端口提供输出)。软件可以包括较大程序的一个或多个模块,例如,提供与对数据流图形的设计、配置、和执行有关的服务的模块。程序模块(例如,数据流图形的元素)可以被实施为数据结构或符合存储在数据储存库中的数据模型的其他经组织的数据。
软件可以以非暂态的形式存储一段时间(例如,动态存储器设备比如动态RAM的刷新周期之间的时间),比如使用介质的物理属性(例如,表面凹坑和岸台、磁畴、或电荷)体现在易失性或非易失性存储介质中、或任何其他非暂态介质中。在准备下载指令时,软件可以提供在有形、非暂态介质比如CD-ROM或其他计算机可读介质(例如,由通用或专用计算系统或设备可读)上,或者可以通过网络的通信介质递送(例如,被编码到传播信号中)到其被执行的计算系统的有形、非暂态介质。所述处理的一些或全部可以在专用计算机上执行,或者使用专用硬件比如协处理器或现场可编程门阵列(FPGA)或专用的、专用集成电路(ASIC)。所述处理可以以分布式方式来实施,其中,由软件指定的计算的不同部分由不同的计算元件执行。每个这种计算机程序优选地存储在或下载到可由通用或专用可编程计算机访问的存储设备的计算机可读存储介质(例如,固态存储器或介质、或者磁性介质或光学介质)上,以便当由计算机读取存储设备介质以执行本文中描述的处理时,对计算机进行配置和操作。也可以认为本发明的系统被实施为配置有计算机程序的有形非暂态介质,其中,如此配置的介质致使计算机以指定的且预定义的方式操作以便执行本文中描述的处理步骤中的一项或多项。
已经描述了本发明的多个实施例。然而,应当理解,前述描述旨在说明而非限制本发明的范围,本发明的范围由以下权利要求书的范围限定。因此,其他实施例也在以下权利要求书的范围内。例如,在不背离本发明的范围的情况下,可以进行各种修改。另外,上述步骤中的一些步骤可以是顺序独立的,并且因此可以以与所描述的顺序不同的顺序来执行。
Claims (21)
1.一种用于对数据集合进行分布式处理的方法,所述方法包括:
通过输入设备或端口接收用于配置分布式处理系统的信息,所述配置包括形成所述分布式处理系统的组件的第一配置,所述第一配置包括所述数据集合的数据元素的多个源以及被配置用于处理所述数据集合的数据元素的多个工作器,所述源和所述工作器分布在多个计算资源之中,其中,每个数据元素包括分区值,所述分区值根据所述第一配置的分区规则来标识所述第一配置的所述多个工作器的子集;以及
在至少两个处理时期期间在所述分布式处理系统中处理数据,所述处理包括:
在第一处理时期内从所述源接受所述数据集合的第一部分的数据元素,并且通过所述第一配置来路由所述数据元素并完成对所述数据元素中的至少一些的处理,其中,所述第一部分的所述数据元素中的其他数据元素在所述第一配置的组件处保持排队;
在接受所述数据集合的第一部分之后,启动所述分布式处理系统从所述第一配置到第二配置的配置更改;
在启动所述配置更改之后,执行所述系统的组件的配置之间的一系列两次或更多次转变以得到组件的一系列经修改的配置,并且在每次转变之后致使在所述经修改的配置的组件之间进行数据元素的传送,其中,所述经修改的配置中的最后一个对应于所述第二配置,由此完成从所述第一配置到所述第二配置的转变;以及
在完成到所述第二配置的转变之后,在第二处理时期内从所述第二配置的多个源接受所述数据集合中的其他数据元素。
2.如权利要求1所述的方法,其中,所述多个计算资源包括经由通信链路联接的多个处理器。
3.如权利要求2所述的方法,其中,所述多个计算资源包括在所述多个处理器中的每一个上执行的至少一个处理线程,每个计算资源与不同的处理线程相关联。
4.如任一前述权利要求所述的方法,其中,每个数据元素的源被联接到被配置用于从所述源接受数据元素的分区器模块,并且其中,每个分区器配置有所述分区规则以将数据元素引导至根据所述分区规则所标识的工作器。
5.如权利要求4所述的方法,其中,执行所述系统的组件的配置之间的所述一系列两次或更多次转变中的第一转变包括:
中止所述分区器模块的操作,停止在所述分区器模块处从所述源接受数据元素;
对多个分区模块重新配置经修改的分区规则;以及
联接从源接受的至少一个数据元素队列,以向重新配置有所述经修改的分区的分区模块提供数据元素。
6.如权利要求4所述的方法,其中,每个分区器模块与联接到所述分区器模块的源被托管在同一计算资源上,其中,执行数据元素从所述源到所述分区器的传递而无需处理器之间的通信。
7.如权利要求4或6所述的方法,其中,所述多个工作器包括一个或多个工作器,所述一个或多个工作器中的每个工作器被联接到被配置用于从多个分区器模块接受数据元素的接受器模块。
8.如权利要求7所述的方法,其中,执行所述系统的组件的配置之间的所述一系列两次或更多次转变中的第一转变包括:
中止所述分区器模块的操作,停止在所述分区器模块处从所述源接受数据元素;
中止多个接受器模块的操作;
对所述多个分区模块重新配置经修改的分区规则;以及
联接所述多个接受器模块的至少一个接受器模块队列,以向重新配置有所述经修改的分区的分区模块提供数据元素。
9.如权利要求7或8所述的方法,其中,每个接受器模块与联接到所述接受器模块的工作器被托管在同一计算资源上,其中,执行数据元素从所述接受器模块到所述工作器的传递而无需处理器之间的通信。
10.如权利要求7至9中任一项所述的方法,其中,第一分区器模块与第一接受器模块被托管在同一计算资源上、并且与第二接受器模块被托管在不同的计算资源上,并且其中,路由所述数据元素包括将数据元素从所述第一分区器模块传递到所述第一接受器模块而无需处理器之间的通信,并且其中,路由所述数据元素包括在对数据元素进行处理器之间的通信以传递到所述第二接受器模块之前在所述第一分区器模块处使所述数据元素排队。
11.如任一前述权利要求所述的方法,其中,所述多个工作器包括一个或多个工作器,所述一个或多个工作器中的每个工作器被联接到被配置用于从多个分区器模块接受数据元素的接受器模块。
12.如权利要求11所述的方法,其中,以先进先出顺序从所述分区器模块中的任何一个接收数据元素。
13.如任一前述权利要求所述的方法,其中,每个数据元素进一步包括序列化值,并且其中,在所述第一处理时期期间,使用所述第一配置进行的处理强制执行序列化策略,由此工作器不会彼此同时处理具有相同序列化值的两个数据元素。
14.如权利要求13所述的方法,其中,所述多个工作器包括一个或多个工作器,所述一个或多个工作器中的每个工作器被联接到被配置用于从多个分区器模块接受数据元素的接受器模块,所述接受器模块被配置用于强制执行序列化策略,由此联接到所述接受器模块的工作器不会彼此同时处理具有相同序列化值的两个数据元素。
15.如权利要求13或14所述的方法,其中,在所述第一处理时期之后并且在所述第二处理时期之前,根据每个经修改的配置进行的处理继续强制执行所述序列化策略。
16.如任一前述权利要求所述的方法,其中,在所述第一处理时期期间,使用组件的所述第一配置进行的处理强制执行分区策略,由此,以第一顺序从第一数据源接受的具有相同分区值的所有数据元素按所述第一顺序被提供至所述多个工作器的同一子集。
17.如权利要求16所述的方法,其中,在所述第一处理时期之后并且在所述第二处理时期之前,所述数据的所述第一部分的、从所述第一数据源接受的在所述第一处理时期内未完成处理并且具有相同分区值的数据元素按所述第一顺序被提供至同一工作器。
18.如权利要求17所述的方法,其中,在所述经修改的配置的组件之间传送所述数据元素中的至少一些。
19.如任一前述权利要求所述的方法,其中,组件的所述第二配置在以下方面中的至少一个方面不同于所述第一配置:(a)分区规则;(b)源集;以及(c)工作器集。
20.一种以非暂态形式存储在机器可读介质上的用于对数据集合进行分布式处理的软件,所述软件包括当由数据处理系统的一个或多个处理器执行时使得所述数据处理系统进行以下操作的指令:
通过输入设备或端口接收用于配置分布式处理系统的信息,所述配置包括形成所述分布式处理系统的组件的第一配置,所述第一配置包括所述数据集合的数据元素的多个源以及被配置用于处理所述数据集合的数据元素的多个工作器,所述源和所述工作器分布在多个计算资源之中,其中,每个数据元素包括分区值,所述分区值根据所述第一配置的分区规则来标识所述第一配置的所述多个工作器的子集;以及
在至少两个处理时期期间在所述分布式处理系统中处理数据,所述处理包括:
在第一处理时期内从所述源接受所述数据集合的第一部分的数据元素,并且通过所述第一配置来路由所述数据元素并完成对所述数据元素中的至少一些的处理,其中,所述第一部分的所述数据元素中的其他数据元素在所述第一配置的组件处保持排队;
在接受所述数据集合的第一部分之后,启动所述分布式处理系统从所述第一配置到第二配置的配置更改;
在启动所述配置更改之后,执行所述系统的组件的配置之间的一系列两次或更多次转变以得到组件的一系列经修改的配置,并且在每次转变之后致使在所述经修改的配置的组件之间进行数据元素的传送,其中,所述经修改的配置中的最后一个对应于所述第二配置,由此完成从所述第一配置到所述第二配置的转变;以及
在完成到所述第二配置的转变之后,在第二处理时期内从所述第二配置的多个源接受所述数据集合中的其他数据元素。
21.一种分布式处理系统,所述分布式处理系统包括多个处理引擎、并且被配置用于根据组件的第一配置来执行对分布在所述处理引擎之中的组件的配置,并且用于经由所述系统的组件的配置之间的一系列转变以得到组件的一系列经修改的配置,来实现到组件的第二配置的转变,其中,组件的所述第一配置包括:
数据集合的数据元素的多个源以及被配置用于处理所述数据集合的数据元素的多个工作器,所述源和所述工作器分布在多个处理引擎之中,其中,每个数据元素包括分区值,所述分区值根据所述第一配置的分区规则来标识所述第一配置的所述多个工作器的子集;
多个分区器模块,每个分区器模块被配置用于从所述源接受数据元素,并且其中,每个分区器配置有所述分区规则以将数据元素引导至根据所述分区规则所标识的工作器;以及
多个接受器模块,每个接受器模块被配置用于从多个分区器模块接受数据元素、并且用于向至少一个工作器提供数据元素;
其中,所述系统被配置用于通过执行所述系统的组件的配置之间的一系列两次或更多次转变以得到组件的一系列经修改的配置、并且在每次转变之后致使在所述经修改的配置的组件之间进行数据元素的传送来从所述第一配置更改成所述第二配置,其中,所述经修改的配置中的最后一个对应于所述第二配置,由此完成从所述第一配置到所述第二配置的转变。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662337422P | 2016-05-17 | 2016-05-17 | |
US62/337,422 | 2016-05-17 | ||
PCT/US2017/033033 WO2017201127A1 (en) | 2016-05-17 | 2017-05-17 | Reconfigurable distributed processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109154897A true CN109154897A (zh) | 2019-01-04 |
CN109154897B CN109154897B (zh) | 2022-01-21 |
Family
ID=58873888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780030688.XA Active CN109154897B (zh) | 2016-05-17 | 2017-05-17 | 分布式处理方法、存储介质、和分布式处理系统 |
Country Status (9)
Country | Link |
---|---|
US (2) | US10606827B2 (zh) |
EP (1) | EP3458959B1 (zh) |
JP (1) | JP6698177B2 (zh) |
KR (1) | KR102181640B1 (zh) |
CN (1) | CN109154897B (zh) |
AU (1) | AU2017266901B2 (zh) |
CA (1) | CA3024375C (zh) |
SG (1) | SG11201809097WA (zh) |
WO (1) | WO2017201127A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3391214B1 (en) | 2015-12-17 | 2021-09-08 | AB Initio Technology LLC | Processing data using dynamic partitioning |
KR102181640B1 (ko) | 2016-05-17 | 2020-11-23 | 아브 이니티오 테크놀로지 엘엘시 | 재구성가능한 분산 처리 |
EP3258382B1 (en) * | 2016-06-14 | 2021-08-11 | Arm Ltd | A storage controller |
US10862755B2 (en) * | 2017-06-30 | 2020-12-08 | Oracle International Corporation | High-performance data repartitioning for cloud-scale clusters |
US9934287B1 (en) | 2017-07-25 | 2018-04-03 | Capital One Services, Llc | Systems and methods for expedited large file processing |
US10409601B2 (en) * | 2017-12-29 | 2019-09-10 | Intel Corporation | Apparatus and method for loop flattening and reduction in a single instruction multiple data (SIMD) pipeline |
WO2020006571A1 (en) | 2018-06-29 | 2020-01-02 | pulseData Inc. | Machine learning systems and methods for predicting risk of renal function decline |
US11061596B2 (en) | 2019-11-04 | 2021-07-13 | Google Llc | Multi-pass distributed data shuffle |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1771479A (zh) * | 2003-04-30 | 2006-05-10 | 国际商业机器公司 | 取得优化价值的配置分布式计算系统的元素的方法和系统 |
US20060155778A1 (en) * | 2004-12-03 | 2006-07-13 | Oracle International Corporation | Updateable fan-out replication with reconfigurable master association |
CN102197389A (zh) * | 2008-10-24 | 2011-09-21 | 微软公司 | 分布式数据系统中的配置管理 |
CN102224492A (zh) * | 2008-12-02 | 2011-10-19 | 起元技术有限责任公司 | 数据维护系统 |
CN103778015A (zh) * | 2006-05-16 | 2014-05-07 | 起元科技有限公司 | 在基于图的计算中的计算资源管理 |
CN104094248A (zh) * | 2012-02-02 | 2014-10-08 | 微软公司 | 分布式系统中的自更新功能 |
CN104092718A (zh) * | 2013-12-12 | 2014-10-08 | 腾讯数码(天津)有限公司 | 分布式系统及分布式系统中配置信息的更新方法 |
US20150046541A1 (en) * | 2013-08-06 | 2015-02-12 | Oracle International Corporation | System and method for providing a messaging cluster with hybrid partitions |
CN105279603A (zh) * | 2015-09-11 | 2016-01-27 | 福建师范大学 | 可动态配置的大数据分析系统及方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5241652A (en) | 1989-06-08 | 1993-08-31 | Digital Equipment Corporation | System for performing rule partitioning in a rete network |
US5819021A (en) | 1995-12-11 | 1998-10-06 | Ab Initio Software Corporation | Overpartitioning system and method for increasing checkpoints in component-based parallel applications |
CA2891145C (en) | 2003-06-25 | 2019-02-19 | Craig W. Stanfill | Computer-aided parallelizing of computation graphs |
US20070016907A1 (en) | 2005-07-12 | 2007-01-18 | Fabio Benedetti | Method, system and computer program for automatic provisioning of resources to scheduled jobs |
US7793147B2 (en) | 2006-07-18 | 2010-09-07 | Honeywell International Inc. | Methods and systems for providing reconfigurable and recoverable computing resources |
US9251207B2 (en) | 2007-11-29 | 2016-02-02 | Microsoft Technology Licensing, Llc | Partitioning and repartitioning for data parallel operations |
US20090287986A1 (en) | 2008-05-14 | 2009-11-19 | Ab Initio Software Corporation | Managing storage of individually accessible data units |
JP5088234B2 (ja) * | 2008-05-23 | 2012-12-05 | 富士通株式会社 | メッセージ紐付け処理装置、方法及びプログラム |
US9043401B2 (en) | 2009-10-08 | 2015-05-26 | Ebay Inc. | Systems and methods to process a request received at an application program interface |
US8380724B2 (en) * | 2009-11-24 | 2013-02-19 | Microsoft Corporation | Grouping mechanism for multiple processor core execution |
JP5489689B2 (ja) | 2009-12-14 | 2014-05-14 | オリンパス株式会社 | 照明装置及び内視鏡 |
US9007898B2 (en) | 2011-02-01 | 2015-04-14 | Google Inc. | System to share network bandwidth among competing applications |
US9817700B2 (en) | 2011-04-26 | 2017-11-14 | International Business Machines Corporation | Dynamic data partitioning for optimal resource utilization in a parallel data processing system |
US8935705B2 (en) * | 2011-05-13 | 2015-01-13 | Benefitfocus.Com, Inc. | Execution of highly concurrent processing tasks based on the updated dependency data structure at run-time |
EP3069275A4 (en) | 2013-11-11 | 2017-04-26 | Amazon Technologies, Inc. | Data stream ingestion and persistence techniques |
CN105335376B (zh) * | 2014-06-23 | 2018-12-07 | 华为技术有限公司 | 一种流处理方法、装置及系统 |
US9760406B2 (en) | 2014-09-02 | 2017-09-12 | Ab Initio Technology Llc | Controlling data processing tasks |
EP3189422A1 (en) * | 2014-09-02 | 2017-07-12 | AB Initio Technology LLC | Executing graph-based program specifications |
US10356150B1 (en) * | 2014-12-15 | 2019-07-16 | Amazon Technologies, Inc. | Automated repartitioning of streaming data |
EP3391214B1 (en) * | 2015-12-17 | 2021-09-08 | AB Initio Technology LLC | Processing data using dynamic partitioning |
KR102181640B1 (ko) | 2016-05-17 | 2020-11-23 | 아브 이니티오 테크놀로지 엘엘시 | 재구성가능한 분산 처리 |
-
2017
- 2017-05-17 KR KR1020187036267A patent/KR102181640B1/ko active IP Right Grant
- 2017-05-17 EP EP17727046.9A patent/EP3458959B1/en active Active
- 2017-05-17 AU AU2017266901A patent/AU2017266901B2/en active Active
- 2017-05-17 SG SG11201809097WA patent/SG11201809097WA/en unknown
- 2017-05-17 CA CA3024375A patent/CA3024375C/en active Active
- 2017-05-17 CN CN201780030688.XA patent/CN109154897B/zh active Active
- 2017-05-17 US US15/597,302 patent/US10606827B2/en active Active
- 2017-05-17 JP JP2018558175A patent/JP6698177B2/ja active Active
- 2017-05-17 WO PCT/US2017/033033 patent/WO2017201127A1/en unknown
-
2020
- 2020-03-27 US US16/832,111 patent/US20210049146A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1771479A (zh) * | 2003-04-30 | 2006-05-10 | 国际商业机器公司 | 取得优化价值的配置分布式计算系统的元素的方法和系统 |
US20060155778A1 (en) * | 2004-12-03 | 2006-07-13 | Oracle International Corporation | Updateable fan-out replication with reconfigurable master association |
CN103778015A (zh) * | 2006-05-16 | 2014-05-07 | 起元科技有限公司 | 在基于图的计算中的计算资源管理 |
CN102197389A (zh) * | 2008-10-24 | 2011-09-21 | 微软公司 | 分布式数据系统中的配置管理 |
CN102224492A (zh) * | 2008-12-02 | 2011-10-19 | 起元技术有限责任公司 | 数据维护系统 |
CN104094248A (zh) * | 2012-02-02 | 2014-10-08 | 微软公司 | 分布式系统中的自更新功能 |
US20150046541A1 (en) * | 2013-08-06 | 2015-02-12 | Oracle International Corporation | System and method for providing a messaging cluster with hybrid partitions |
CN104092718A (zh) * | 2013-12-12 | 2014-10-08 | 腾讯数码(天津)有限公司 | 分布式系统及分布式系统中配置信息的更新方法 |
CN105279603A (zh) * | 2015-09-11 | 2016-01-27 | 福建师范大学 | 可动态配置的大数据分析系统及方法 |
Non-Patent Citations (2)
Title |
---|
M.NIKOLAIDOU等: "USING UML TO MODEL DISTRIBUTED SYSTEM ARCHITECTURES", 《ISCA INTERNATIONAL CONFERENCE ON COMPUTER APPLICATIONS IN INDUSTRY & ENGINEERING》 * |
吴旻: "基于Web_Services的可配置异构数据整合系统开发", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
KR102181640B1 (ko) | 2020-11-23 |
CA3024375A1 (en) | 2017-11-23 |
US20210049146A1 (en) | 2021-02-18 |
KR20190007043A (ko) | 2019-01-21 |
US20170337241A1 (en) | 2017-11-23 |
JP6698177B2 (ja) | 2020-05-27 |
WO2017201127A1 (en) | 2017-11-23 |
US10606827B2 (en) | 2020-03-31 |
SG11201809097WA (en) | 2018-11-29 |
EP3458959B1 (en) | 2023-03-22 |
CN109154897B (zh) | 2022-01-21 |
CA3024375C (en) | 2021-04-27 |
AU2017266901B2 (en) | 2020-01-16 |
AU2017266901A1 (en) | 2018-11-15 |
EP3458959A1 (en) | 2019-03-27 |
JP2019517065A (ja) | 2019-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154897A (zh) | 可重新配置的分布式处理 | |
EP3738045B1 (en) | Distributed partitioned map reduce using a data fabric | |
CN103309738B (zh) | 用户作业调度方法及装置 | |
US9846589B2 (en) | Virtual machine placement optimization with generalized organizational scenarios | |
JP6581727B2 (ja) | 動的なパーティショニングを使用してデータを処理すること | |
Alhusaini et al. | A unified resource scheduling framework for heterogeneous computing environments | |
CN108228354A (zh) | 调度方法、系统、计算机设备和介质 | |
US9753778B2 (en) | Domain-agnostic resource allocation framework | |
US20200174844A1 (en) | System and method for resource partitioning in distributed computing | |
CN105765578A (zh) | 分布式文件系统中的数据的并行访问 | |
Amalarethinam et al. | An Overview of the scheduling policies and algorithms in Grid Computing | |
CN104199912B (zh) | 一种任务处理的方法及装置 | |
US20130145032A1 (en) | Candidate set solver with user advice | |
IL264794B2 (en) | Scheduling of tasks on a multi-processor device | |
US20230342186A1 (en) | Priority-based directed acyclic graph scheduling | |
US20120030446A1 (en) | Method and system for providing distributed programming environment using distributed spaces, and computer readable recording medium | |
CN101299758B (zh) | 一种大规模事件处理的规则群组系统及处理方法 | |
WO2020005596A1 (en) | Actor model programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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: 40001208 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |