CN105164634A - 批处理元组 - Google Patents
批处理元组 Download PDFInfo
- Publication number
- CN105164634A CN105164634A CN201380076054.XA CN201380076054A CN105164634A CN 105164634 A CN105164634 A CN 105164634A CN 201380076054 A CN201380076054 A CN 201380076054A CN 105164634 A CN105164634 A CN 105164634A
- Authority
- CN
- China
- Prior art keywords
- tuple
- batch processing
- major key
- cryptographic hash
- operation device
- 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/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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种批处理元组的技术可以包括确定多个元组的多个主键属性,创建批处理元组以及计算批处理元组的哈希值。
Description
背景技术
从数据源接收的数据可以作为流被传递。在相对大量的数据将被处理的情况下,可以提供具有多个处理节点的分布式流传输系统,以并行执行数据流的不同部分的处理。
附图说明
图1是根据本公开用于批处理元组的示例过程的流程图。
图2是根据本公开使用垂直布局批处理元组的示例过程的示意图。
图3是根据本公开针对多个用户操作器实例利用独特批处理的分布式流传输系统的示例的示意图。
图4是根据本公开针对多个用户操作器实例利用共享批处理的分布式流传输系统的示例的示意图。
图5示出根据本公开的系统的示例。
具体实施方式
由于实时或近实时处理多个数据片段的应用程序的普及,流传输系统的使用逐渐增加。流传输系统可以将从多个数据源接收的数据作为数据流传递(例如,以数据和/或信息的数字编码包的序列)。例如,检索引擎和社交媒体应用程序可以使用流传输系统来实时处理多个查询和消息。在一些示例中,流传输系统可以包括可以执行并行处理(例如,同时执行数据流中的部分数据流的处理)的分布式流传输系统。利用并行处理的分布式流传输系统可以增加整个系统的性能。
流传输系统可以包括多个流操作器。流操作器可以包括产生要发送至用户操作器以进行消费的数据流的发布者操作器。用户操作器可以从另一流操作器接收数据流(例如,从发布者操作器和/或另一用户操作器)。流操作器(例如,发布者操作器和/或用户操作器)可以包括多个实例。实例可以包括程序(例如,计算机可读指令)的可执行版本的拷贝和/或载入到计算设备上的存储器中的进程。
流操作器之间的数据流可以被建模为包括节点和边缘的有向无环图(DAG),其中节点表示流操作器,而边缘表示节点之间的连接。流操作器可以包括在处理器上执行以执行特定功能(诸如特定算术功能)的机器可读指令。另外,流操作器可以产生将被发送至其它流操作器的输出流,输出流将被发送至其它流操作器。例如,流操作器可以从源操作器接收包括数据的元组,并且可以处理该元组,以产生输出元组,输出元组将被发送至另一流操作器以进行处理。
通常,分布式流传输系统可将元组从发布者操作器独立地传输至用户操作器。然而,这个过程可能耗时且占用资源。相反,分布式流传输系统可以批处理元组,与独立输送元组相比,其可以改进流传输系统的吞吐量。批处理可以包括把元组聚集在一起(例如,作为一批),以同时和/或更有效地处理这些元组。
在非数据并行流传输系统中,批处理可以在不考虑元组的内容的情况下(例如,在不考虑元组的属性的情况下)被完成。然而,在分布式流传输系统中,元组不可以被任意批处理。为了实现分布式流传输系统的有效操作,具有特定属性(例如,用于识别元组的值和/或质量)的元组可以被一致地路由至对应的用户操作器实例。对应的用户操作器实例可以处理数据且可能缓存给定元组的数据。如果给定元组的数据不被路由至对应的用户操作器实例,则数据分组语义不可能实现,这可导致通过不止一个流操作器来处理给定数据片段。虽然性能优化系统可以被用于确定数据流中的哪些元组要批处理并确定最优批处理大小,但这可导致许多批处理被发送至相同的客户,这增加了延迟并增加存储器利用率。此外,这种技术可能要求用户在书写数据流要求时考虑批处理,这是因为批处理方案不是透明的。
相反,根据本公开的多个示例,元组可以基于特定主键(例如,多个属性和/或特征)被一起批处理,并基于该主键而发送至用户操作器实例。这可以通过计算批处理元组的数字和/或字母数字的值(例如,哈希值)来确定向哪个用户操作器实例发送批处理元组。以这种方式批处理元组可以使批处理的数目最小化,同时满足分区要求和减少延迟。另外,这个技术可以相对于底层的流传输系统和用户代码实现透明的实施方式,由此在不改变流传输系统的代码或用户程序的代码的情况下实现批处理。此外,以这种方式批处理元组可以独立于底层的流传输系统的实施方式而实施。以下结合附图描述另外的示例、优点、特征、修改例等。
在本公开的以下具体描述中,参考了形成本公开一部分并且其中通过图示示出怎样可以实践本公开的示例的附图。这些示例被足够仔细的描述,以使得本领域普通技术人员能够实施本公开的示例,并且可以理解的是,其它示例可以被使用,并且在不偏离本公开的范围的情况下,可以作出过程、电性和/或结构的改变。
这里的附图遵循编号法则,其中第一数字对应于图号,并且剩下的数字识别附图中的元件或部件。不同的附图之间类似的元件或部件可以通过使用类似的数字来识别。在这里的各个示例中示出的元件可以被添加、交换和/或消除,以提供本公开中的多个附加示例。
此外,附图中提供的元件的比例和相对尺寸旨在示出本公开的示例,并且不应该以限制意义来考虑。如这里使用,标识符“N”,特别是相对于附图中的附图标记,指示如此指定的多个特定特征可以为本公开的多个示例所包括。同样,如这里使用,“多个”元件和/或特征可以指这些元件和/或特征中的一个或多个。
图1是根据本公开的用于批处理元组的方法100的流程图。在101,方法100可以包括确定多个元组的多个主键属性。在一些示例中,多个元组的多个属性可以由处理节点确定。这里使用的处理节点可以包括通信地联接在网络基础设施中的多个计算机和/或处理器。每个处理节点可以执行流操作器,流操作器将相应操作应用于由处理节点接收的数据。在多个示例中,在处理节点中执行的流操作器可以转换接收的数据和/或可以基于接收的数据计算结果数据。
处理节点还可以处理数据流输入。例如,数据流输入可以包括由处理节点处理的连续的数据流。分布式流传输系统可以使用处理节点处理数据流输入,并将处理的数据作为数据流输出而输出。在一些示例中,处理节点可以包括可以执行诸如指令流水线的并行处理的多个多核中央处理单元(CPU)。
在各种示例中,处理节点可以确定数据流中多个元组中的每一个元组的多个属性。确定多个元组中的每一个元组的多个属性可以包括执行计算机可读指令,以将特定的分类(例如,属性)分配给该元组。属性可以描述元组中包括的数据的类型和/或分类。元组可以包括多个属性,其中每个相应的属性包括多个值。例如,元组的涉及企业员工的属性可以包括员工标识符、员工姓名和/或部门标识符(以识别员工工作的部门)。在这个示例中,元组中的每个属性可以包括诸如员工标识符数字、员工姓名的拼写和/或相应员工的部门标识符的字母数字值的值。然而,示例不会是如此限制性的,属性可以包括用于识别元组的各种不同值。
在一些示例中,元组可以包括多个属性,该多个属性中的至少一些是主键属性。主键属性可以包括用于将元组匹配至主键的属性,以识别元组所属于的组(例如,批处理元组)。作为示例,如果元组包括属性X、Y和Z,并且主键包括属性X,则X可以是元组的主键属性。在不同示例中,主键可以包括多个属性,诸如X和Y,在此例子中,X和Y可以是元组的主键属性。
在103,方法100可以包括通过发布者操作器创建包含基于多个属性的多个列表的批处理元组。每个列表可以包括多个属性和/或主键属性。
多个元组可以被结合(例如,批处理)到较大的消息(例如,批处理元组)内,以从第一流操作器实例发送至第二流操作器实例。元组可以基于元组属于哪个组而一起被批处理(例如,基于主键的数据分布)。换言之,元组可以基于主键被批处理,其中该主键可以识别批处理元组的多个主键属性。作为示例,如果主键包括属性X,则基于该主键创建的批处理元组可以包括包含主键属性X的元组。在不同的示例中,主键可以包括多个属性,诸如X和Y,在这种情况下,批处理元组可以包括包含主键属性X和Y的元组。如涉及图2进一步讨论的,批处理元组可以通过创建多个元组的主键属性的多个列表来创建(例如,垂直布局),其中多个列表中的每一个对于主键属性包括相同的哈希值。
元组的批处理可以由发布者操作器实例在位于用于将批处理元组发送至用户操作器实例的处理节点之前的处理节点中执行。如这里使用,批处理元组可以包括包含相应主键的主键属性的主键部分,和/或包括包含分组元组的有效负荷部分。批处理元组的有效负荷中的分组元组可以被提供在包括多个行的关系(例如,表格)中,多个行包含已经被批处理至批处理元组中的元组中相应的一个。
在105,方法100可以包括通过发布者操作器基于多个列表来计算批处理元组的哈希值。如这里进一步公开的,哈希值可以包括可以识别流操作器实例的相应分区的数字和/或字母数字值。
在一些示例中,数据流可以跨多个流操作器实例被分区,以进行并行处理。在这些示例中,对数据流进行分区可以包括哈希分区。哈希分区可以包括基于批处理元组中主键的相应值计算哈希值,诸如通过将哈希函数应用于批处理元组的主键属性。哈希值可以识别流操作器实例的相应分区。例如,哈希值的第一哈希值和/或第一范围可以对应于第一分区(例如,第一流操作器实例),哈希值的第二哈希值和/或第二范围可以对应于第二分区(例如,第二流操作器实例)等。
如涉及图2进一步讨论的,哈希值可以基于多个列表(例如,单独属性列表中的每一个)来计算。多个列表中的每一个中的任一个主键属性的哈希值可以包括相等的值。由此,可以选择批处理元组中的每个列表中的任意主键属性,并且可以针对该任意值计算哈希值。通过针对批处理元组内的每个列表计算哈希值,可以针对批处理元组计算哈希值。一旦批处理元组的哈希值被确定,批处理元组可以被发送至对应的用户操作器实例。
图2是根据本公开使用垂直布局批处理元组的示例过程200的示意图。如图所示,可以通过创建一系列中间批处理元组(例如,204、206、208)来创建批处理元组,其中多个元组中的每个主键属性被添加至批处理元组中的多个列表。例如,批处理元组210包括列表212-5、214-5和216-5,其中每个列表包含多个主键属性(例如,a1、b1、c1、a2、b2、c2和a3、b3、c3)。上述的示例示出包括三个列表的批处理元组,其中每个列表包括四个主键属性。然而,示例并不被如此限制性。批处理元组可以包括多个不同的列表,该多个不同的列表包括多个不同的属性,其中属性中的至少一些是主键属性。然而,批处理中的每个列表(例如,212-5)包括具有相同哈希值的多个主键属性。换言之,在列表212-5中,主键属性a1的哈希值与主键属性b1的哈希值相同,主键属性b1的哈希值与主键属性c1的哈希值相同。
为了建立批处理元组210,多个元组218(例如,t1、t2、t3、t4)可以以数据输入流被接收。可以针对多个元组218中的每一个确定多个属性。例如,a1、a2和a3可以表示元组1(例如,t1)的三个主键属性。类似地,b1、b2和b3可以表示元组2(例如,t2)的相同的三个主键属性,等等。
第一中间批处理元组204可以通过将元组1的主键属性添加至每个列表212-1、214-1和216-1来创建。如果元组1的主键属性1的值是a1,则列表212-2中的第一值可以是a1。类似地,如果元组1的主键属性2的值是a2,则列表214-2中的第一值可以是a2。
第二中间批处理元组206可以通过将元组2的主键属性添加至每个列表212-2、214-2和216-2来创建。例如,如果元组2的主键属性1的值是b1,则列表212-3中的第二值是b1。元组2的第二和第三主键属性可以被分别添加至列表214-3和216-3中的第二位置。
第三中间批处理元组208可以通过将元组3的主键属性添加至每个列表212-3、214-3和216-3来创建。与第一中间批处理元组204和第二中间批处理元组206一样,元组3中的每个主键属性可以被添加至列表212-4、214-4和216-4中的第三位置。
批处理元组210可以通过将元组4的主键属性添加至列表212-4、214-4和216-4来创建。在上述示例中,多个元组218中的每一个包括三个主键属性,并且批处理元组210包括三个列表(例如,列表的数目等于多个元组中主键属性的数目)。然而,根据本公开的示例不被如此限制性。在另一示例中,如果多个元组218中的每一个包括五个主键属性,则批处理元组210会包括五个列表。在又一个示例中,并且如批处理元组210所示,包括多个列表(例如,212-5、214-5和216-5)的主键属性的数目等于多个元组218中的元组的数目。
在一些示例中,可以计算批处理元组210的哈希值。可以通过从每个列表212-5、214-5和216-5中选择一值并计算所选择的值中的每一个的哈希值,来计算批处理元组210的哈希值。例如,批处理元组210的哈希值可以包括主键属性a1的哈希值、主键属性a2的哈希值和主键属性a3的哈希值。然而,在多个示例中,批处理元组210的哈希值可以包括批处理元组中主键属性的仅仅一部分的哈希值。例如,批处理元组210的哈希值可以包括主键属性a1的哈希值和主键属性a2的哈希值。在任一个示例中,所选择的主键属性可以选自每个列表212-5、214-5和216-5内的相同位置。
图3是根据本公开的针对多个用户操作器实例利用独特批处理的分布式流传输系统的示例的示意图。在多个示例中,发布者操作器实例(例如,307)中的处理节点可以将多个批处理元组发送至多个用户操作器实例(例如,309-1、309-2、309-3、311-2、…、311-N)。同样,发布者操作器实例307可以将多个批处理元组发送至多个不同的用户(例如,309和311)。图3示出发布者操作器的一个实例(例如,307)。然而,示例并不限于此,并且发布者操作器可以包括多个不同的实例,其中每个实例可以将多个元组发送至多个不同的操作器实例。
在多个示例中,发布者操作器实例307可以包括多个输出缓冲器315-1、315-2、315-3、315-4和315-N。输出缓冲器315-1、…、315-N的数目可以取决于用户操作器实例309-1、…、311-N的数目。例如,因为发布者操作器实例307将批处理元组发送至五个不同的用户操作器实例309-1、…、311-N,所以发布者操作器实例307可以包括五个不同的输出缓冲器315-1、…、315-N。
多个输出缓冲器315-1、…、315-N中的每一个可以创建批处理元组,包括对应于特定用户操作器实例309-1、…、311-N的主键部分。例如,输出缓冲器315-1可以创建具有对应于用户操作器实例309-1的特定主键属性(例如,以具有任意的尾部形状的实箭头表示的特定主键属性)的批处理元组。在这个示例中,由输出缓冲器315-1创建的批处理元组可以被发送至用户操作器实例309-1。在另一示例中,输出缓冲器315-2可以创建具有对应于用户操作器实例309-2的特定主键属性(例如,以具有任意的尾部形状的细虚箭头表示的特定主键属性)的批处理元组。在这个示例中,由输出缓冲器315-2创建的批处理元组可以被发送至用户操作器实例309-2。类似地,输出缓冲器315-3可以创建具有对应于操作器实例309-3的特定主键属性(例如,以具有任意尾部形状的虚箭头的特定主键属性)的批处理元组;输出缓冲器315-4可以创建具有对应于操作器实例311-1的特定主键属性(例如,以具有带有任意线条样式的圆形或方形尾部形状的箭头表示的特定主键属性)的批处理元组;并且输出缓冲器315-N可以创建具有对应于操作器实例311-N的特定主键属性(例如,以具有带有任意线条样式的普通尾部样式的箭头表示的特定主键属性)的批处理元组。
换言之,多个输出缓冲器315-1、…、315-N中的每一个可以创建具有对应于多个用户操作器实例中的每一个的特定主键属性的元组的独特批处理。在示例中,输出缓冲器315-1可以创建具有第一组(例如,针对用户实例309-1)中的主键属性的批处理元组,输出缓冲器315-2可以创建具有第二组(例如,针对用户操作器实例309-2)中的主键属性的批处理元组,输出缓冲器315-3可以创建具有第三组(例如,针对用户操作器实例309-3)中的主键属性的批处理元组,输出缓冲器315-4可以创建具有第四组(例如,针对用户操作器实例311-1)中的主键属性的批处理元组,并且输出缓冲器315-N可以创建具有第五组(例如,针对用户操作器实例311-N)中的主键属性的批处理元组。
在多个示例中,多个输出缓冲器315-1、…、315-N中的每一个可以通过将主键属性添加到包括批处理元组(例如,如涉及图2所讨论的)的多个列表中来创建批处理元组。一旦输出缓冲器(例如,特定输出缓冲器315-1)已经完成创建批处理(例如,该批处理是满的和/或来自设定数目的元组的主键属性已经分布在多个列表中),输出缓冲器(例如,315-1)可以将批处理元组发送至对应的用户操作器实例(例如,309-1)的输入缓冲器(例如,317-1)。例如,输出缓冲器(例如,315-1)可以基于批处理元组的哈希值将批处理元组发送至输入缓冲器(例如,317-1)。一旦批处理元组被接收,用于接收批处理元组的用户操作器实例可以以批处理元组的有效负荷中的关系还原且反序列化该元组。
如这里提及,每个流操作器(例如,发布者操作器实例307和用户操作器实例309-1、……、311-N)可以包括处理节点(例如,313-1、313-2、……、313-6),这些处理节点可以包括通信地联接在网络架构中的多个计算机和/或处理器。
图4是根据本公开针对多个用户操作者实例利用共享批处理的分布式流传输系统的示例的示意图。在多个示例中,发布者操作器实例(例如,407)中的处理节点可以使用一组共享缓冲器将多个批处理元组发送至多个用户操作器实例(例如,409-1、409-2、409-3、411-2和411-2)。
在多个示例中,发布者操作器实例407可以包括多个输出缓冲器419-1、419-2、419-3、419-4、419-5和419-6。输出缓冲器419-1、……、419-6的数目可以取决于用户操作器实例409-1、……、411-2的数目,其中输出缓冲器419-1、……、419-6的数目等于第一用户的实例(例如,409-1、409-2和409-3)的数目乘以第二用户的实例(例如,411-1和411-2)的数目。例如,因为用户409具有三个实例(例如,409-1、……、409-3),并且用户411具有两个实例(例如,411-1和411-2),因此发布者操作器实例407可以包括六个(例如2×3)不同的输出缓冲器419-1、……、419-6。然而,示例不被如此限制性,并且发布者操作器实例407可以将批处理元组发送至比图4中示出的多或少的用户和/或用户实例。
在针对多个用户操作器实例利用共享批处理的分布式流传输系统中,多个输出缓冲器419-1、……、419-6中的每一个可以创建批处理元组,并将该批处理元组发送至多个用户操作器实例(例如,409-1、……、和411-2)。在这种示例中,如果第一用户操作器实例(例如,409-1)的主键属性的哈希值与第二用户操作器实例(例如,411-1)的主键属性的哈希值相同,则共享批处理可以将两个元组置于相同的输出缓冲器(例如,419-1)内。
例如,输出缓冲器419-1可以创建具有第一组(例如,图4中图示为具有成形尾部的细实箭头和加粗实箭头的第一组)中的主键属性的批处理元组,并且可以将批处理元组发送至多个用户操作实例(例如,409-1和411-1)。在这个示例中,输出缓冲器419-1可以基于哈希值将批处理元组发送至输入缓冲器417-1和输入缓冲器417-4,其中输入缓冲器417-1接收具有包括在第一组中的主键属性的批处理元组(例如,输入缓冲器417-1接收具有任意尾部形状的细实箭头和加粗实箭头),输入缓冲器417-4也接收具有包括在第一组中的主键属性的批处理元组的(例如,输入缓冲器417-4接收具有成形尾部和任意线型的箭头)。在另一示例中,输出缓冲器419-2可以创建具有第二组(例如,图4中图示为具有普通尾部的细实箭头和加粗实箭头的第二组)中的主键属性的批处理元组,并且可以基于哈希值将批处理元组发送至输入缓冲器417-1和输入缓冲器417-5,其中输入缓冲器417-1接收具有包括在第二组中的主键属性的批处理元组(例如,输入缓冲器417-1接收具有任意尾部形状的细实箭头和加粗实箭头),输入缓冲器417-5接收具有包括在第二组中的主键属性的批处理元组(例如,输入缓冲器417-5接收具有普通尾部的箭头)。
图5示出根据本公开的系统520的示例。系统520可以使用软件、硬件、固件和/或逻辑来执行多个功能。
系统520可以是被配置为批处理专用流传输系统中的元组的硬件和程序指令的任意组合。硬件例如可以包括处理资源524和/或存储器资源528(例如,计算机可读介质(CRM)、机器可读介质(MRM)、数据库等)。这里使用的处理资源524可以包括能够执行存储器资源528存储的指令的任意数目的处理器。存储器资源524可以被集成在单个设备中或分布在各设备之间。程序指令(例如,计算机可读指令(CRI))可以包括存储在存储器资源528上并可以由处理资源524执行以实施预期功能(例如,确定用于多个元组的多个属性,等)的指令。
存储器资源528可以与处理资源524通信。这里使用的处理资源528可以包括能够存储可由处理资源524执行的指令的任意数量的存储器部件。这种存储器资源528可以是非临时性CRM。存储器资源528可以集成在单个设备中或分布于各设备之间。此外,存储器资源528可以全部或部分地与处理资源524集成在相同的设备中,或者其可以是独立的但可由该设备和处理资源524访问。因此,要指出的是,系统522可以被实施在用户设备和/或客户端设备、服务器设备和/或服务器设备的集合上,和/或在用户设备和服务器设备的组合上。
如这里描述,处理资源524可以与用于存储可由处理资源524执行的CRI集的存储器资源528通信。CRI还可以被存储在由服务器管理的远程存储器中并表示可以被下载、安装并执行的安装包。系统522可以包括存储器资源528,并且处理资源524可以被联接至存储器资源528。
处理资源524可以执行可以存储在内部或外部存储器资源528上的CRI。处理资源524可以执行CRI以执行多种功能,包括结合图1-4描述的功能。例如,处理资源524可以使用垂直布局执行CRI,以批处理元组。
CRI可以包括多个模块530、532、534、536。多个模块530、532、534、536可以包括在被处理资源524执行时可以执行多个功能的CRI。在多个示例中,多个模块530、532、534、536可以包括逻辑。如这里使用,与存储在存储器中并且可以由处理器执行的计算机可执行指令(例如,软件、固件等)截然相反,“逻辑”是用于执行例如这里描述的动作和/或功能等的可替代的或附加的处理资源,其包括硬件(例如,多种形式的晶体管逻辑、专用集成电路(ASIC)等)。
多个模块530、532、534、536可以是其它模块的子模块。例如,属性模块530和批处理模块532可以是子模块和/或包含在相同的计算设备内。在另一示例中,多个模块530、532、534、536可以包括位于单独和不同位置处的单独模块(例如,CRM等)。
属性模块530可以包括在由处理资源524执行时可以提供多个功能的CRI。属性模块530可以由发布者操作器、多个元组的多个主键属性确定。
批处理模块532可以包括在由处理资源524执行时可以提供多个批处理功能的CRI。批处理模块532可以创建包含基于多个元组中的多个属性的多个列表的批处理元组。
哈希模块534可以包括在由处理资源524执行时可以提供多个计算功能的CRI。哈希模块534可以基于包含在批处理元组中的多个列表来计算批处理元组的哈希值。
发送模块536可以包括在由处理资源524执行时可以执行多个发送功能的CRI。发送模块536可以基于独特批处理元组的哈希值将多个独特批处理元组发送至对应的特定用户操作器实例。发送模块536还可以将多个批处理元组中的每一个发送至共享共用哈希值的多个用户操作器实例。
在一些示例中,多个模块可以包括去批处理(debatching)模块。去批处理模块(图5中未示出)可以包括在由处理资源524执行时可以执行多个去批处理功能的CRI。去批处理模块可以在用户操作器实例处接收批处理元组、使批处理元组去批处理并处理批处理中的每个元组。
这里所使用的存储器资源528可以包括易失性和/或非易失性存储器。易失性存储器可以包括根据功率来存储信息的存储器,诸如各种类型的动态随机访问存储器(DRAM),等等。非易失性存储器可以包括不根据功率存储信息的存储器。
存储器资源528可以是一体的,或者以有线和/或无线的方式通信地联接至计算设备。例如,存储器资源528可以是内存储器、便携式存储器、便携式磁盘、或者与另一计算资源关联的存储器(例如,使CRI能够跨诸如因特网的网络被传输和/或执行)。
存储器资源528可以经由通信路径526与处理资源524通信。对于与处理资源524关联的机器(例如,计算设备)来说,通信路径526可以是本地或远程的。本地通信路径526的示例可以包括机器(例如,计算设备)内部的电子总线,其中存储器资源528是经由电子总线与处理资源524通信的易失性、非易失性、固定和/或可移除存储介质中的一种。
通信路径526可以使得存储器资源528远离处理资源(例如,424),诸如在存储器资源528和处理资源(例如,524)之间的网络连接。也即是说,通信路径526可以是网络连接。这种网络连接的示例可以包括局域网(LAN)、广域网(WAN)、个人局域网(PAN)和因特网等。在这些示例中,存储器资源528可以与第一计算设备关联,并且处理资源524可以与第二计算设备(例如,服务器)关联。
例如,处理资源524可以与存储器资源528通信,其中存储器资源528包括指令集,并且其中处理资源524被设计为执行该指令集。
说明书示例提供应用方式的描述以及本公开的系统和方法的使用。因为许多示例可以在不偏离本公开的系统和方法的精神和范围的情况下作出,因此该说明书陈述了许多可能的示例结构和实施方式中的一些。
Claims (15)
1.一种用于批处理元组的方法,包括:
确定多个元组的多个主键属性;
通过发布者操作器,创建包含基于所述多个主键属性的多个列表的批处理元组;以及
通过所述发布者操作器,基于所述多个列表计算所述批处理元组的哈希值。
2.根据权利要求1所述的方法,其中所述多个列表中的每一个包含所述多个主键属性中来自所述多个元组中的每一个的主键属性。
3.根据权利要求1所述的方法,其中创建多个列表包括创建多个中间列表,其中所述多个元组的所述多个主键属性中的每个主键属性被添加至所述多个中间列表。
4.根据权利要求1所述的方法,其中创建批处理元组包括创建所述多个列表中的第一列表,其中所述第一列表中的每个主键属性包括相同哈希值。
5.根据权利要求1所述的方法,其中计算所述批处理元组的哈希值包括计算所述批处理元组中的所述多个列表中的每一个的哈希值。
6.根据权利要求1所述的方法,包括将所述批处理元组发送至具有与所述批处理元组相同的哈希值的用户操作器实例。
7.一种非临时性计算机可读介质,用于存储由处理资源可执行以促使计算机进行以下操作的指令集:
确定多个元组的多个主键属性;
创建包含多个列表的多个独特批处理元组,其中所述多个独特批处理元组中的每一个对应于特定用户操作器实例,并且其中所述多个列表中的每一个包括:
多个主键属性;和
所述多个主键属性中的每一个的相同哈希值;
计算所述多个列表中每一个列表中的主键属性的哈希值;
基于该主键属性的哈希值,计算所述多个独特批处理元组中的每一个的哈希值;以及
基于所述多个独特批处理元组中的每一个独特批处理元组的哈希值,将该独特批处理元组发送至对应的用户操作器实例。
8.根据权利要求7所述的非临时性计算机可读介质,其中由处理资源可执行的指令集包括用于以下操作的指令:
针对第一对应用户操作器实例创建第一独特批处理元组,其中所述第一独特批处理元组包括第一组中的全部元组的主键;以及
针对第二对应用户操作器实例创建第二独特批处理元组,其中所述第二独特批处理元组包括第二组中的全部元组的主键。
9.根据权利要求7所述的非临时性计算机可读介质,其中由处理资源可执行的指令集包括用于以下操作的指令:将所述多个独特批处理元组中的每一个从生产商操作器实例中的输出缓冲器发送至所述对应的用户操作器实例中的输入缓冲器。
10.根据权利要求7所述的非临时性计算机可读介质,其中由处理资源可执行的指令集包括用于以下操作的指令:当所述独特批处理元组中的每一个被所述对应的用户操作器实例接收时,还原且反序列化所述独特批处理元组中的每一个中的元组。
11.一种在分布式流传输系统中批处理元组的系统,所述系统包括:
处理资源;
联接至所述处理资源的存储器资源,用于实施:
属性模块,用于确定多个元组的多个主键属性;
批处理模块,用于创建多个批处理元组,其中所述多个批处理元组使用一组共享缓冲器来创建;
哈希模块,用于基于所述多个主键属性计算所述多个批处理元组中每一个批处理元组的哈希值;以及
发送模块,用于基于所述哈希值,将所述多个批处理元组中的每一个发送至多个用户操作器实例。
12.根据权利要求11所述的系统,其中所述多个共享缓冲器等于所述多个用户操作器实例的数目之积。
13.根据权利要求11所述的系统,其中如果第一用户操作器实例的主键属性的哈希值等于第二用户操作器实例的主键属性的哈希值,则所述发送模块将批处理元组发送至所述第一用户操作器实例和所述第二用户操作器实例。
14.根据权利要求11所述的系统,其中所述批处理模块创建与第一用户操作器实例和第二用户操作器实例相对应的共享批处理。
15.根据权利要求11所述的系统,其中所述多个批处理元组中的每一个包括包含多个主键属性的主键部分,以及包括多个成组的元组的有效负荷部分。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/034541 WO2014158183A1 (en) | 2013-03-29 | 2013-03-29 | Batching tuples |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105164634A true CN105164634A (zh) | 2015-12-16 |
Family
ID=51624962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380076054.XA Pending CN105164634A (zh) | 2013-03-29 | 2013-03-29 | 批处理元组 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10268727B2 (zh) |
EP (1) | EP2979169A4 (zh) |
CN (1) | CN105164634A (zh) |
WO (1) | WO2014158183A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9621596B2 (en) * | 2010-09-11 | 2017-04-11 | Steelcloud, Llc | Mobile application deployment for distributed computing environments |
US9632847B2 (en) | 2014-11-11 | 2017-04-25 | Fair Isaac Corporation | System and method for linearizing messages from data sources for optimized high-performance processing in a stream processing system |
US10579603B2 (en) | 2015-04-17 | 2020-03-03 | International Business Machines Corporation | Removing sets of tuples in a streaming environment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276962A1 (en) * | 2010-05-04 | 2011-11-10 | Google Inc. | Parallel processing of data |
CN102521234A (zh) * | 2010-10-28 | 2012-06-27 | 微软公司 | 在线数据库的分区 |
CN102640151A (zh) * | 2009-12-04 | 2012-08-15 | 国际商业机器公司 | 信息系统中转换后的数据的高吞吐量、可靠复制 |
US20120297391A1 (en) * | 2009-05-14 | 2012-11-22 | International Business Machines Corporation | Application resource model composition from constituent components |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3560662B2 (ja) * | 1994-12-06 | 2004-09-02 | 富士通株式会社 | 並列プロセッサ装置 |
US6047323A (en) * | 1995-10-19 | 2000-04-04 | Hewlett-Packard Company | Creation and migration of distributed streams in clusters of networked computers |
US6640244B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
US6571244B1 (en) | 1999-10-28 | 2003-05-27 | Microsoft Corporation | Run formation in large scale sorting using batched replacement selection |
US20020039420A1 (en) | 2000-06-12 | 2002-04-04 | Hovav Shacham | Method and apparatus for batched network security protection server performance |
US7174384B2 (en) | 2001-07-31 | 2007-02-06 | Dinastech Ipr Limited | Method for delivering large amounts of data with interactivity in an on-demand system |
US20040225897A1 (en) * | 2003-05-07 | 2004-11-11 | Norton Derk D. | Client-server architecture incorporating secure tuple space |
US7555481B1 (en) * | 2003-10-28 | 2009-06-30 | Oracle Corporation | Method and apparatus for increasing transaction concurrency by early release of locks in groups |
US7613848B2 (en) | 2006-06-13 | 2009-11-03 | International Business Machines Corporation | Dynamic stabilization for a stream processing system |
US7814486B2 (en) | 2006-06-20 | 2010-10-12 | Google Inc. | Multi-thread runtime system |
US7502778B2 (en) * | 2006-12-21 | 2009-03-10 | International Business Machines Corporation | Apparatus, system, and method for efficient adaptive parallel data clustering for loading data into a table |
US9367501B2 (en) * | 2011-11-10 | 2016-06-14 | International Business Machines Corporation | Dynamic streaming data dispatcher |
-
2013
- 2013-03-29 CN CN201380076054.XA patent/CN105164634A/zh active Pending
- 2013-03-29 EP EP13879806.1A patent/EP2979169A4/en not_active Ceased
- 2013-03-29 WO PCT/US2013/034541 patent/WO2014158183A1/en active Application Filing
- 2013-03-29 US US14/780,641 patent/US10268727B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120297391A1 (en) * | 2009-05-14 | 2012-11-22 | International Business Machines Corporation | Application resource model composition from constituent components |
CN102640151A (zh) * | 2009-12-04 | 2012-08-15 | 国际商业机器公司 | 信息系统中转换后的数据的高吞吐量、可靠复制 |
US20110276962A1 (en) * | 2010-05-04 | 2011-11-10 | Google Inc. | Parallel processing of data |
CN102521234A (zh) * | 2010-10-28 | 2012-06-27 | 微软公司 | 在线数据库的分区 |
Non-Patent Citations (1)
Title |
---|
LEONARDO NEUMEYER ET AL: "S4:Distributed Stream Computing Platform", 《2010 IEEE INTERNATIONAL CONFERENCE ON DATA MINING WORKSHOPS》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2014158183A1 (en) | 2014-10-02 |
EP2979169A1 (en) | 2016-02-03 |
US20160154853A1 (en) | 2016-06-02 |
EP2979169A4 (en) | 2016-11-16 |
US10268727B2 (en) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8694980B2 (en) | Efficient egonet computation in a weighted directed graph | |
US11423085B2 (en) | Graph database super vertex partitioning | |
US20180004751A1 (en) | Methods and apparatus for subgraph matching in big data analysis | |
CN104111936B (zh) | 数据查询方法和系统 | |
WO2017076296A1 (zh) | 处理图数据的方法和装置 | |
US9141677B2 (en) | Apparatus and method for arranging query | |
US10496648B2 (en) | Systems and methods for searching multiple related tables | |
CN107251013A (zh) | 数据查询的方法、装置和数据库系统 | |
US11615209B2 (en) | Big data k-anonymizing by parallel semantic micro-aggregation | |
WO2018054221A1 (en) | Pipeline dependent tree query optimizer and scheduler | |
US11221890B2 (en) | Systems and methods for dynamic partitioning in distributed environments | |
WO2017118335A1 (zh) | 一种映射方法和设备 | |
US10162830B2 (en) | Systems and methods for dynamic partitioning in distributed environments | |
CN105550332A (zh) | 一种基于双层索引结构的起源图查询方法 | |
Li et al. | Efficient subspace skyline query based on user preference using MapReduce | |
WO2022247868A1 (zh) | 一种多子图匹配方法、装置及设备 | |
CN105164634A (zh) | 批处理元组 | |
Liu et al. | Chasing similarity: Distribution-aware aggregation scheduling | |
Er et al. | Parallel genetic algorithm to solve traveling salesman problem on mapreduce framework using hadoop cluster | |
US11599540B2 (en) | Query execution apparatus, method, and system for processing data, query containing a composite primitive | |
CN108874873A (zh) | 数据查询方法、装置、存储介质及处理器 | |
JP5464017B2 (ja) | 分散メモリデータベースシステム、データベースサーバ、データ処理方法およびそのプログラム | |
CN114866460B (zh) | 基于人工智能的路径规划方法及相关设备 | |
CN116383247A (zh) | 一种大规模图数据高效查询方法 | |
US11442792B2 (en) | Systems and methods for dynamic partitioning in distributed environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161019 Address after: American Texas Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Applicant before: Hewlett-Packard Development Company, Limited Liability Partnership |
|
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151216 |
|
WD01 | Invention patent application deemed withdrawn after publication |