用于大规模并行处理的基于代价的动态计算节点分组优化制造技术

技术编号:21958961 阅读:31 留言:0更新日期:2019-08-24 22:16
大规模并行处理无共享关系数据库管理系统包括分配给多个计算节点的多个存储器。所述系统包括具有指令的非瞬时性存储器和与所述存储器通信的一个或多个处理器。所述一个或多个处理器执行所述指令以用于:将数据集存储在所述多个存储器中的第一组存储器中;将所述第一数据集哈希成重新分区的数据集;将所述第一组存储器重新分配给所述多个计算节点中的第二组计算节点;将所述重新分区的数据集分发到所述第二组计算节点;通过所述第二组计算节点对所述重新分区的数据集执行数据库操作。

Cost-based dynamic computing node grouping optimization for large-scale parallel processing

【技术实现步骤摘要】
【国外来华专利技术】用于大规模并行处理的基于代价的动态计算节点分组优化本专利技术要求2016年12月9日递交的专利技术名称为“用于大规模并行处理的基于代价的动态计算节点分组优化”的第15/374,158号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文中。
技术介绍
大规模并行处理(massivelyparallelprocessing,简称MPP)无共享关系数据库管理系统(relationaldatabasemanagementsystem,简称RDBMS)通常包括多个无共享节点。一个无共享节点可以包括耦合到至少一个计算节点的至少一个存储器。通常,在MPP无共享RDBMS中,将若干存储器静态分配给特定无共享节点中的若干计算节点。在处理对MPP无共享RDBMS的查询时,可能需要对数据进行重新分区,并将所述数据从一个无共享节点传输到另一个无共享节点,其中,所述另一个无共享节点存储可能需要对该查询做出响应的其它数据。这种在存储器和计算节点之间静态分配的架构可能会导致某些计算节点使用不足或过度使用。此外,特定计算节点还可能被检索对该查询做出的响应的次优逻辑计划低效使用,而非有效使用存储器和计算节点的逻辑计划。
技术实现思路
在第一实施例中,本技术涉及一种大规模并行处理无共享关系数据库管理系统,其包括分配给多个计算节点的多个存储器。所述系统包括一个或多个处理器,其中,所述一个或多个处理器与用于存储指令的非瞬时性存储器通信。所述一个或多个处理器执行所述指令以用于:将数据集存储在所述多个存储器中的第一组存储器中,其中,所述第一组存储器分配给所述多个计算节点中的第一组计算节点;通过哈希对所述数据集进行重新分区得到重新分区的数据集;将所述第一组存储器重新分配给所述多个计算节点中的第二组计算节点;将所述重新分区的数据集重分布到所述第二组计算节点;通过所述第二组计算节点对所述重新分区的数据集执行数据库操作。根据所述第一实施例的第二实施例,其中,所述对所述数据集进行重新分区包括通过哈希形成所述数据集的较小哈希桶。根据所述第一实施例的第三实施例,其中,当重新分区键与用于对所述数据集进行分区的键相同时,则省略所述重新分区。根据所述第一实施例的第四实施例,其中,所述重新分配包括在所述第一组存储器和所述第二组计算节点之间形成网络连接,所述分发包括通过所述网络连接将所述重新分区的数据集分发给所述第二组计算节点。根据所述第四实施例的第五实施例,其中,所述第一组存储器和所述第一组计算节点在所述系统中形成无共享节点,所述数据库操作包括内部连接、扫描和重分布中的至少一个。根据所述第一实施例的第六实施例,还包括所述一个或多个处理器执行所述指令以用于:获取多个逻辑计划,其中包括对存储在所述第一组存储器中的数据集进行的所述数据库操作;针对所述多个逻辑计划中的每个逻辑计划确定将所述数据集重分布到至少一个其他计算节点的代价;还针对所述多个逻辑计划中的每个逻辑计划确定通过分区间并行降低的代价;基于重分布所述数据集的代价以及所述通过分区间并行降低的代价,从所述多个逻辑计划中选择最优逻辑计划。在另一实施例中,本技术涉及一种计算机实现的用于访问数据的方法。所述方法包括:获取多个逻辑计划以响应查询;针对所述多个逻辑计划中的每个逻辑计划确定将存储在分配给计算节点的存储器中的数据集重分布到至少一个其他计算节点的代价;还针对所述多个逻辑计划中的每个逻辑计划确定通过分区间并行降低的代价;基于重分布所述数据集的代价以及所述通过分区间并行降低的代价,从所述多个逻辑计划中选择逻辑计划。在又一实施例中,本技术涉及一种用于存储计算机指令的非瞬时性计算机可读介质,其中,当一个或多个处理器执行所述计算机指令时,使得所述一个或多个处理器执行以下步骤。所述步骤包括:将数据集存储在多个存储器中的第一组存储器中,其中,所述第一组存储器分配给多个计算节点中的第一组计算节点;获取多个逻辑计划以响应访问所述数据集的查询;针对所述多个逻辑计划中的每个逻辑计划确定将所述第一组存储器中存储的数据集重分布到第二组计算节点的代价;针对所述多个逻辑计划中的每个逻辑计划确定通过分区间并行降低的代价;基于重分布所述数据集的代价以及所述通过分区间并行降低的代价,从所述多个逻辑计划中选择逻辑计划;通过哈希对所述数据集进行重新分区得到重新分区的数据集;将所述第一组存储器重新分配给所述第二组计算节点;将所述重新分区的数据集分发到所述第二组计算节点;通过所述第二组计算节点对所述重新分区的数据集执行数据库操作,以提供对所述查询的应答。提供本
技术实现思路
是为了以简化的形式引入概念的选择,这些概念将在以下具体实施方式中进行进一步的描述。本
技术实现思路
和/或标题的目的不在于识别权利要求书保护的主题的关键特征或必要特征,也不在于协助确定权利要求书保护的主题的范围。权利要求书保护的主题不限于用于解决在
技术介绍
中提到的任何或全部缺点的实现方式。附图说明图1A为本技术实施例提供的一种MPP无共享RDBMS的方框图;图1B-C示出了本技术实施例提供的与图1中所示系统关联的各表;图2示出了本技术实施例提供的语法查询解析树和关联逻辑计划;图3示出了本技术实施例提供的具有估计代价的逻辑计划以及选择具有最低估计代价的逻辑计划;图4为本技术实施例提供的静态存储器组和动态计算组的方框图;图5示出了本技术实施例提供的获取多个逻辑计划以响应查询的过程;图6A示出了本技术实施例提供的代价结构;图6B示出了本技术实施例提供的数据重分布代价;图6C示出了本技术实施例提供的通过分区间并行降低的代价;图7示出了本技术实施例提供的确定与多个逻辑计划关联的总代价;图8为本技术实施例提供的一种用于动态计算节点分组的方法的流程图;图9A-C为本技术实施例提供的一种用于从多个逻辑计划中选择最优逻辑计划的方法的流程图;图9D为本技术实施例提供的一种用于选择最优逻辑计划和节点分组的方法的流程图;图10为本技术实施例提供的一种硬件架构的方框图;图11是为本技术实施例提供的一种软件架构的方框图。除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。具体实施方式本技术通常涉及动态计算节点分组,其中,所述动态计算节点分组将大规模并行处理(massivelyparallelprocessing,简称MPP)无共享关系数据库管理系统(relationaldatabasemanagementsystem,简称RDBMS)中的存储和计算解耦。本技术通过MPP节点之间的数据重分布实现了支持更高的分区间处理并行度的灵活性。动态计算节点分组还会为查询或计划优化器增加另一维度,以便在构建提供对查询做出的响应的最优逻辑计划时加以考虑。数据倾斜感知代价模型可用于在所述查询处理管道的正确阶段选择最佳计算节点组。数据倾斜感知代价模型使计划优化器能够根据表统计信息以及从中间结果导出的统计信息,分析和比较通过网络重分布数据的估计代价和通过分区间并行降低的代价。具有多个计算节点的MPP无共享RDBMS可提供自动查询优化和执行。计算节点可以包括分配或耦合到至少一个计算节点的至少一个存储器。在各实施例中,计划优化器选择最优逻辑计划以响应接收的查询,并形成本文档来自技高网
...

