用于大规模并行处理数据库集群中的两阶段查询优化的方法

文档序号:8909167阅读:739来源:国知局
用于大规模并行处理数据库集群中的两阶段查询优化的方法
【专利说明】用于大规模并行处理数据库集群中的两阶段查询优化的方法
[0001]相关申请案交叉申请
[0002]本发明要求2012年12月29日递交的发明名称为“用于大规模并行处理数据库集群中的两阶段查询优化的方法(Method for Two-Stage Query Optimizat1n inMassively Parallel Processing Database Clusters) ” 的第 13/730872 号美国专利申请案的在先申请优先权,该在先申请的内容以引用的方式并入本文本中,如全文再现一般。
技术领域
[0003]本发明涉及通信网络,以及在具体实施例中,涉及用于大规模并行处理数据库集群中的两阶段查询优化的方法。
【背景技术】
[0004]大规模并行处理(MPP)是多个处理器处理同一程序的不同部分时该程序的协调过程。处理器互相通信以完成任务,但各处理器运用自身的操作系统和内存资源。MPP数据库系统基于无共享架构,在该架构中,数据库被划分为段并分发给多个处理器(数据节点)用于并行处理。由于每个数据节点仅并行存储一部分MPP数据库,因此与顺序处理系统中可能的数据库操作相比,该系统中的数据库操作(例如,搜索、扫描等)可以更快地执行。
[0005]客户端通过与MPP协调器交互来访问MPP数据库中的信息,MPP协调器为用于接收和响应查询的进程。具体而言,对于每个发出的查询,MPP协调器查阅全局目录以开发一种单条查询计划(本文中称为“全局执行计划(global execut1n plan) ”),该计划随后被分发给各个MPP数据节点用于本地执行。需注意的是,MPP协调器的资源和数据分布的全局视图可能缺少对MPP数据节点的本地配置信息和/或统计的了解,但取而代之,可尤其对本地数据分布和/或资源可用性作出广义的假设。例如,MPP协调器可假设数据在多个MPP数据节点中均匀分布和/或不限制MPP数据节点的资源(例如,处理或其它)。因此,MPP协调器的全局执行计划对于一个或多个本地MPP数据节点而言是次佳的,这可能会导致全局执行计划的低效执行。因此,需要用于提高MPP数据库系统中的查询优化的机制。

【发明内容】

[0006]本发明的实施例提供了一种大规模并行处理数据库集群中用于两阶段查询优化的方法,通过这些实施例一般能获得技术优势。
[0007]根据实施例,提供了一种用于在大规模并行处理(MPP)数据库中处理查询的方法。在该示例中,所述方法包括MPP数据节点从MPP协调器接收全局执行计划和语义树;所述MPP数据节点根据所述语义树生成本地执行计划;以及所述MPP数据节点选择执行所述全局执行计划或所述本地执行计划。还提供了一种用于执行所述方法的装置。
[0008]根据另一实施例,提供了一种大规模并行处理(MPP)数据库系统。在该示例中,所述系统包括一个或多个MPP协调器,用于从客户端接收查询;生成语义树;根据所述语义树开发用于执行所述查询的全局执行计划;以及将所述全局执行计划分发给多个MPP数据节点。所述系统还包括MPP数据节点,用于从所述一个或多个MPP协调器接收所述全局执行计划和所述语义树;根据所述第一 MPP数据节点的本地配置信息使用所述语义树优化所述全局执行计划来获取优化后的执行计划;以及执行所述优化后的执行计划。
【附图说明】
[0009]为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
[0010]图1示出了实施例MPP数据库系统的图解;
[0011]图2示出了描绘如何将常规数据库划分为MPP数据库的图解;
[0012]图3示出了用于响应查询的常规MPP数据库架构的图解;
[0013]图4示出了用于响应查询的实施例MPP数据库架构的图解;
[0014]图5示出了优化全局执行计划的方法的流程图;
[0015]图6示出了用于全局执行计划的查询流的图解;
[0016]图7(a)和7(b)示出了用于本地优化后的全局执行计划的查询流的图解;
[0017]图8示出了一种包括本地优化的额外阶段的处理查询的方法的流程图;
[0018]图9示出了 MPP协调器的查询处理模块的方框图;
[0019]图10示出了 MPP数据节点的本地优化器模块的图解;
[0020]图11示出了 MPP数据节点处本地优化全局执行计划过程的流程图;以及
[0021]图12示出了 MPP数据节点的高级方框图。
[0022]除非另有指示,否则不同图中的对应标号和符号通常指代对应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。
【具体实施方式】
[0023]下文将详细论述对本发明实施例的实施和使用。应了解,本文所揭示的概念可以在多种具体环境中实施,且所论述的具体实施例仅作为说明而不限制权利要求书的范围。
[0024]本发明的各方面使得MPP数据节点能够根据自身的配置信息本地优化全局执行计划。具体而言,MPP数据节点将根据MPP协调器提供的语义树生成本地执行计划。可根据MPP数据节点的本地配置信息(例如,资源可用性、本地存储的数据的数目和值/对象分布等)定制本地执行计划,一般来说,这些信息不可用于MPP协调器。当生成本地执行计划时,可使用与全局执行计划关联的约束强化从语义树获取的子树以确保本地执行计划的每个段都满足这些约束。
[0025]图1示出了处理客户端101的查询的MPP数据库系统100。如图所示,MPP数据库系统100包括耦合到多个数据节点110至140的协调器105。协调器105可以是任何用于代表客户端101执行查询的设备。执行此类查询可包含开发全局执行计划,所述全局执行计划包括一个或多个概述数据节点110至140的处理流的本地计划段。数据节点110至140可以是任意能够访问(例如,独占访问)MPP数据库系统100的分区的部件。数据节点110至140可用于优化全局执行计划和/或该全局执行计划对应段,并且随后执行对应计划段以得到查询结果。
[0026]图2示出了如何将数据库200划分为MPP数据库250的示例。如图所示,数据库200包括第一表(tl) 210、第二表(t2) 220和第三表(t3)230。表210至230的大小可能不同,并且可包括不同的列数。由于表210至230使用额外数据填满,因此数据库200变得过大以致于单个处理器无法有效处理。因此,将数据库200划分为MPP数据库250是有益的。如图所示,MPP数据库250包括多个分区251至253,每个分区存储一部分从数据库200获取的数据。虽然图2所示为包括各个表210至230的对应部分的各个分区251至253,但其它实施例MPP架构可以不同方式分发数据。例如,tl210可存储在分区251至253中的单个分区中,或者可分发到分区251至253的两个分区。无论如何,很有可能数据以非均匀或非一致方式在分区251至253之间分发。
[0027]常规查询执行流包括协调器从客户端接收查询,编译该查询,生成全局执行计划,以及将该全局执行计划发送到各个数据节点。之后,各个数据节点可实例化全局执行计划的一个或多个段,(如若需要)互相交换数据,以及计算该查询的结果并将结果返回给协
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1