时间:2022-12-27 16:30:01 | 来源:信息时代
时间:2022-12-27 16:30:01 来源:信息时代
基于 CMD并行连接算法 : 基于多维数据分布方法CMD的一种并行连接算法。算法分为两个阶段。在第一阶段,每个关系的连接无关区域将被剔除,只需考虑相关区域。算法的第二阶段进行相关连接区域的连接处理。在连接处理的过程中,一个关系的连接区域仅需要和另一个关系的连接相关区域进行连接操作,不需要与其他连接区域进行连接操作。算法可以采用Hash、sort_merge和nested loop方法完成两个连接相关区域的连接操作。以下介绍基于Hash方法的连接算法。算法的输入为: 按照CMD方法分布的关系R和S,它们的连接属性分别为a和b。算法的输出是R与S的连接结果。算法的主要思想如下: 使用R和S的划分向量确定R和S的连接相关区域:JR(R,a,x),JR(R,a,x+1),…,JR(R,a,y),JR(S,b,z),JR(S,b,z+1) ,…,JR(S,b,w)。对从x到y的每个连接相关区域JR(R,a,i)和从z到w的每个连接相关区域JR(S,b,j),首先,P个处理机并行地读取JR(R,a,i),并用Hash函数分布JR(R,a,i)到所有可用处理机,同时接收其他处理机传来的JR(R,a,i)子集合并为其建立Hash表。然后,P个处理机并行地对JR(S,b,j)和JR(R,a,i)连接相关的部分进行计算。在计算过程中,若JR(S,b,j)是第一次被访问,则处理机使用Hash函数将其分布到JR(R,a,i)所在处理机集合。随后每个处理机用JR(S,b,j)子集搜索匹配JR(R,a,i)子集的Hash表完成JR(S,b,j)子集与JR(R,a,i)子集的Hash连接。由于R和S的划分点可能不同,所以最后需要考虑若JR(S,b,j-1)与JR(R,a,i+1)连接相关,则JR(S,b,j-1)需再与JR(R,a,i+1)进行连接。该算法不同于其他并行Hash_join算法,它不需要对整个连接关系进行Hash划分,可节省大量的I/O和通信时间。
关键词:数据,连接,并行