時(shí)間:2022-12-13 02:30:01 | 來源:信息時(shí)代
時(shí)間:2022-12-13 02:30:01 來源:信息時(shí)代
并行排序合并連接算法 : 對(duì)排序合并算法并行化的連接算法。它的最大優(yōu)點(diǎn)是產(chǎn)生一個(gè)有序的結(jié)果集合。如果被連接關(guān)系已經(jīng)按照連接屬性排序,可以省略算法的排序階段,只用合并操作就可以產(chǎn)生連接結(jié)果。這時(shí),排序合并連接算法的效率相當(dāng)高。并行排序合并連接算法由兩個(gè)階段組成,即排序和連接階段。在排序階段,它按照連接屬性的值排序每個(gè)連接關(guān)系;在連接階段,使用合并算法完成兩個(gè)排序關(guān)系的連接。主要有兩種并行排序合并連接算法。
1. 第一種排序合并算法PSMJ1
首先在多處理機(jī)之間分布連接關(guān)系,然后每個(gè)處理機(jī)對(duì)連接子集合進(jìn)行排序合并連接。設(shè)“R1,R2,…,RP”是R的P個(gè)子集合,“S1,S2,…,SP”是S的P個(gè)子集合,A是關(guān)系R和S的連接屬性。如果對(duì)于所有r∈Ri,所有s∈Sj,r[A]≠s[A],則稱子集合對(duì)(Ri,Sj)是可獨(dú)立連接對(duì)。PSMJ1算法的輸入為:處理機(jī)個(gè)數(shù)P;關(guān)系R和S;連接屬性A。算法的輸出為關(guān)系R和S的連接結(jié)果。算法主要思想如下:首先把R和S分別劃分為P個(gè)可獨(dú)立連接對(duì)(R1,S1)…(RP,SP),(Ri,Si)并發(fā)送到各處理機(jī)Pi;然后各處理機(jī)Pi并行地排序Ri和Si;最后各處理機(jī)Pi并行地用合并算法完成Ri和Si的連接。算法PSMJ1的數(shù)據(jù)劃分的實(shí)現(xiàn)方法有多種。例如,可以使用Hash方法實(shí)現(xiàn)這一步的數(shù)據(jù)劃分。
2.第二種排序合并算法PSMJ2
該算法首先使用隨機(jī)數(shù)據(jù)劃分方法把R和S劃分為P個(gè)可獨(dú)立連接對(duì)(R1,S1)…(RP,SP),(Ri,Si)送處理機(jī)i; 然后,各個(gè)處理機(jī)i完成Ri和Si連接。PSMJ2算法的輸入為: 處理機(jī)個(gè)數(shù)P;分布于P個(gè)處理機(jī)上的關(guān)系R和S;連接屬性A。算法的輸出為關(guān)系R和S的連接結(jié)果。算法主要思想是: 各處理機(jī)Pi從Ri抽取樣本SAMPLEi并將排序后的樣本SAMPLEi發(fā)送到指定處理機(jī)P1;處理機(jī)P1把其他處理機(jī)送來的樣本合并為一個(gè)有序樣本SAMPLE并將其劃分為P個(gè)相等的子序列,分點(diǎn)集合Pv=〈x1,…,xP-1〉作為R和S的劃分向量;然后處理機(jī)P1把Pv廣播給其他處理機(jī); 隨后各處理機(jī)Pi并行地讀R和S的子集合Ri和Si并按Pv劃分Ri和Si為SRi,1={x|x∈Ri,x<x1},SRi,j={x|x∈Ri,xj-1≤x<xj},2≤j≤P-1,SRi,P={x|x∈Ri,xP-1≤x},SSi,1={x|x∈Si,x<x1},SSi,j={x|x∈Si,xj-1≤x<xj},2≤j≤P-1,SSi,P={x|x∈Si,xP-1≤x},同時(shí)把(SRi,j,SSi,j)送處理機(jī)Pj(1≤j≤P);同時(shí)各處理器接收其他處理機(jī)送來的R和S的子集合,合并成SRi和SSi; 最后各處理機(jī)Pi并行地使用順序排序合并算法完成SRi和SSi的連接并輸出R和S的連接結(jié)果。
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。