【技术保护点】
1.一种大规模并行处理无共享关系数据库管理系统,其特征在于,包括:分配给多个计算节点的多个存储器;非瞬时性存储器,用于存储指令;一个或多个处理器,与所述非瞬时性存储器通信,其中,所述一个或多个处理器执行所述指令以用于:将数据集存储在所述多个存储器中的第一组存储器中,其中,所述第一组存储器分配给所述多个计算节点中的第一组计算节点;通过哈希对所述数据集进行重新分区得到重新分区的数据集;将所述第一组存储器重新分配给所述多个计算节点中的第二组计算节点;将所述重新分区的数据集分发到所述第二组计算节点;通过所述第二组计算节点对所述重新分区的数据集执行数据库操作。

【技术特征摘要】
【国外来华专利技术】2016.12.09 US 15/374,1581.一种大规模并行处理无共享关系数据库管理系统,其特征在于,包括:分配给多个计算节点的多个存储器;非瞬时性存储器,用于存储指令;一个或多个处理器,与所述非瞬时性存储器通信,其中,所述一个或多个处理器执行所述指令以用于:将数据集存储在所述多个存储器中的第一组存储器中,其中,所述第一组存储器分配给所述多个计算节点中的第一组计算节点;通过哈希对所述数据集进行重新分区得到重新分区的数据集;将所述第一组存储器重新分配给所述多个计算节点中的第二组计算节点;将所述重新分区的数据集分发到所述第二组计算节点;通过所述第二组计算节点对所述重新分区的数据集执行数据库操作。2.根据权利要求1所述的系统,其特征在于,所述对所述数据集进行重新分区包括通过哈希形成所述数据集的较小哈希桶。3.根据权利要求1所述的系统,其特征在于,当重新分区键与用于对所述数据集进行分区的键相同时,则省略所述重新分区。4.根据权利要求1所述的系统,其特征在于,所述重新分配包括在所述第一组存储器和所述第二组计算节点之间形成网络连接,所述分发包括通过所述网络连接将所述重新分区的数据集分发给所述第二组计算节点。5.根据权利要求4所述的系统,其特征在于,所述第一组存储器和所述第一组计算节点在所述系统中形成无共享节点,所述数据库操作包括内部连接、扫描和重分布中的至少一个。6.根据权利要求5所述的系统,其特征在于,所述第一组存储器包括用于存储所述数据集的至少一个集成电路存储器,所述第一组计算节点包括至少一个集成电路处理器,其中,所述集成电路处理器通过信号路径耦合到所述集成电路存储器以传输所述数据集。7.根据权利要求1所述的系统,其特征在于,还包括所述一个或多个处理器执行所述指令以用于:获取多个逻辑计划,所述逻辑计划包括对存储在所述第一组存储器中的数据集进行的所述数据库操作;针对所述多个逻辑计划中的每个逻辑计划确定将所述数据集重分布到至少一个其他计算节点的成本;针对所述多个逻辑计划中的每个逻辑计划确定通过分区间并行降低的成本;基于重分布所述数据集的成本以及所述通过分区间并行降低的成本,从所述多个逻辑计划中选择逻辑计划。8.一种计算机实现的用于访问数据的方法,其特征在于,所述方法包括:获取多个逻辑计划以响应查询;针对所述多个逻辑计划中的每个逻辑计划确定将存储在分配给计算节点的存储器中的数据集重分布到至少一个其他计算节点的成本;针对所述多个逻辑计划中的每个逻辑计划确定通过分区间并行降低的成本;基于重分布所述数据集的成本以及所述通过分区间并行降低的成本,从所述多个逻辑计划中选择逻辑计划。9.根据权利要求8所述的计算机实现的方法,其特征在于,所述逻辑计划包括针对所述数据集进行的至少一个数据库操作。10.根据权利要求9所述的计算机实现的方法,其特征在于,所述针对所述数据集进行的至少一个数据库操作包括连接、哈希聚合和重分布中的至少一个。11.根据权利要求8所述的计算机实现的方法,其特征在于,所述确定重分布所述数据集的成本包括:计算所述数据集中待处理的元组数量;计算所述数据集中元组的宽度;计算所述数据集的哈希成本因子;计算耦合在所述存储器和所述至少一个其他计算节点之间的网络的平均数据...

【专利技术属性】
技术研发人员:张立杰森·扬·孙丁永华
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1