[发明专利]用于查询计划优化以及数据并行编程模型的共同范围分区无效
申请号: | 201210081362.9 | 申请日: | 2012-03-23 |
公开(公告)号: | CN102831139A | 公开(公告)日: | 2012-12-19 |
发明(设计)人: | 柯启发;Y·余 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 杨洁 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 查询 计划 优化 以及 数据 并行 编程 模型 共同 范围 分区 | ||
技术领域
本申请涉及用于查询计划优化以及数据并行编程模型的共同范围分区。
背景技术
数据分区在大规模分布式数据并行计算中是重要的方面。好的数据分区方案将数据集分割成多个平衡的分区以避免数据和/或计算倾斜的问题,导致性能的改善。对于多源运算符(例如,联结(join)),现存系统需要用户手动指定散列分区器中的分区的数量,或范围分区器中的范围键(range key),以便将多个输入数据集分区为平衡且连贯的分区以获得良好的数据并行性。这样的手动数据分区需要用户具有对输入数据集和计算机集群中的可用资源两者的知识,当要分区的数据集是在运行期间由中间阶段生成时,这常常是困难的或甚至是不可能的。
当提供了范围键的自动确定(例如在Dryad/DryadLINQ中),其被限制于单源运算符诸如OrderBy(排序)的确定。对于输入I,执行OrderBy运算以对输入I中的记录排序。降采样节点对输入数据进行降采样以计算降采样的数据的键的直方图。从该直方图,计算范围键,用来对输入数据分区,使得输出中的每个分区包含大致相同量的数据。然而,这样的自动确定不能对多源运算符作出(例如,联结(join)、组联结(groupjoin)、拉上(zip),组运算符:并(union)、交(intersect)、除外(except)等)。
发明内容
共同范围分区机制利用自动计算出的范围键的通用集合,将多个静态或动态生成的数据集划分成平衡分区。共同范围分区器通过在执行计划图中尽可能早地将共同范围分区应用到它的一对前辈节点,来为多源运算符(例如,联结)最小化数据分区运算的数量。提供完全提取来自用户的数据分区的编程API,从而提供计算机集群中的数据并行编程的抽象顺序编程模型。分区机制自动为多源运算符(诸如联结、并和交)的多个输入数据集生成单个平衡的分区方案。
根据一些实现,提供了用于并行计算的数据分区方法。方法可包括在执行在计算设备的处理器上的共同范围分区管理器处接收输入数据集。输入数据集可与多源运算符相关联。静态执行计划图(EPG)可在编译时被编译。可确定用于分区输入数据的范围键,并且可接着平衡与输入数据集相关联的工作负载,以获得近似相等的工作负载分区,来被分布式执行引擎处理。可根据分区的数量来在运行时重写EPG。
根据一些实现,提供了用于并行计算的数据分区系统,其包括在计算设备的处理器上执行、接收与多源运算符相关联的输入数据集的共同范围分区管理器。在该系统中,高级语言支持系统可编译输入数据集以在编译时确定静态EPG。根据由共同范围分区管理器确定的分区的数量,分布式执行引擎可在运行时重写EPG。在该系统中,共同范围分区管理器可平衡与输入数据集相关联的工作负载,以获得近似相等的工作负载分区,来被分布式执行引擎处理。
提供本发明内容以便以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。
附图说明
当结合附图进行阅读时,可以更好地理解以上概述以及以下对说明性实施例的详细说明。出于说明各实施例的目的,在附图中示出各实施例的示例性构造;然而,各实施例不局限于所公开的具体方法和手段。在附图中:
图1示出了示例性数据并行计算环境。
图2A示出了两个示例数据集的直方图;
图2B示出了图2A的键上的示例数据集的集成;
图3是示例输入、静态和动态执行计划图的示意图;
图4是示出了由共同范围分区管理器对动态执行计划图的重写的示意图;
图5是示出了由共同拆分器(CoSplitter)对动态执行计划图的重写的示意图;
图6是示出了对动态执行计划图的重写以最小化分区数量的示意图;
图7是共同范围分区方法的实现的操作流程;以及
图8是在其中可以实现各示例实施例和方面的示例计算环境的框图。
具体实施方式
图1示出了示例性数据并行计算环境100,包括共同范围分区管理器110、具有高级语言支持120(例如Sawzall、Pig Latin,、SCOPE、DryadLINQ等)的分布式执行引擎130(例如MapReduce、Dryad、Hadoop等),以及分布式文件系统140。在一实施例中,分布式执行引擎130可包括Dryad,而高级语言支持120可包括DryadLINQ。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210081362.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:五轴中低速点胶机器人伺服控制系统
- 下一篇:一种大功率盘式永磁电机定子