專利名稱:一種面向云計算環(huán)境的容錯并行Skyline查詢方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Skyline查詢的分布并行處理方法,尤其是面向云計算環(huán)境的容錯并行Sky line查詢方法。
背景技術(shù):
Skyline查詢是海量數(shù)據(jù)管理領(lǐng)域亟待解決的核心問題之一。Skyline查詢是指從給定的一個D維的數(shù)據(jù)對象集合S中選擇一個子集,該子集中的任意一個數(shù)據(jù)對象都不能被S中的任意一個其他數(shù)據(jù)對象所控制。所謂控制關(guān)系是指在D維的數(shù)據(jù)對象集合S中, 如果數(shù)據(jù)對象P至少在某一維度上優(yōu)于另一個數(shù)據(jù)對象q,而且數(shù)據(jù)對象P在其他維度上都不比數(shù)據(jù)對象q差(P優(yōu)于或等于q),那么數(shù)據(jù)對象P能夠控制數(shù)據(jù)對象q。Skyline查詢是目前解決多目標(biāo)優(yōu)化問題的典型方法之一,Skyline查詢已經(jīng)成為數(shù)據(jù)分析和信息提取的重要技術(shù)手段,在城市導(dǎo)航、市場分析、環(huán)境監(jiān)控等諸多領(lǐng)域都有著重要應(yīng)用。近年來,隨著計算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和通信技術(shù)的快速發(fā)展,人們獲取、存儲和傳遞數(shù)據(jù)的能力日益增強(qiáng),數(shù)據(jù)的規(guī)模急劇膨脹,“大數(shù)據(jù)”作為信息爆炸的產(chǎn)物應(yīng)運而生。隨著數(shù)據(jù)集規(guī)模的不斷增大,Skyline查詢的數(shù)據(jù)處理變得更加復(fù)雜,對存儲資源和計算資源的需求也急劇增長,Skyline查詢的處理效率逐漸成為影響數(shù)據(jù)分析和信息提取效果的關(guān)鍵因素。隨著集群計算、網(wǎng)格計算、P2P計算等網(wǎng)絡(luò)計算模式的不斷發(fā)展,分布式并行計算技術(shù)已經(jīng)日趨成熟,并逐漸成為提高海量數(shù)據(jù)處理效率的有效技術(shù)途徑之一。云計算是分布計算、并行計算和網(wǎng)格計算的發(fā)展,是一種新的分布式并行計算模式。它將計算任務(wù)分布在大量計算機(jī)構(gòu)成的資源池上,使各種應(yīng)用系統(tǒng)能夠根據(jù)需要獲取計算力、存儲空間和各種軟件服務(wù)。將云計算技術(shù)與海量數(shù)據(jù)的Skyline查詢相結(jié)合,可以通過開發(fā)查詢計算的并行性來提高查詢處理效率。盡管隨著技術(shù)的進(jìn)步,各種軟硬件資源的可靠性得到了顯著提高,但是,隨著云計算的資源規(guī)模的不斷擴(kuò)大,資源的失效概率明顯上升。此外,為了有效降低維護(hù)成本,失效資源不是及時更新,而是成批維護(hù)的。在云計算環(huán)境下,資源失效是一種常態(tài)行為?,F(xiàn)有的Skyline查詢方法主要關(guān)注查詢處理過程及其查詢結(jié)果的正確性,無法及時處理節(jié)點失效情況。因此,如何針對海量數(shù)據(jù)及其Skyline查詢的本質(zhì)特點,結(jié)合云計算環(huán)境的資源特點,設(shè)計高效率低成本的容錯并行Skyline查詢方法,保證Skyline查詢處理的效率和查詢結(jié)果的正確性,已經(jīng)成為并行與分布處理領(lǐng)域的熱點研究問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是針對現(xiàn)有的Skyline查詢方法無法有效處理查詢處理過程中的節(jié)點失效的問題,提出一種面向云計算環(huán)境的容錯并行Skyline查詢方法,有效控制故障對分布并行Skyline查詢處理過程的影響,有效保證Skyline查詢處理的效率和查詢結(jié)果的正確性。
本發(fā)明技術(shù)方案包括以下步驟第一步,構(gòu)建一個云計算環(huán)境,它由多個節(jié)點構(gòu)成,每個節(jié)點都是一臺可獨立運行的計算機(jī),各節(jié)點通過網(wǎng)絡(luò)設(shè)備互連。云計算環(huán)境中的節(jié)點分為三類協(xié)調(diào)節(jié)點、計算節(jié)點和備份節(jié)點。云計算環(huán)境包括一個協(xié)調(diào)節(jié)點,負(fù)責(zé)與用戶交互,接收用戶提交的查詢請求,向各計算節(jié)點分發(fā)查詢處理任務(wù)和收集查詢處理結(jié)果,并向用戶返回查詢結(jié)果。云計算環(huán)境包括N個計算節(jié)點(N為正整數(shù)),它們負(fù)責(zé)存儲原始數(shù)據(jù)集并執(zhí)行查詢處理任務(wù),并向協(xié)調(diào)節(jié)點返回查詢處理結(jié)果。為了降低容錯成本,采用冷備份方式對計算節(jié)點進(jìn)行容錯處理,以避免計算節(jié)點故障對 Skyline查詢處理的影響。每個計算節(jié)點配置一個備份節(jié)點,計算節(jié)點上的原始數(shù)據(jù)集的副本存儲在其備份節(jié)點上。協(xié)調(diào)節(jié)點、計算節(jié)點和備份節(jié)點上均安裝有操作系統(tǒng)、TCP/IP協(xié)議軟件,配置了網(wǎng)絡(luò)環(huán)境。協(xié)調(diào)節(jié)點上安裝有任務(wù)調(diào)度程序、結(jié)果分析處理程序和故障處理程序。任務(wù)調(diào)度程序接收用戶提交的Skyline查詢請求,向各計算節(jié)點分發(fā)Skyline查詢處理任務(wù)。結(jié)果分析處理程序負(fù)責(zé)收集計算節(jié)點的Skyline查詢處理結(jié)果,并對收集到的所有計算節(jié)點的 Skyline查詢處理結(jié)果再進(jìn)行Skyline查詢處理以得到最終的Skyline查詢結(jié)果。故障處理程序負(fù)責(zé)定期對計算節(jié)點進(jìn)行故障檢測,并進(jìn)行故障修復(fù)。計算節(jié)點和備份節(jié)點上均安裝有查詢處理程序。查詢處理程序負(fù)責(zé)接收來自協(xié)調(diào)節(jié)點的Skyline查詢請求,并對計算節(jié)點或者備份節(jié)點上存儲的原始數(shù)據(jù)集進(jìn)行Skyline查詢處理。第二步,協(xié)調(diào)節(jié)點執(zhí)行任務(wù)調(diào)度程序,向各計算節(jié)點分發(fā)Skyline查詢處理任務(wù); 協(xié)調(diào)節(jié)點執(zhí)行故障處理程序,定期對計算節(jié)點進(jìn)行故障檢測,并進(jìn)行故障修復(fù);各計算節(jié)點執(zhí)行查詢處理程序,接收來自協(xié)調(diào)節(jié)點的Skyline查詢處理任務(wù),并行進(jìn)行Skyline查詢處理。2. 1協(xié)調(diào)節(jié)點的任務(wù)調(diào)度程序接收用戶提交的Skyline查詢請求;2. 2協(xié)調(diào)節(jié)點的任務(wù)調(diào)度程序向所有計算節(jié)點轉(zhuǎn)發(fā)Skyline查詢請求;2. 3協(xié)調(diào)節(jié)點的故障處理程序按故障檢測的周期T(T通常取100s,T應(yīng)根據(jù)系統(tǒng)的擴(kuò)展性和維護(hù)開銷進(jìn)行動態(tài)調(diào)整)定期對計算節(jié)點進(jìn)行故障檢測,并進(jìn)行故障修復(fù)。具體步驟如下2. 3. 1故障處理程序按周期T定期向所有計算節(jié)點發(fā)送探測消息;
2. 3. 2故障處理程序接收協(xié)調(diào)節(jié)點的探測消息,并返回應(yīng)答消息;2. 3. 3故障處理程序檢查t(t通常取IOs)時間內(nèi)收到的計算節(jié)點的應(yīng)答消息;2. 3. 4故障處理程序?qū)ξ唇邮盏綉?yīng)答消息的計算節(jié)點進(jìn)行如下故障修復(fù)處理2. 3. 4. 1如果協(xié)調(diào)節(jié)點保存的該計算節(jié)點的狀態(tài)標(biāo)記Matus為“Complete”,則協(xié)調(diào)節(jié)點保存的Skyline集合即為該計算節(jié)點最終的Skyline集合;2. 3. 4. 2如果協(xié)調(diào)節(jié)點保存的該計算節(jié)點的狀態(tài)標(biāo)記Matus為“Continue”,則協(xié)調(diào)節(jié)點將Skyline查詢請求、保存的“數(shù)據(jù)對象DO在本地原始數(shù)據(jù)集Set中的當(dāng)前位置”和 "Skyline集合LS” 一起發(fā)送給該計算節(jié)點的備份節(jié)點,由備份節(jié)點替代該計算節(jié)點繼續(xù)完成后續(xù)的Skyline查詢處理,并將最終的Skyline集合LS返回給協(xié)調(diào)節(jié)點。2. 4每個計算節(jié)點的查詢處理程序接收來自協(xié)調(diào)節(jié)點的Skyline查詢請求,根據(jù)接收的Skyline查詢請求對各自存儲的原始數(shù)據(jù)集進(jìn)行Skyline查詢處理,具體步驟如下2. 4. 1查詢處理程序接收來自協(xié)調(diào)節(jié)點的Skyline查詢請求;2. 4. 2查詢處理程序初始化Skyline集合LS=0,計數(shù)器ε = 0 ;2. 4. 3查詢處理程序?qū)Ρ镜卦紨?shù)據(jù)集Set中的所有數(shù)據(jù)對象逐一進(jìn)行數(shù)據(jù)對象之間的控制關(guān)系判斷,并定期將Skyline查詢處理的中間狀態(tài)信息保存到協(xié)調(diào)節(jié)點,具體步驟如下2. 4. 3. 1判斷本地原始數(shù)據(jù)集Set中的數(shù)據(jù)對象DO與本地原始數(shù)據(jù)集kt中的所有其他數(shù)據(jù)對象之間的控制關(guān)系,如果數(shù)據(jù)對象DO不被本地原始數(shù)據(jù)集Set中任意一個其他數(shù)據(jù)對象所控制,則將數(shù)據(jù)對象DO放入計算節(jié)點的Skyline集合LS中,S卩,LS = LS+{DO},同時更新計數(shù)器ε,ε = ε+1;2. 4. 3. 2如果計數(shù)器ε = θ (θ由系統(tǒng)設(shè)置,根據(jù)系統(tǒng)的擴(kuò)展性和原始數(shù)據(jù)集規(guī)模進(jìn)行動態(tài)調(diào)整,通常取值范圍是[100,1000]中的正整數(shù)),則將該計算節(jié)點的狀態(tài)標(biāo)記 Status設(shè)置為“Continue”,然后將狀態(tài)標(biāo)記Matus、數(shù)據(jù)對象DO在本地原始數(shù)據(jù)集Set中的當(dāng)前位置和Skyline集合LS保存到協(xié)調(diào)節(jié)點;2. 4.3.3如果計數(shù)器ε < θ,且本地原始數(shù)據(jù)集Set中的所有數(shù)據(jù)對象都已進(jìn)行 2. 4. 3. 1中的處理,則將該計算節(jié)點的狀態(tài)標(biāo)記Matus設(shè)置為“Complete”,然后將狀態(tài)標(biāo)記Matus和Skyline集合LS保存到協(xié)調(diào)節(jié)點;2. 4. 4查詢處理程序?qū)kyline集合LS返回給協(xié)調(diào)節(jié)點。第三步,協(xié)調(diào)節(jié)點的結(jié)果分析處理程序收集計算節(jié)點的Skyline查詢處理結(jié)果, 并對其進(jìn)行Skyline查詢處理,得到最終的Skyline查詢結(jié)果。3. 1結(jié)果分析處理程序收集所有計算節(jié)點的Skyline集合LS ;3. 2結(jié)果分析處理程序合并所有計算節(jié)點的Skyline集合LS,得到新數(shù)據(jù)集NS ;3. 3初始化協(xié)調(diào)節(jié)點的Skyline集合GS=0;3. 4結(jié)果分析處理程序?qū)π聰?shù)據(jù)集NS進(jìn)行Skyline查詢處理,即,判斷新數(shù)據(jù)集 NS中的每個數(shù)據(jù)對象N_D0與新數(shù)據(jù)集NS中所有其他數(shù)據(jù)對象之間的控制關(guān)系,如果數(shù)據(jù)對象N_D0不被新數(shù)據(jù)集NS中任意一個其他數(shù)據(jù)對象所控制,那么將數(shù)據(jù)對象N_D0放入?yún)f(xié)調(diào)節(jié)點的Skyline集合GS中;3. 5結(jié)果分析處理程序?qū)kyline集合GS返回給用戶。為了更加有效提高容錯并行Skyline查詢處理的可靠性,可以配置兩個相同的協(xié)調(diào)節(jié)點,這兩個協(xié)調(diào)節(jié)點采用雙機(jī)熱備份的工作模式,以避免協(xié)調(diào)節(jié)點故障對Skyline查詢處理的影響。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下技術(shù)優(yōu)點1.本發(fā)明2. 3. 1步、2. 3. 2步和2. 3. 3步通過協(xié)調(diào)節(jié)點定期向計算節(jié)點發(fā)送探測消息,對計算節(jié)點進(jìn)行故障檢測,可及時發(fā)現(xiàn)和準(zhǔn)確定位故障,為進(jìn)行故障恢復(fù)提供有效信肩、ο2.本發(fā)明2. 3. 4步當(dāng)協(xié)調(diào)節(jié)點發(fā)現(xiàn)計算節(jié)點故障后,及時將Skyline查詢請求、 保存的“數(shù)據(jù)對象DO在本地原始數(shù)據(jù)集Set中的當(dāng)前位置”和“Skyline集合LS” 一起發(fā)送給該計算節(jié)點的備份節(jié)點,由備份節(jié)點替代該計算節(jié)點繼續(xù)完成后續(xù)的Skyline查詢處理,快速實現(xiàn)任務(wù)遷移,從而有效控制故障對分布并行Skyline查詢處理過程的影響,有效保證Skyline查詢處理的效率和查詢結(jié)果的正確性。3.本發(fā)明2. 4. 3. 2步和2. 4. 3. 3步通過定期將各計算節(jié)點的狀態(tài)標(biāo)記Matus、當(dāng)前處理的數(shù)據(jù)對象DO在本地原始數(shù)據(jù)集Set中的當(dāng)前位置和Skyline集合LS保存到協(xié)調(diào)節(jié)點,及時保存各計算節(jié)點的當(dāng)前工作狀態(tài),從而有效提高故障恢復(fù)的效率。
圖1是本發(fā)明第一步構(gòu)建的云計算環(huán)境的物理結(jié)構(gòu)圖。圖2是本發(fā)明云計算環(huán)境的軟件部署圖。圖3是本發(fā)明總流程圖。圖4是本發(fā)明第二步協(xié)調(diào)節(jié)點執(zhí)行任務(wù)調(diào)度程序和故障處理程序、各計算節(jié)點執(zhí)行查詢處理程序的流程圖。圖5是本發(fā)明2. 3步協(xié)調(diào)節(jié)點執(zhí)行故障處理程序定期對計算節(jié)點進(jìn)行故障檢測并進(jìn)行故障修復(fù)的流程圖。圖6是本發(fā)明第三步協(xié)調(diào)節(jié)點執(zhí)行結(jié)果分析處理程序收集計算節(jié)點的Skyline查詢處理結(jié)果、進(jìn)行Skyline查詢處理以得到最終的Skyline查詢結(jié)果的流程圖。
具體實施例方式圖1是本發(fā)明第一步構(gòu)建的云計算環(huán)境的物理結(jié)構(gòu)圖。云計算環(huán)境的節(jié)點由協(xié)調(diào)節(jié)點、計算節(jié)點和備份節(jié)點組成。協(xié)調(diào)節(jié)點、計算節(jié)點和備份節(jié)點均是包含處理器、存儲器、 磁盤和網(wǎng)絡(luò)接口的計算機(jī)。協(xié)調(diào)節(jié)點、計算節(jié)點和備份節(jié)點之間通過互連網(wǎng)絡(luò)相連。備份節(jié)點與計算節(jié)點一一對應(yīng)。圖2是本發(fā)明云計算環(huán)境的軟件部署圖。協(xié)調(diào)節(jié)點上安裝有操作系統(tǒng)軟件、網(wǎng)絡(luò) TCP/IP軟件、任務(wù)調(diào)度程序、結(jié)果分析處理程序和故障處理程序。其中前兩者是通用軟件, 可從一些公開發(fā)行的軟件包中獲得;后三者是本發(fā)明的專用軟件。計算節(jié)點和備份節(jié)點上均安裝有操作系統(tǒng)軟件、TCP/IP網(wǎng)絡(luò)軟件、查詢處理程序。其中前兩者是通用軟件,可從一些公開發(fā)行的軟件包中獲得;查詢處理程序是本發(fā)明的專用軟件。圖3是本發(fā)明總流程圖。具體流程如下第一步,構(gòu)建一個云計算環(huán)境,它由多個節(jié)點構(gòu)成,每個節(jié)點都是一臺可獨立運行的計算機(jī),各節(jié)點通過網(wǎng)絡(luò)設(shè)備互連。第二步,協(xié)調(diào)節(jié)點執(zhí)行任務(wù)調(diào)度程序,向各計算節(jié)點分發(fā)Skyline查詢處理任務(wù); 協(xié)調(diào)節(jié)點執(zhí)行故障處理程序,定期對計算節(jié)點進(jìn)行故障檢測,并進(jìn)行故障修復(fù);各計算節(jié)點執(zhí)行查詢處理程序接收來自協(xié)調(diào)節(jié)點的Skyline查詢處理任務(wù),并行進(jìn)行Skyline查詢處理。第三步,協(xié)調(diào)節(jié)點的結(jié)果分析處理程序收集計算節(jié)點的Skyline查詢處理結(jié)果, 并對其進(jìn)行Skyline查詢處理,得到最終的Skyline查詢結(jié)果。圖4是本發(fā)明第二步協(xié)調(diào)節(jié)點執(zhí)行任務(wù)調(diào)度程序和故障處理程序、各計算節(jié)點執(zhí)行查詢處理程序的流程圖。具體流程如下2. 1協(xié)調(diào)節(jié)點的任務(wù)調(diào)度程序接收用戶提交的Skyline查詢請求;2. 2協(xié)調(diào)節(jié)點的任務(wù)調(diào)度程序向所有計算節(jié)點轉(zhuǎn)發(fā)Skyline查詢請求;
2. 3協(xié)調(diào)節(jié)點的故障處理程序按故障檢測的周期T定期對計算節(jié)點進(jìn)行故障檢測,并進(jìn)行故障修復(fù)。2. 4每個計算節(jié)點的查詢處理程序接收來自協(xié)調(diào)節(jié)點的Skyline查詢請求,根據(jù)接收的Skyline查詢請求對各自存儲的原始數(shù)據(jù)集進(jìn)行Skyline查詢處理,具體步驟如下2. 4. 1計算節(jié)點的查詢處理程序接收來自協(xié)調(diào)節(jié)點的Skyline查詢請求;2. 4. 2計算節(jié)點的查詢處理程序初始化Skyline集合LS=0,計數(shù)器ε = 0 ;2. 4. 3計算節(jié)點的查詢處理程序?qū)Ρ镜卦紨?shù)據(jù)集Set中的所有數(shù)據(jù)對象逐一進(jìn)行數(shù)據(jù)對象之間的控制關(guān)系判斷,并定期將Skyline查詢處理的中間狀態(tài)信息保存到協(xié)調(diào)節(jié)占.
I— /、、、 2. 4. 4計算節(jié)點的查詢處理程序?qū)kyline集合LS返回給協(xié)調(diào)節(jié)點。圖5是本發(fā)明2. 3步協(xié)調(diào)節(jié)點執(zhí)行故障處理程序定期對計算節(jié)點進(jìn)行故障檢測并進(jìn)行故障修復(fù)的流程圖。具體流程如下2. 3. 1故障處理程序按周期T定期向所有計算節(jié)點發(fā)送探測消息;2. 3. 2故障處理程序接收協(xié)調(diào)節(jié)點的探測消息,并返回應(yīng)答消息;2. 3. 3故障處理程序檢查t(t通常取IOs)時間內(nèi)收到的計算節(jié)點的應(yīng)答消息;2. 3. 4故障處理程序?qū)ξ唇邮盏綉?yīng)答消息的計算節(jié)點進(jìn)行如下故障修復(fù)處理2. 3. 4. 1如果協(xié)調(diào)節(jié)點保存的該計算節(jié)點的狀態(tài)標(biāo)記Matus為“Complete”,則協(xié)調(diào)節(jié)點保存的Skyline集合即為該計算節(jié)點最終的Skyline集合;2. 3. 4. 2如果協(xié)調(diào)節(jié)點保存的該計算節(jié)點的狀態(tài)標(biāo)記Matus為“Continue”,則協(xié)調(diào)節(jié)點將Skyline查詢請求、保存的“數(shù)據(jù)對象DO在本地原始數(shù)據(jù)集Set中的當(dāng)前位置”和 "Skyline集合LS” 一起發(fā)送給該計算節(jié)點的備份節(jié)點,由備份節(jié)點替代該計算節(jié)點繼續(xù)完成后續(xù)的Skyline查詢處理,并將最終的Skyline集合LS返回給協(xié)調(diào)節(jié)點。圖6是本發(fā)明第三步協(xié)調(diào)節(jié)點執(zhí)行結(jié)果分析處理程序收集計算節(jié)點的Skyline查詢處理結(jié)果、進(jìn)行Skyline查詢處理以得到最終的Skyline查詢結(jié)果的流程圖。具體流程如下3. 1結(jié)果分析處理程序收集所有計算節(jié)點的Skyline集合LS ;3. 2結(jié)果分析處理程序合并所有計算節(jié)點的Skyline集合LS,得到新數(shù)據(jù)集NS ;3. 3初始化協(xié)調(diào)節(jié)點的Skyline集合GS=0;3. 4結(jié)果分析處理程序?qū)π聰?shù)據(jù)集NS進(jìn)行Skyline查詢處理,即,判斷新數(shù)據(jù)集 NS中的每個數(shù)據(jù)對象N_D0與新數(shù)據(jù)集NS中所有其他數(shù)據(jù)對象之間的控制關(guān)系,如果數(shù)據(jù)對象N_D0不被新數(shù)據(jù)集NS中任意一個其他數(shù)據(jù)對象所控制,那么將數(shù)據(jù)對象N_D0放入?yún)f(xié)調(diào)節(jié)點的Skyline集合GS中;3. 5結(jié)果分析處理程序?qū)kyline集合GS返回給用戶。
權(quán)利要求
1.一種面向云計算環(huán)境的容錯并行Skyline查詢方法,其特征在于包括以下步驟第一步,構(gòu)建一個云計算環(huán)境,它由多個節(jié)點構(gòu)成,每個節(jié)點都是一臺可獨立運行的計算機(jī),各節(jié)點通過網(wǎng)絡(luò)設(shè)備互連;云計算環(huán)境包括一個協(xié)調(diào)節(jié)點,負(fù)責(zé)與用戶交互,接收用戶提交的查詢請求,向各計算節(jié)點分發(fā)查詢處理任務(wù)和收集查詢處理結(jié)果,并向用戶返回查詢結(jié)果;云計算環(huán)境包括N個計算節(jié)點,N為正整數(shù),它們負(fù)責(zé)存儲原始數(shù)據(jù)集并執(zhí)行查詢處理任務(wù),并向協(xié)調(diào)節(jié)點返回查詢處理結(jié)果;每個計算節(jié)點配置一個備份節(jié)點,計算節(jié)點上的原始數(shù)據(jù)集的副本存儲在其備份節(jié)點上;協(xié)調(diào)節(jié)點、計算節(jié)點和備份節(jié)點上均安裝有操作系統(tǒng)、TCP/IP協(xié)議軟件,配置了網(wǎng)絡(luò)環(huán)境;協(xié)調(diào)節(jié)點上安裝有任務(wù)調(diào)度程序、結(jié)果分析處理程序和故障處理程序,任務(wù)調(diào)度程序接收用戶提交的Skyline查詢請求,向各計算節(jié)點分發(fā)Skyline查詢處理任務(wù),結(jié)果分析處理程序負(fù)責(zé)收集計算節(jié)點的Skyline查詢處理結(jié)果,并對收集到的所有計算節(jié)點的Skyline查詢處理結(jié)果再進(jìn)行Skyline查詢處理以得到最終的Skyline查詢結(jié)果,故障處理程序負(fù)責(zé)定期對計算節(jié)點進(jìn)行故障檢測,并進(jìn)行故障修復(fù);計算節(jié)點和備份節(jié)點上均安裝有查詢處理程序,查詢處理程序負(fù)責(zé)接收來自協(xié)調(diào)節(jié)點的Skyline查詢請求,并對計算節(jié)點或者備份節(jié)點上存儲的原始數(shù)據(jù)集進(jìn)行Skyline 查詢處理;第二步,協(xié)調(diào)節(jié)點執(zhí)行任務(wù)調(diào)度程序,向各計算節(jié)點分發(fā)Skyline查詢處理任務(wù);協(xié)調(diào)節(jié)點執(zhí)行故障處理程序,定期對計算節(jié)點進(jìn)行故障檢測,并進(jìn)行故障修復(fù);各計算節(jié)點執(zhí)行查詢處理程序,接收來自協(xié)調(diào)節(jié)點的Skyline查詢處理任務(wù),并行進(jìn)行Skyline查詢處理;
2.1協(xié)調(diào)節(jié)點的任務(wù)調(diào)度程序接收用戶提交的Skyline查詢請求;2. 2協(xié)調(diào)節(jié)點的任務(wù)調(diào)度程序向所有計算節(jié)點轉(zhuǎn)發(fā)Skyline查詢請求; 2. 3協(xié)調(diào)節(jié)點的故障處理程序按故障檢測的周期T定期對計算節(jié)點進(jìn)行故障檢測,并進(jìn)行故障修復(fù),T取100s,具體步驟如下2. 3. 1故障處理程序按周期T定期向所有計算節(jié)點發(fā)送探測消息; 2. 3. 2故障處理程序接收協(xié)調(diào)節(jié)點的探測消息,并返回應(yīng)答消息; 2. 3. 3故障處理程序檢查t時間內(nèi)收到的計算節(jié)點的應(yīng)答消息,t取IOs ; 2. 3. 4故障處理程序?qū)ξ唇邮盏綉?yīng)答消息的計算節(jié)點進(jìn)行如下故障修復(fù)處理 2. 3. 4. 1如果協(xié)調(diào)節(jié)點保存的該計算節(jié)點的狀態(tài)標(biāo)記Matus為“Complete”,則協(xié)調(diào)節(jié)點保存的Skyline集合即為該計算節(jié)點最終的Skyline集合;2. 3. 4. 2如果協(xié)調(diào)節(jié)點保存的該計算節(jié)點的狀態(tài)標(biāo)記Matus為“Continue”,則協(xié)調(diào)節(jié)點將Skyline查詢請求、保存的“數(shù)據(jù)對象DO在本地原始數(shù)據(jù)集kt中的當(dāng)前位置”和 "Skyline集合LS” 一起發(fā)送給該計算節(jié)點的備份節(jié)點,由備份節(jié)點替代該計算節(jié)點繼續(xù)完成后續(xù)的Skyline查詢處理,并將最終的Skyline集合LS返回給協(xié)調(diào)節(jié)點;。2. 4每個計算節(jié)點的查詢處理程序接收來自協(xié)調(diào)節(jié)點的Skyline查詢請求,根據(jù)接收的Skyline查詢請求對各自存儲的原始數(shù)據(jù)集進(jìn)行Skyline查詢處理,具體步驟如下 2. 4. 1查詢處理程序接收來自協(xié)調(diào)節(jié)點的Skyline查詢請求; 2. 4. 2查詢處理程序初始化Skyline集合LS=0,計數(shù)器ε = 0 ; 2. 4. 3查詢處理程序?qū)Ρ镜卦紨?shù)據(jù)集Set中的所有數(shù)據(jù)對象逐一進(jìn)行數(shù)據(jù)對象之間的控制關(guān)系判斷,并定期將Skyline查詢處理的中間狀態(tài)信息保存到協(xié)調(diào)節(jié)點,具體步驟如下2. 4. 3. 1判斷本地原始數(shù)據(jù)集Set中的數(shù)據(jù)對象DO與本地原始數(shù)據(jù)集Set中的所有其他數(shù)據(jù)對象之間的控制關(guān)系,如果數(shù)據(jù)對象DO不被本地原始數(shù)據(jù)集Set中任意一個其他數(shù)據(jù)對象所控制,則將數(shù)據(jù)對象DO放入計算節(jié)點的Sky 1 ine集合LS中,S卩,LS = LS+ {DO},同時更新計數(shù)器ε,ε = ε +1 ;2. 4. 3.2如果計數(shù)器ε = θ,θ的取值范圍是[100,1000]中的正整數(shù),則將該計算節(jié)點的狀態(tài)標(biāo)記Matus設(shè)置為“Continue”,然后將狀態(tài)標(biāo)記Matus、數(shù)據(jù)對象DO在本地原始數(shù)據(jù)集Set中的當(dāng)前位置和Skyline集合LS保存到協(xié)調(diào)節(jié)點;2. 4. 3. 3如果計數(shù)器ε < θ,且本地原始數(shù)據(jù)集中的所有數(shù)據(jù)對象都已進(jìn)行 2. 4. 3. 1中的處理,則將該計算節(jié)點的狀態(tài)標(biāo)記Matus設(shè)置為“Complete”,然后將狀態(tài)標(biāo)記Matus和Skyline集合LS保存到協(xié)調(diào)節(jié)點;2.4. 4查詢處理程序?qū)kyline集合LS返回給協(xié)調(diào)節(jié)點;第三步,協(xié)調(diào)節(jié)點的結(jié)果分析處理程序收集計算節(jié)點的Skyline查詢處理結(jié)果,并對其進(jìn)行Skyline查詢處理,得到最終的Skyline查詢結(jié)果3.1結(jié)果分析處理程序收集所有計算節(jié)點的Skyline集合LS ;3. 2結(jié)果分析處理程序合并所有計算節(jié)點的Skyline集合LS,得到新數(shù)據(jù)集NS ;3. 3初始化協(xié)調(diào)節(jié)點的Skyline集合GS=0;3. 4結(jié)果分析處理程序?qū)π聰?shù)據(jù)集NS進(jìn)行Skyline查詢處理,即,判斷新數(shù)據(jù)集NS中的每個數(shù)據(jù)對象N_D0與新數(shù)據(jù)集NS中所有其他數(shù)據(jù)對象之間的控制關(guān)系,如果數(shù)據(jù)對象 N_D0不被新數(shù)據(jù)集NS中任意一個其他數(shù)據(jù)對象所控制,那么將數(shù)據(jù)對象N_D0放入?yún)f(xié)調(diào)節(jié)點的Skyline集合GS中;3. 5結(jié)果分析處理程序?qū)kyline集合GS返回給用戶。2.如權(quán)利要求1所述的面向云計算環(huán)境的容錯并行Skyline查詢方法,其特征在于所述云計算環(huán)境配置兩個相同的協(xié)調(diào)節(jié)點,兩個協(xié)調(diào)節(jié)點采用雙機(jī)熱備份的工作模式。
全文摘要
本發(fā)明公開了一種面向云計算環(huán)境的容錯并行Skyline查詢方法,目的是提出一種可控制故障對分布并行Skyline查詢處理過程的影響、保證Skyline查詢處理效率和結(jié)果正確性的方法。技術(shù)方案是先構(gòu)建由協(xié)調(diào)節(jié)點、計算節(jié)點和備份節(jié)點組成的云計算環(huán)境,協(xié)調(diào)節(jié)點執(zhí)行任務(wù)調(diào)度程序,向計算節(jié)點分發(fā)Skyline查詢處理任務(wù);協(xié)調(diào)節(jié)點執(zhí)行故障處理程序,定期對計算節(jié)點進(jìn)行故障檢測并進(jìn)行故障修復(fù);各計算節(jié)點執(zhí)行查詢處理程序,接收來自協(xié)調(diào)節(jié)點的Skyline查詢處理任務(wù),并行進(jìn)行Skyline查詢處理;協(xié)調(diào)節(jié)點的結(jié)果分析處理程序收集計算節(jié)點的Skyline查詢處理結(jié)果,并對其進(jìn)行Skyline查詢處理,得到最終的Skyline查詢結(jié)果。采用本發(fā)明可及時發(fā)現(xiàn)和準(zhǔn)確定位故障,有效保證Skyline查詢處理效率和查詢正確性。
文檔編號G06F11/07GK102254016SQ20111020592
公開日2011年11月23日 申請日期2011年7月22日 優(yōu)先權(quán)日2011年7月22日
發(fā)明者孫偉東, 李小勇, 楊永滔, 王媛, 王意潔, 裴曉強(qiáng), 鄧瑞鵬 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)