当前位置: 首页 > 专利查询>谷歌公司专利>正文

动态混洗重新配置制造技术

技术编号:13394253 阅读:61 留言:0更新日期:2016-07-23 11:29
一种方法,所述方法包括接收对数据流执行混洗操作的请求,所述请求包括初始键范围的集合:生成混洗器配置,所述混洗器配置将来自混洗器的集合的混洗器指派至所述初始键范围中的每一个;启动所述混洗器的集合以对所述数据流执行所述混洗操作;分析元数据统计以确定混洗器配置更新事件是否发生,所述元数据统计在所述混洗操作期间由所述混洗器的集合产生并且指示所述混洗器的集合中的每个混洗器的负荷统计;以及在所述混洗器配置更新事件发生之后并在所述混洗操作期间,至少部分基于所述元数据统计更改所述混洗器配置以产生混洗器至键范围的指派,混洗器至键范围的所述指派不同于混洗器至所述初始键范围的指派。

【技术实现步骤摘要】
【国外来华专利技术】
本说明书涉及分布式数据处理系统中的混洗操作。
技术介绍
混洗操作是分布式数据处理系统中的中间步骤,其中写入器产生的数据通过键数据被聚组用于通过读取器消耗。利用混洗操作的分布式数据处理算法的一个示例是映射化简算法。写入器在映射阶段被实现,在所述映射阶段期间并行任务被创建以对数据操作从而生成中间结果。在混洗阶段中,映射阶段的部分计算结果被布置用于通过实现化简操作的读取器访问。在化简阶段期间,每个读取器执行聚合了映射阶段生成的数据的化简任务。其他分布式数据处理算法也通过混洗操作混洗数据。混洗操作包含根据包括在记录中的键对记录的流聚组。键可以是字母数字串或数字标识符。记录可被混洗写入器的集合以随机顺序呈现至混洗操作。混洗器组件的集合可接收记录并根据它们包括的键对它们聚组。混洗器组件可以接着将现在通过键被聚组的记录提供至混洗读取器的集合。
技术实现思路
本申请的主题涉及,当混洗操作激活时,诸如通过改变键范围分配来重新配置混洗操作。本申请的主题还涉及在持久储存器中存储混洗操作的结果用于以后消耗。一般地,本说明书中所描述的主题的一个创新的方面可以被体现在包括以下动作的方法中:响应于接收到对数据流执行混洗操作的请求,所述混洗操作是通过键对所述数据流中设键的记录进行聚组的操作,所述请求包括初始键范围的集合,每个初始键范围对应于所述数据流的部分;生成混洗器配置,所述混洗器配置将来自混洗器的集合的混洗器指派至所述初始键范围中的每一个,每个混洗器被配置为从一个或多个写入器接收与所指派的键范围相关联的数据流的部分,并且将所述数据流的所述部分提供至一个或多个读取器;启动所述混洗器的集合以对所述数据流执行所述混洗操作;分析元数据统计以确定混洗器配置更新事件是否发生,所述元数据统计在所述混洗操作期间由所述混洗器的集合产生并且指示了所述混洗器的集合中的每个混洗器的负荷统计;以及在所述混洗器配置更新事件发生之后并在所述混洗操作期间,至少部分基于所述元数据统计更改所述混洗器配置以产生混洗器至键范围的指派,混洗器至键范围的指派不同于混洗器至所述初始键范围的指派。这方面的其他实施例包括被配置为执行被编码在计算机储存器设备上的所述方法的动作的对应的系统、装置和计算机程序。通过在操作正在运行时重新配置混洗操作,可以获得更好的效率和表现。此外,远离初始键范围建议而重新配置的能力在处理没有限制的数据集或未知大小的数据集时尤其有用,因为最优键范围在混洗操作开始时可能无法辨别。因此,通过允许这样的重新配置,可以对可能无限的记录流有效地执行混洗操作。通过在持久储存器中存储混洗操作结果,混洗操作可被重复而不需要重复提供数据至混洗器的步骤。这在大数据集需要以不同方式(例如,被排序、碎片)被不同消耗者消耗的情况下会特别有用。持久性也允许数据生产者从消耗者被解耦合。生产者可以产生数据而不管数据将在何时被消耗。当数据以适合的格式被保持用于以后被混洗消耗者消耗时,整个产生阶段可以完成并且生产者转去做其他工作。持久数据集还可以被进一步重组(例如,被排序、被合并)以减少已摊销的处理和储存成本。此外,如描述的一样保持数据可允许相比于先前方法有所提高的容错性,例如,通过如果操作混洗器故障则允许混洗操作从故障点重新开始。本说明书中所描述的主题的一个或多个实施例的细节在附图和以下描述中被阐述。主题的其他特征、方面和优势将通过描述、附图和权利要求变得显而易见。附图说明图1是可以发生混洗操作的动态重新配置的环境的框图。图2A是示例初始混洗器配置的框图。图2B是在键范围合并后,更改的混洗器配置的框图。图3A是另一个示例初始混洗器配置的框图。图3B是在键范围拆分后,更改的混洗器配置的框图。图4A是另一个示例初始混洗器配置的框图。图4B是在键范围复制后,更改的混洗器配置的框图。图5是用于混洗操作的动态重新配置的示例过程的流程图。图6是用于执行持久混洗操作的示例过程的流程图。图7是示例计算设备的框图。各个附图中的相同的参考数字和标号指示相同元素。具体实施方式数据处理系统接收对数据流执行混洗操作的请求。混洗操作是通过键在数据流中对经设键的记录进行聚组的操作。所接收的请求包括初始键范围的集合,经设键的记录在混洗操作的期间应该被聚组至所述集合中。系统生成混洗器配置,所述混洗器配置将混洗器指派至初始键范围中的每一个。混洗器中的每一个被配置为从一个或多个写入器接收与所指派的键范围相关联的数据流的部分。每个混洗器还被配置为将所接收的数据流的部分提供至一个或多个读取器。在一些情况下,读取器可以查阅与混洗操作相关联的元数据以确定联系哪个混洗器以消耗数据流的特定部分。读取器还可以在数据流的部分被混洗器放置在持久储存器之后直接从该持久储存器消耗数据流的该部分。系统启动混洗器的集合以对数据流执行混洗操作。混洗器中的每个在混洗操作期间都产生描述其正在经历的负荷统计的元数据统计。系统分析这些元数据统计以确定混洗器配置是否应该被更新以优化混洗操作。例如,一个示例优化是在混洗器之间平衡负荷。如果系统确定混洗器配置应该被更新,系统更改混洗器配置从而使得混洗器至键范围的指派不同于在所述更改之前的键范围指派。更改根据期望的优化被配置。数据处理系统还可以接收对数据流执行混洗操作的请求,并随后从一个或多个写入器接收数据流的至少一部分。数据流包括多个记录,每个都包括键。系统可以在持久储存器位置中存储多个记录中的每个。将每个持久储存器位置指派至对应于包括在多个记录中的键的键范围,并且至少部分基于特定记录的键,选择用于存储每个记录的特定持久储存器位置。系统可接着从消耗者接收对于包括键的范围的多个记录的子集的请求。在接收了请求之后,系统从一个或多个持久储存器位置提供多个记录的子集,并且,如果混洗操作仍在进行中,可以提供匹配键的范围的任意附加的记录至请求的读取器。图1是可以发生混洗操作的动态重新配置的环境100的框图。环境100包括将记录的数据流提供至一个或多个混洗器104的一个或多个写入器102。在一些实现中,写入器102可以是诸如服务器的计算设备,其被连接至网络并经由这样的网络将数据流提供至混洗器104。写入器102产生的数据流包括每个都通过键被识别的多个记录。写入器102可以在数据流中以布兰登键顺序(Brandonkeyo本文档来自技高网...

【技术保护点】
一种通过数据处理装置执行的计算机实现的方法,所述方法包括:响应于接收到对数据流执行混洗操作的请求,所述混洗操作是通过键对所述数据流中设键的记录进行聚组的操作,所述请求包括初始键范围的集合,每个初始键范围对应于所述数据流的部分:生成混洗器配置,所述混洗器配置将来自混洗器的集合的混洗器指派至所述初始键范围中的每一个,每个混洗器被配置为从一个或多个写入器接收与所指派的键范围相关联的所述数据流的部分,并且将所述数据流的所述部分提供至一个或多个读取器;启动所述混洗器的集合以对所述数据流执行所述混洗操作;分析元数据统计以确定混洗器配置更新事件是否发生,所述元数据统计在所述混洗操作期间由所述混洗器的集合产生并且指示所述混洗器的集合中的每个混洗器的负荷统计;以及在所述混洗器配置更新事件发生之后并在所述混洗操作期间,至少部分基于所述元数据统计更改所述混洗器配置以产生混洗器至键范围的指派,混洗器至键范围的所述指派不同于混洗器至所述初始键范围的指派。

【技术特征摘要】
【国外来华专利技术】2013.10.02 US 14/044,5291.一种通过数据处理装置执行的计算机实现的方法,所述方法包
括:
响应于接收到对数据流执行混洗操作的请求,所述混洗操作是通
过键对所述数据流中设键的记录进行聚组的操作,所述请求包括初始
键范围的集合,每个初始键范围对应于所述数据流的部分:
生成混洗器配置,所述混洗器配置将来自混洗器的集合的混
洗器指派至所述初始键范围中的每一个,每个混洗器被配置为从一个
或多个写入器接收与所指派的键范围相关联的所述数据流的部分,并
且将所述数据流的所述部分提供至一个或多个读取器;
启动所述混洗器的集合以对所述数据流执行所述混洗操作;
分析元数据统计以确定混洗器配置更新事件是否发生,所述
元数据统计在所述混洗操作期间由所述混洗器的集合产生并且指示所
述混洗器的集合中的每个混洗器的负荷统计;以及
在所述混洗器配置更新事件发生之后并在所述混洗操作期
间,至少部分基于所述元数据统计更改所述混洗器配置以产生混洗器
至键范围的指派,混洗器至键范围的所述指派不同于混洗器至所述初
始键范围的指派。
2.根据权利要求1所述的方法,其中,更改所述混洗器配置包括:
将两个或多个键范围合并以产生经合并的键范围并且将经合并的键范
围指派至混洗器,经合并的键范围包括与所述两个或多个键范围相关
联的键的范围的并集。
3.根据权利要求1所述的方法,其中,更改所述混洗器配置包括:
拆分键范围以产生两个或多个经拆分的键范围并将所述两个或多个经
拆分的键范围指派至两个或多个混洗器。
4.根据权利要求1所述的方法,其中,更改所述混洗器配置包括:

\t将键范围指派至两个或多个混洗器。
5.根据权利要求1所述的方法,其中,分析所述元数据统计进一
步包括:
识别与第一混洗器相关联的第一键范围;
至少部分基于所述元数据统计,确定所述第一混洗器正在经历高
负荷状态;以及
将所述第一混洗器重新指派至包括所述第一键范围的子集的经修
改的键范围。
6.根据权利要求1所述的方法,其中,分析所述元数据统计进一
步包括:
识别与第一混洗器相关联的第一键范围;
至少部分基于所述元数据统计,确定所述第一混洗器正在经历低
负荷状态;以及
将所述第一混洗器重新指派至包括所述第一键范围和不同于所述
第一键范围的第二键范围的经修改的键范围。
7.根据权利要求1所述的方法,进一步包括:
识别所述数据流的部分已经被所述一个或多个读取器消耗的指
示;以及
对与所述数据集的所述部分相关联的一个或多个资源执行无用信
息收集操作。
8.根据权利要求1所述的方法,进一步包括:
从所述一个或多个读取器接收消耗元数据,所述消耗元数据指示
对于所述一个或多个读取器中的每一个,所述数据集的消耗进展;以

如果所述消耗元数据指示与所述一个或多个资源相关联的所述数
据集的所述部分已经被消耗,对与所述数据集相关联的一个或多个资

\t源执行无用信息收集操作。
9.一种编码有指令的有形的非暂时性计算机可读介质,所述指令
用于使得一个或多个处理器执行操作,所述操作包括:
响应于接收到对数据流执行混洗操作的请求,所述混洗操作是通
过键对所述数据流中设键的记录进行聚组的操作,所述请求包括初始
键范围的集合,每个初始键范围对应于所述数据流的部分:
生成混洗器配置,所述混洗器配置将来自混洗器的集合的混
洗器指派至所述初始键范围中的每一个,每个混洗器被配置为从一个
或多个写入器接收与所指派的键范围相关联的所述数据流的部分,并
且将所述数据流的所述部分提供至一个或多个读取器;
启动所述混洗器的集合以对所述数据流执行所述混洗操作;
分析元数据统计以确定混洗器配置更新事件是否发生,所述
元数据统计在所述混洗操作期间由所述混洗器的集合产生并且指示所
述混洗器的集合中的每个混洗器的负荷统计...

【专利技术属性】
技术研发人员:亚历山大·古尔科夫·巴利科夫马里安·德沃尔斯基赵永刚
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1