專利名稱:與分布式數(shù)據(jù)庫架構(gòu)并靠的網(wǎng)格計算系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本文中所描述的技術(shù)大體來說涉及分布式數(shù)據(jù)處理,且更具體來說涉及使用基于網(wǎng)格的計算系統(tǒng)及分布式數(shù)據(jù)庫系統(tǒng)的分布式數(shù)據(jù)處理。
背景技術(shù):
高性能分析解涉及共置數(shù)據(jù)與分析代碼。此可減少I/O額外開銷,因為可跨越節(jié)點網(wǎng)格將大量數(shù)據(jù)加載到存儲器中,且可發(fā)生并行計算。一種用于數(shù)據(jù)與分析代碼的共置的技術(shù)稱為數(shù)據(jù)庫內(nèi)模型。另一種技術(shù)稱為數(shù)據(jù)庫外模型。在數(shù)據(jù)庫內(nèi)模型的情況下,分析代碼在無共享環(huán)境中的分布式數(shù)據(jù)庫系統(tǒng)的節(jié)點上執(zhí)行。過程通常通過從SQL查詢調(diào)用預(yù)安裝在數(shù)據(jù)庫管理系統(tǒng)上的用戶定義函數(shù)(UDF)而開始。數(shù)據(jù)已在節(jié)點本地或按SQL查詢的請求被移動到所述節(jié)點。數(shù)據(jù)庫內(nèi)模型是以SQL為中心的無共享環(huán)境,其中UDF在數(shù)據(jù)庫管理系統(tǒng)的控制下執(zhí)行。也就是說,節(jié)點無法彼此進行通信,通常,信息無法在數(shù)據(jù)庫節(jié)點上的查詢之間持續(xù),除非其被以表的形式寫入到數(shù)據(jù)庫管理系統(tǒng),且數(shù)據(jù)庫管理系統(tǒng)控制由UDF消耗的資源。在此模型中,可由數(shù)據(jù)庫提供失效修復(fù)、復(fù)制及對事務(wù)的支持。在數(shù)據(jù)庫外模型的情況下,采用網(wǎng)格式計算環(huán)境,其中數(shù)據(jù)駐存于計算節(jié)點上的存儲器中,且分析代碼代替數(shù)據(jù)庫管理系統(tǒng)來控制整個過程。通過將數(shù)據(jù)預(yù)分布到網(wǎng)格節(jié)點來共置所述數(shù)據(jù),其中分析代碼將本地數(shù)據(jù)加載到存儲器中。數(shù)據(jù)庫外模型可為全共享環(huán)境,且也可因為不存在到分布式數(shù)據(jù)庫的直接連接而被稱為“無數(shù)據(jù)庫”模型。舉例來說,數(shù)據(jù)可能來自Teradata 數(shù)據(jù)庫,但在分析之前被分布到網(wǎng)格計算節(jié)點上,且與其中所述數(shù)據(jù)可能已始發(fā)的分布式數(shù)據(jù)庫的連接被切斷。在此環(huán)境中,分析代碼通過添加消息傳遞協(xié)議而具有對節(jié)點對節(jié)點通信的完全控制。
發(fā)明內(nèi)容
根據(jù)本文中所提供的教示,提供用于對存儲于分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)執(zhí)行分析計算的網(wǎng)格計算系統(tǒng)的系統(tǒng)及方法。用于共置數(shù)據(jù)與分析代碼的此技術(shù)(本文中稱為與數(shù)據(jù)庫模型并排)允許分析代碼實行對分析過程的完全控制及對數(shù)據(jù)存取的完全控制,但使用分布式數(shù)據(jù)庫將數(shù)據(jù)饋送到本地計算節(jié)點。其共置數(shù)據(jù)、分析代碼及存儲數(shù)據(jù)并執(zhí)行分析代碼所需的硬件。所述分析代碼保持控制且允許節(jié)點對節(jié)點通信。直接從經(jīng)共置分布式數(shù)據(jù)庫檢索數(shù)據(jù)以加載到網(wǎng)格節(jié)點上的存儲器中,此允許如同在數(shù)據(jù)庫外模型中一樣執(zhí)行分析且利用分布式數(shù)據(jù)庫的失效修復(fù)、復(fù)制及事務(wù)安全的能力的靈活性。舉例來說,網(wǎng)格化軟件組件在控制節(jié)點上執(zhí)行且將命令提供到多個工作者節(jié)點網(wǎng)格化軟件組件。工作者節(jié)點網(wǎng)格化軟件組件中的每一者與單獨節(jié)點相關(guān)聯(lián)且在所述單獨節(jié)點上執(zhí)行。所述節(jié)點還執(zhí)行管理可對其進行分析計算或查詢或加載活動的數(shù)據(jù)的數(shù)據(jù)庫管理軟件(DBMS)。通過在每一節(jié)點上定位DBMS,與之前所述的數(shù)據(jù)庫內(nèi)及/或數(shù)據(jù)庫外模型相比,可盡可能少地移動數(shù)據(jù)。通過在數(shù)據(jù)所駐存的數(shù)據(jù)庫節(jié)點上處理所述處理,移動得以最小化。通過將在數(shù)據(jù)庫過程之外的數(shù)據(jù)發(fā)送到DBMS中,可實現(xiàn)更多控制。舉例來說,可在需要的情況下與其它節(jié)點進行通信。在數(shù)據(jù)庫內(nèi)部處理數(shù)據(jù)不會給出在工作單元(在DBMS節(jié)點上運行的UDF)之間通信的此機會。借助以此方式通信的能力,可執(zhí)行難以或不可能在數(shù)據(jù)庫內(nèi)模型中執(zhí)行的復(fù)雜得多的分析任務(wù)。使數(shù)據(jù)從DBMS移動到經(jīng)共置過程中的另一優(yōu)點為可高速緩存數(shù)據(jù);必須多次通過數(shù)據(jù)的算法現(xiàn)在可利用數(shù)據(jù)的存儲器內(nèi)表示,而非從磁盤重新讀取??刂乒?jié)點處的網(wǎng)格化軟件組件經(jīng)配置以:調(diào)用所述控制節(jié)點處的DBMS以致使多個工作者節(jié)點處的DBMS使數(shù)據(jù)的一部分可用于在其節(jié)點本地的網(wǎng)格化軟件組件;指示所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件對所接收的數(shù)據(jù)執(zhí)行分析計算且將所述數(shù)據(jù)分析的結(jié)果發(fā)送到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;及匯編由所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件執(zhí)行的所述數(shù)據(jù)分析的結(jié)果。本發(fā)明尤其是針對一種用于對存儲于分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)執(zhí)行分析計算的網(wǎng)格計算系統(tǒng),所述網(wǎng)格計算系統(tǒng)包括:多個網(wǎng)格計算節(jié)點,其包含一控制節(jié)點及多個工作者節(jié)點,每一節(jié)點包括:處理器,其用于執(zhí)行數(shù)據(jù)庫管理軟件(DBMS)且用于執(zhí)行網(wǎng)格化軟件組件,本地緩沖存儲器,其可由所述網(wǎng)格化軟件組件存取,及本地存儲媒體,其可由所述DBMS存取以存儲數(shù)據(jù);其中所述網(wǎng)格化軟件組件經(jīng)配置以對由數(shù)據(jù)庫管理系統(tǒng)存儲的所述數(shù)據(jù)的一部分執(zhí)行所述分析計算;所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以:調(diào)用所述控制節(jié)點處的所述DBMS以致使多個所述工作者節(jié)點處的所述DBMS使所述數(shù)據(jù)的一部分可用于在其節(jié)點本地的所述網(wǎng)格化軟件組件;指示所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件對所接收的數(shù)據(jù)執(zhí)行分析計算且將所述數(shù)據(jù)分析的結(jié)果發(fā)送到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;及匯編由所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件執(zhí)行的所述數(shù)據(jù)分析的所述結(jié)果。特別優(yōu)選地,多個工作者節(jié)點處的所述DBMS經(jīng)配置以通過將所述數(shù)據(jù)保存到可由所述DBMS及所述多個工作者節(jié)點的本地網(wǎng)格化軟件組件兩者在本地存取的共享存儲器來使所述數(shù)據(jù)可用于所述網(wǎng)格化軟件組件。此外,本發(fā)明提出多個工作者節(jié)點處的所述DBMS經(jīng)配置以通過經(jīng)由套接字連接通信來使所述數(shù)據(jù)可用于其本地網(wǎng)格化軟件組件。在之前所述的實施例中,尤其優(yōu)選地,所述多個工作者節(jié)點的所述網(wǎng)格化軟件組件經(jīng)配置以使用共用端口地址打開套接字連接。此外,本發(fā)明針對之前所提及的實施例提出所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以將所述共用端口地址提供到在其節(jié)點本地的所述DBMS,且所述控制節(jié)點處的所述DBMS經(jīng)配置以將所述共用端口地址提供到所述多個工作者節(jié)點處的所述DBMS。發(fā)明性系統(tǒng)的特征可進一步在于所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以存儲所接收的數(shù)據(jù)且使用其本地緩沖存儲器執(zhí)行所述數(shù)據(jù)分析。還提出所述多個工作者節(jié)點經(jīng)配置以將來自所述數(shù)據(jù)分析的所述結(jié)果傳輸?shù)狡浔镜谼BMS以供存儲于分布式數(shù)據(jù)庫中。
所述系統(tǒng)的特征可進一步在于從所述多個工作者節(jié)點網(wǎng)格化軟件組件接收的所述分析的所述結(jié)果是經(jīng)由網(wǎng)絡(luò)接收。在有利實施例中,優(yōu)選地,多個所述工作者節(jié)點網(wǎng)格化軟件組件經(jīng)由所述網(wǎng)絡(luò)使用MPI來傳輸其結(jié)果。此外,本發(fā)明提出由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果存儲于所述分布式數(shù)據(jù)庫系統(tǒng)中。還優(yōu)選地,由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果被傳輸?shù)娇蛻舳斯?jié)點處的網(wǎng)格化軟件組件。根據(jù)本發(fā)明的系統(tǒng)的特征可進一步在于在檢測到所述工作者節(jié)點中的一者處的失效之后,即刻:所述控制節(jié)點處的所述DBMS經(jīng)配置以致使其余工作者節(jié)點中的一者處的所述DBMS將所述數(shù)據(jù)的先前分布到所述失效節(jié)點處的所述網(wǎng)格化軟件組件的所述部分重新分布到在所述節(jié)點本地的所述網(wǎng)格化軟件組件;接收所述經(jīng)重新分布數(shù)據(jù)的所述網(wǎng)格化軟件組件經(jīng)配置以對所述經(jīng)重新分布數(shù)據(jù)執(zhí)行分析計算且將結(jié)果提供到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;且所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以匯編從所述其余工作者節(jié)點處的所述網(wǎng)格化軟件組件接收到的所述結(jié)果。此外,所述系統(tǒng)可包括客戶端節(jié)點處的網(wǎng)格化軟件組件:所述客戶端節(jié)點處的所述網(wǎng)格化軟件組件以第一執(zhí)行模式及第二執(zhí)行模式進行配置;在所述第一執(zhí)行模式中的所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以執(zhí)行本地數(shù)據(jù)分析以將結(jié)果提供到客戶端軟件;在所述第二執(zhí)行模式中的所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以調(diào)用所述控制節(jié)點處的所述網(wǎng)格化軟件組件以在基于網(wǎng)格的計算環(huán)境中執(zhí)行所述數(shù)據(jù)分析;且所述客戶端節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以基于由所述客戶端軟件提供的指示而在所述第一模式或所述第二模式中操作。在之前所述的實施例中,尤其優(yōu)選地,所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以從客戶端應(yīng)用程序接收特定問題且通過將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果提供到所述客戶端應(yīng)用程序來提供對所述特定問題的響應(yīng)。此外,本發(fā)明提出所述系統(tǒng)包括客戶端節(jié)點網(wǎng)格化軟件組件,所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以從客戶端應(yīng)用程序接收特定問題且通過將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果提供到所述客戶端應(yīng)用程序來提供對所述特定問題的響應(yīng)。此外,提出所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以通過聚合及并置在工作者節(jié)點數(shù)據(jù)處理器處執(zhí)行的所述分析的所述結(jié)果來匯編所述結(jié)果。此外,系統(tǒng)的特征可在于多個所述網(wǎng)格計算節(jié)點處的所述網(wǎng)格化軟件組件在每一節(jié)點處在虛擬機器環(huán)境中實施。另一實施例的特征可在于多個所述網(wǎng)格計算節(jié)點處的所述數(shù)據(jù)庫管理軟件在每一節(jié)點處在虛擬機器環(huán)境中實施。此外,優(yōu)選地,所述多個所述網(wǎng)格計算節(jié)點處的所述網(wǎng)格化軟件組件在每一節(jié)點處在單獨虛擬機器環(huán)境中實施。
最終,針對所述系統(tǒng)提出所述多個所述網(wǎng)格計算節(jié)點處的所述網(wǎng)格化軟件組件在每一節(jié)點處在與所述數(shù)據(jù)庫管理軟件共用的虛擬機器環(huán)境中實施。此外,本發(fā)明提供一種在網(wǎng)格計算系統(tǒng)中用于對存儲于分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)執(zhí)行分析計算的方法,所述方法包括:提供包含一控制節(jié)點及多個工作者節(jié)點的多個網(wǎng)格計算節(jié)點,每一節(jié)點包括:處理器,其用于執(zhí)行數(shù)據(jù)庫管理軟件(DBMS)且用于執(zhí)行網(wǎng)格化軟件組件;本地緩沖存儲器,其可由所述網(wǎng)格化軟件組件存??;及本地存儲媒體,其可由所述DBMS存取以存儲數(shù)據(jù);調(diào)用所述控制節(jié)點處的所述DBMS以致使多個所述工作者節(jié)點處的所述DBMS使所述數(shù)據(jù)的一部分可用于在其節(jié)點本地的所述網(wǎng)格化軟件組件;指示所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件對所接收的數(shù)據(jù)執(zhí)行分析計算且將所述數(shù)據(jù)分析的結(jié)果發(fā)送到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;及匯編由所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件執(zhí)行的所述數(shù)據(jù)分析的所述結(jié)果。尤其優(yōu)選地,多個工作者節(jié)點處的所述DBMS經(jīng)配置以通過將所述數(shù)據(jù)保存到可由所述DBMS及所述多個工作者節(jié)點的本地網(wǎng)格化軟件組件兩者在本地存取的共享存儲器來使所述數(shù)據(jù)可用于所述網(wǎng)格化軟件組件。發(fā)明性方法的特征可在于多個工作者節(jié)點處的所述DBMS經(jīng)配置以通過經(jīng)由套接字連接通信來使所述數(shù)據(jù)可用于其本地網(wǎng)格化軟件組件。針對此實施例,尤其優(yōu)選地,所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以使用共用端口地址打開套接字連接。之前所描述的實施例的特征可進一步在于所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以將所述共用端口地址提供到在其節(jié)點本地的所述DBMS,且所述控制節(jié)點處的所述DBMS經(jīng)配置以將所述共用端口地址提供到所述多個工作者節(jié)點處的所述DBMS。還優(yōu)選地,所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以存儲所接收的數(shù)據(jù)且使用其本地緩沖存儲器執(zhí)行所述數(shù)據(jù)分析。此外,本發(fā)明提出所述多個工作者節(jié)點經(jīng)配置以將來自所述數(shù)據(jù)分析的所述結(jié)果傳輸?shù)狡浔镜谼BMS以供存儲于分布式數(shù)據(jù)庫中。發(fā)明性方法的特征可在于經(jīng)由網(wǎng)絡(luò)接收從所述多個工作者節(jié)點網(wǎng)格化軟件組件接收的所述分析的所述結(jié)果。在之前所述的實施例中,尤其優(yōu)選地,多個所述工作者節(jié)點網(wǎng)格化軟件組件經(jīng)由所述網(wǎng)絡(luò)使用MPI來傳輸其結(jié)果。此外,本發(fā)明提出所述方法包括將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果存儲于所述分布式數(shù)據(jù)庫系統(tǒng)中。本發(fā)明進一步提出,所述方法包括將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果傳輸?shù)娇蛻舳斯?jié)點處的網(wǎng)格化軟件組件。發(fā)明性方法的特征可進一步在于在檢測到所述工作者節(jié)點中的一者處的失效之后,即刻:所述控制節(jié)點處的所述DBMS經(jīng)配置以致使其余工作者節(jié)點中的一者處的所述DBMS將所述數(shù)據(jù)的先前分布到所述失效節(jié)點處的所述網(wǎng)格化軟件組件的所述部分重新分布到在所述節(jié)點本地的所述網(wǎng)格化軟件組件;接收所述經(jīng)重新分布數(shù)據(jù)的所述網(wǎng)格化軟件組件經(jīng)配置以對所述經(jīng)重新分布數(shù)據(jù)執(zhí)行分析計算且將結(jié)果提供到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;且所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以匯編從所述其余工作者節(jié)點處的所述網(wǎng)格化軟件組件接收到的所述結(jié)果。此外,提出所述方法進一步包括提供客戶端節(jié)點處的網(wǎng)格化軟件組件的步驟,其中:所述客戶端節(jié)點處的所述網(wǎng)格化軟件組件以第一執(zhí)行模式及第二執(zhí)行模式進行
配置;在所述第一執(zhí)行模式中的所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以執(zhí)行本地數(shù)據(jù)分析以將結(jié)果提供到客戶端軟件;在所述第二執(zhí)行模式中的所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以調(diào)用所述控制節(jié)點處的所述網(wǎng)格化軟件組件以在基于網(wǎng)格的計算環(huán)境中執(zhí)行所述數(shù)據(jù)分析;且所述客戶端節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以基于由所述客戶端軟件提供的指示而在所述第一模式或所述第二模式中操作。發(fā)明性方法的特征可進一步在于優(yōu)選地所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以從客戶端應(yīng)用程序接收特定問題且通過將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果提供到所述客戶端應(yīng)用程序來提供對所述特定問題的響應(yīng)。此外,本發(fā)明提出所述方法包括提供客戶端節(jié)點網(wǎng)格化軟件組件,所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以從客戶端應(yīng)用程序接收特定問題且通過將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的結(jié)果提供到所述客戶端應(yīng)用程序來提供對所述特定問題的響應(yīng)。最終,提出所述匯編步驟包括聚合及并置在所述工作者節(jié)點數(shù)據(jù)處理器處執(zhí)行的所述分析的所述結(jié)果。
圖1是描繪其中用戶可與計算環(huán)境交互的環(huán)境的框圖。圖2是描繪含有基于網(wǎng)格的計算系統(tǒng)及數(shù)據(jù)庫管理系統(tǒng)的計算環(huán)境的框圖。圖3是描繪基于網(wǎng)格的計算系統(tǒng)的硬件及軟件組件的框圖。圖4是描繪分布式數(shù)據(jù)庫管理系統(tǒng)的硬件及軟件組件的框圖。圖5及6是描繪與分布式數(shù)據(jù)庫系統(tǒng)共置的基于網(wǎng)格的計算系統(tǒng)的硬件及軟件組件的框圖。圖7到11是描繪基于網(wǎng)格的計算系統(tǒng)的用于在基于網(wǎng)格的環(huán)境或單獨環(huán)境中分析數(shù)據(jù)的過程流程的過程流程圖。圖12到16是描繪軟件組件的用于在基于網(wǎng)格的計算環(huán)境中執(zhí)行數(shù)據(jù)分析的過程流程的過程流程圖。
具體實施例方式圖1以30描繪針對許多不同類型的應(yīng)用(例如針對需要很多計算機處理循環(huán)的科學(xué)、技術(shù)或商業(yè)應(yīng)用)的用于處理大量數(shù)據(jù)的計算環(huán)境。用戶計算機32可通過若干種方式(例如經(jīng)由網(wǎng)絡(luò)34)與計算環(huán)境30交互。使用一個或一個以上數(shù)據(jù)存儲裝置36將待由計算環(huán)境30處理的數(shù)據(jù)以及由計算系統(tǒng)產(chǎn)生的任何中間或最終數(shù)據(jù)存儲于非易失性存儲器中。然而,在某些實施例中,計算環(huán)境30的配置允許其操作經(jīng)執(zhí)行使得中間及最終數(shù)據(jù)結(jié)果可單獨地存儲于易失性存儲器(例如,RAM)中,而不需要將中間或最終數(shù)據(jù)結(jié)果存儲到非易失性類型的存儲器(例如,磁盤)。在某些情形中此可為有用的,例如當計算環(huán)境30從用戶接收到特定查詢時及當需要即時產(chǎn)生通過處理大量數(shù)據(jù)而產(chǎn)生的響應(yīng)。在此非限制性情形中,計算環(huán)境30經(jīng)配置以將經(jīng)處理信息保持在存儲器內(nèi),使得可針對用戶以不同細節(jié)水平產(chǎn)生響應(yīng),且允許用戶對照此信息交互地進行查詢。圖2圖解說明實例性計算環(huán)境30。實例性計算環(huán)境30包含用于處理大量數(shù)據(jù)的基于網(wǎng)格的計算系統(tǒng)38及用于管理、存儲及檢索分布到且存儲于多個數(shù)據(jù)存儲裝置36中的大量數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng)40,多個數(shù)據(jù)存儲裝置36駐存于分布式數(shù)據(jù)庫系統(tǒng)內(nèi)的不同位置處。如圖2中的虛線打算指示,基于網(wǎng)格的計算系統(tǒng)38與數(shù)據(jù)庫管理系統(tǒng)40中的計算節(jié)點共享相同處理器硬件。圖3圖解說明基于網(wǎng)格的計算系統(tǒng)38的硬件及軟件組件?;诰W(wǎng)格的計算系統(tǒng)38包含若干個數(shù)據(jù)處理節(jié)點42、44,數(shù)據(jù)處理節(jié)點42、44包括多核心數(shù)據(jù)處理器。所述節(jié)點中的一者被指定為控制數(shù)據(jù)處理節(jié)點42,且多個節(jié)點被指定為工作者數(shù)據(jù)處理節(jié)點44。每一數(shù)據(jù)處理節(jié)點42、44包含網(wǎng)格化軟件組件(GESC) 46,GESC46在與所述節(jié)點相關(guān)聯(lián)的數(shù)據(jù)處理器上執(zhí)行且和也與所述節(jié)點相關(guān)聯(lián)的緩沖存儲器48介接。各個節(jié)點42、44處的GESC46經(jīng)由網(wǎng)絡(luò)50連接且可使用例如消息傳遞接口(MPI)的預(yù)定通信協(xié)議彼此通信。每一 GESC46可參加與另一節(jié)點處的GESC的點對點通信或經(jīng)由網(wǎng)絡(luò)50參加與多個GESC的集體通信。在此實例中,每一節(jié)點處的GESC46含有等同軟件指令,且每一數(shù)據(jù)處理節(jié)點能夠作為控制節(jié)點42或工作者節(jié)點44操作??刂乒?jié)點42處的GESC可經(jīng)由通信路徑54與客戶端應(yīng)用程序52通信以從用戶接收特定查詢且在處理大量數(shù)據(jù)之后對那些特定查詢做出響應(yīng)。圖4圖解說明分布式數(shù)據(jù)庫管理系統(tǒng)40的硬件及軟件組件。分布式數(shù)據(jù)庫管理系統(tǒng)40包含數(shù)據(jù)庫管理軟件(DBMS)60,DBMS60在控制數(shù)據(jù)庫節(jié)點56處的數(shù)據(jù)庫服務(wù)器上且在多個工作者數(shù)據(jù)庫節(jié)點58中的每一者處的數(shù)據(jù)庫服務(wù)器上執(zhí)行。每一數(shù)據(jù)庫節(jié)點56、58包含一數(shù)據(jù)庫服務(wù)器及附接到所述數(shù)據(jù)庫服務(wù)器的一個或一個以上數(shù)據(jù)存儲裝置36。所述數(shù)據(jù)庫服務(wù)器執(zhí)行數(shù)據(jù)庫管理軟件(DBMS) 60,DBMS60控制組織存儲于數(shù)據(jù)存儲裝置36中的數(shù)據(jù)的數(shù)據(jù)庫(即,數(shù)據(jù)結(jié)構(gòu))的創(chuàng)建、維持及使用。分布式數(shù)據(jù)庫管理系統(tǒng)40的控制節(jié)點56處的DBMS與客戶端應(yīng)用程序62通信以接受對數(shù)據(jù)的請求且指示數(shù)據(jù)庫管理系統(tǒng)傳送適當數(shù)據(jù)。每一數(shù)據(jù)庫節(jié)點處的DBMS60可經(jīng)由網(wǎng)絡(luò)64彼此通信。在分布式數(shù)據(jù)庫管理系統(tǒng)的情況下,跨越多個物理位置分布數(shù)據(jù)的集合。在此實例中,所述分布式系統(tǒng)中的每一數(shù)據(jù)庫節(jié)點56、58在其相關(guān)聯(lián)的數(shù)據(jù)存儲裝置36中存儲總數(shù)據(jù)的由DBMS管理的一部分。通常由DBMS用來防御數(shù)據(jù)丟失的一種過程是復(fù)制。復(fù)制通常涉及將存儲于一個節(jié)點上的數(shù)據(jù)的備份副本提供于一個或一個以上其它節(jié)點上。當采用復(fù)制時,如果一個節(jié)點失效,那么可從駐存于另一節(jié)點處的經(jīng)復(fù)制副本恢復(fù)來自失效節(jié)點的數(shù)據(jù)。如圖4中所圖解說明,分布式數(shù)據(jù)庫系統(tǒng)中的每一數(shù)據(jù)庫節(jié)點56、58具有不同數(shù)據(jù)存儲裝置36,例如磁盤或其它存儲器裝置以及不同主存儲器。在其中在所有位置中數(shù)據(jù)保持最新的分布式數(shù)據(jù)庫系統(tǒng)中,可發(fā)生分布式查詢處理。此意味著,每一節(jié)點處的DBMS均可處理對數(shù)據(jù)的查詢。圖5描繪與分布式數(shù)據(jù)庫管理系統(tǒng)共置的基于網(wǎng)格的計算系統(tǒng)。在此實施例中,若干個數(shù)據(jù)處理器節(jié)點100、102中的每一者包含可由分布式數(shù)據(jù)庫管理系統(tǒng)與基于網(wǎng)格的計算系統(tǒng)共享的數(shù)據(jù)處理器。每一數(shù)據(jù)處理節(jié)點包含可以存取緩沖存儲器122的網(wǎng)格化軟件組件(GESC) 120及連接到數(shù)據(jù)存儲裝置136的數(shù)據(jù)庫管理軟件(DBMS) 130。每一節(jié)點可執(zhí)行GESC120及DBMS130兩者。在各個節(jié)點處執(zhí)行GESC120允許基于網(wǎng)格的計算環(huán)境執(zhí)行復(fù)雜數(shù)據(jù)分析的操作。類似地,在所述節(jié)點處執(zhí)行DBMS130允許分布式數(shù)據(jù)庫管理系統(tǒng)存儲待在數(shù)據(jù)分析中使用的數(shù)據(jù)的操作。類似于圖4中所圖解說明的分布式數(shù)據(jù)庫管理系統(tǒng),每一節(jié)點100、102處的DBMS 130可經(jīng)由網(wǎng)絡(luò)138與其它節(jié)點處的DBMS通信,且類似于圖3中所圖解說明的基于網(wǎng)格的計算系統(tǒng),各個節(jié)點100、102處的GESC120經(jīng)由網(wǎng)絡(luò)124連接且可使用例如消息傳遞接口(MPI)的預(yù)定通信協(xié)議彼此通信。每一 GESC120可參加與另一節(jié)點處的GESC的點對點通信或經(jīng)由網(wǎng)絡(luò)124參加與多個GESC的集體通信。在所圖解說明的實施例中,控制節(jié)點100具有與工作者節(jié)點102相同的硬件配置。在此實例中,每一節(jié)點處的GESC120含有等同軟件指令。然而,所述GESC具有多個執(zhí)行模式。由于所述多個執(zhí)行模式,每一數(shù)據(jù)處理節(jié)點100、102能夠作為控制節(jié)點100或工作者節(jié)點102操作。在每一節(jié)點處與DBMS130 —起提供的是用戶定義函數(shù)(UDF) 138。所述UDF提供用于使應(yīng)用程序?qū)?shù)據(jù)傳送到存儲于由DBMS130管理的數(shù)據(jù)存儲裝置136中的數(shù)據(jù)庫或從所述數(shù)據(jù)庫接收數(shù)據(jù)的機制。舉例來說,在數(shù)據(jù)處理節(jié)點100、102處,可由DBMS調(diào)用UDF138以將數(shù)據(jù)提供到GESC。在所圖解說明的實施例中,M)F138與GESC建立用以傳送數(shù)據(jù)的套接字連接。或者,如圖5中的具有虛線標記的箭頭所圖解說明,UDF138可通過將數(shù)據(jù)寫入到可由UDF及GESC兩者存取的共享存儲器而將數(shù)據(jù)傳送到GESC。圖6圖解說明其中客戶端應(yīng)用程序節(jié)點150通信地耦合到與分布式數(shù)據(jù)庫管理系統(tǒng)共置的基于網(wǎng)格的計算系統(tǒng)的控制節(jié)點100的實施例??蛻舳藨?yīng)用程序節(jié)點150包含在共享數(shù)據(jù)處理器與存儲器156上執(zhí)行的客戶端GESC152及客戶端應(yīng)用程序154。所圖解說明的客戶端應(yīng)用程序154可請求由基于網(wǎng)格的計算系統(tǒng)執(zhí)行數(shù)據(jù)分析。所圖解說明的客戶端GESC152與客戶端應(yīng)用程序154介接以從所述客戶端應(yīng)用程序接收對數(shù)據(jù)分析的請求且將所述數(shù)據(jù)分析的結(jié)果提供到客戶端應(yīng)用程序。在此實例中,客戶端GESC152含有等同于控制節(jié)點及工作者節(jié)點處的GESC120的軟件指令的軟件指令。在此實施例中,這些節(jié)點中的每一者處的GESC具有額外操作模式,即客戶端模式。在客戶端模式中,GESC152可(舉例來說)經(jīng)由例如TCP連接的套接字連接與控制節(jié)點處的GESC120通信以指示基于網(wǎng)格的計算環(huán)境執(zhí)行數(shù)據(jù)分析且接收數(shù)據(jù)分析的結(jié)果以供提供到發(fā)請求的客戶端應(yīng)用程序。在另一實施例中,客戶端GESC152可在第一執(zhí)行模式或單獨模式中操作,其中客戶端GESC152可在不使用基于網(wǎng)格的計算環(huán)境的情況下執(zhí)行所請求的數(shù)據(jù)分析。在此實施例中,客戶端應(yīng)用程序154向客戶端GESC152指示是應(yīng)使用基于網(wǎng)格的計算環(huán)境在第二執(zhí)行模式中還是應(yīng)在客戶端應(yīng)用程序節(jié)點處在單獨或第一執(zhí)行模式中執(zhí)行所請求的數(shù)據(jù)分析。通過使用這兩種執(zhí)行模式,系統(tǒng)針對不同任務(wù)變?yōu)榧嫒莸?。當問題的大小較小時,系統(tǒng)可經(jīng)調(diào)適以在單個節(jié)點上運行以實現(xiàn)資源及速度優(yōu)化。組織功能以實現(xiàn)多個作用的另一積極效應(yīng)是可在對所述功能進行很少修改的情況下潛在地將基于網(wǎng)格的軟件產(chǎn)品部署為不基于網(wǎng)格的廣品。如圖6中所圖解說明,可將基于網(wǎng)格的計算系統(tǒng)的駐存于每一處理節(jié)點100、102處的組件(展示為基于網(wǎng)格的計算系統(tǒng)組件125)實施為在位于所述節(jié)點處的數(shù)據(jù)處理器上操作的虛擬機器。此外或替代地,可將分布式數(shù)據(jù)庫管理系統(tǒng)的駐存于每一處理節(jié)點100、102處的組件(展示為分布式數(shù)據(jù)庫組件135)實施為在位于所述節(jié)點處的數(shù)據(jù)處理器上操作的虛擬機器。使組件125、135中的一者或兩者作為虛擬機器操作允許共享由位于所述節(jié)點處的數(shù)據(jù)處理器提供的基礎(chǔ)物理機器資源,同時維持基于網(wǎng)格的計算系統(tǒng)組件125與分布式數(shù)據(jù)庫組件135之間的強隔離。實現(xiàn)虛擬機器環(huán)境的積極效應(yīng)及技術(shù)優(yōu)點是用戶將不需要在數(shù)據(jù)庫正在其上運行的同一虛擬機器上的帳戶。此實現(xiàn)其中多個實體可隔離地使用相同資源的安全多租戶環(huán)境,且此外加速計算過程且還減少待傳輸?shù)臄?shù)據(jù)量?;蛘?,可使基于網(wǎng)格的計算系統(tǒng)組件125及分布式數(shù)據(jù)庫組件135作為共用虛擬機器操作,從而為那些組件125、135提供與可共享基礎(chǔ)物理機器資源的其它過程的隔離。因此,與分布式數(shù)據(jù)庫管理系統(tǒng)共置的基于網(wǎng)格的計算系統(tǒng)可在以下配置中的任一者下操作:(i)其中不相對于基于網(wǎng)格的計算系統(tǒng)組件125或分布式數(shù)據(jù)庫組件135采用虛擬機器的配置;(ii)其中針對基于網(wǎng)格的計算系統(tǒng)組件125而不針對分布式數(shù)據(jù)庫組件135采用虛擬機器的配置;(iii)其中針對分布式數(shù)據(jù)庫組件135而不針對基于網(wǎng)格的計算系統(tǒng)組件125采用虛擬機器的配置;(iv)其中針對基于網(wǎng)格的計算系統(tǒng)組件125及分布式數(shù)據(jù)庫組件135中的每一者采用單獨虛擬機器的配置 '及(V)其中針對基于網(wǎng)格的計算系統(tǒng)組件125及分布式數(shù)據(jù)庫組件135兩者采用共用虛擬機器的配置。圖7圖解說明用于執(zhí)行數(shù)據(jù)分析的實例性過程。客戶端節(jié)點處的GESC與客戶端節(jié)點處的客戶端應(yīng)用程序通信以從用戶接收特定查詢且在已處理大量數(shù)據(jù)之后對那些特定查詢做出響應(yīng)。如步驟200處所圖解說明,客戶端應(yīng)用程序向客戶端GESC呈現(xiàn)要求執(zhí)行數(shù)據(jù)分析的特定查詢。所述特定查詢可含有關(guān)于待執(zhí)行的數(shù)據(jù)分析的類型及是否應(yīng)使用基于網(wǎng)格的計算環(huán)境在第二執(zhí)行模式中執(zhí)行所述分析的指令。在步驟210處,客戶端GESC起始所請求的數(shù)據(jù)分析且獲得數(shù)據(jù)分析的結(jié)果。在步驟220處,客戶端GESC將分析的結(jié)果提供到客戶端應(yīng)用程序。在所圖解說明的實施例中,起始所請求的數(shù)據(jù)分析及獲得結(jié)果(步驟210)需要執(zhí)行若干個步驟。如所展示,在步驟212處,客戶端GESC確定所述特定查詢是否需要使用基于網(wǎng)格的計算環(huán)境來執(zhí)行數(shù)據(jù)分析。如果所述確定的回答是否,那么客戶端GESC在步驟214處在客戶端節(jié)點處執(zhí)行數(shù)據(jù)分析。如果在步驟212處所做出的確定的回答為是,那么客戶端GESC在步驟216處致使在基于網(wǎng)格的計算環(huán)境中實例化GESC且致使基于網(wǎng)格的計算系統(tǒng)執(zhí)行數(shù)據(jù)分析。此確定還可涉及確定基于網(wǎng)格的計算環(huán)境的配置。舉例來說,此確定可包含工作者節(jié)點的數(shù)目及在執(zhí)行數(shù)據(jù)分析時將采用的每工作者節(jié)點線程的數(shù)目。在步驟218處,基于網(wǎng)格的計算環(huán)境中的GESC將分析的結(jié)果提供到客戶端GESC。所述結(jié)果從基于網(wǎng)格的計算環(huán)境到客戶端節(jié)點的提供可由于基于網(wǎng)格的計算環(huán)境中的操作系統(tǒng)與在客戶端節(jié)點上執(zhí)行的操作系統(tǒng)之間的差異而需要數(shù)據(jù)的翻譯。舉例來說,執(zhí)行控制節(jié)點GESC的數(shù)據(jù)處理器可具有64位Linux操作系統(tǒng),且執(zhí)行客戶端GESC的數(shù)據(jù)處理器可具有32位操作系統(tǒng),例如32位Windows PC操作系統(tǒng)。寬字符字符的表示在兩種操作系統(tǒng)中不同,且必須將呈Linux格式的字符翻譯成在Windows客戶端上的恰當表
/Jn ο在圖8處所圖解說明的實施例中,提供實例性元件以圖解說明從客戶端應(yīng)用程序到客戶端GESC的特定查詢的組件。在302處描繪客戶端應(yīng)用程序提供關(guān)于待執(zhí)行的數(shù)據(jù)分析的類型的指令。在304處描繪客戶端應(yīng)用程序識別待在數(shù)據(jù)分析中使用的數(shù)據(jù)的源位置。在此實例中,待在數(shù)據(jù)分析中使用的數(shù)據(jù)存儲于與基于網(wǎng)格的計算環(huán)境共置的分布式數(shù)據(jù)庫系統(tǒng)中。最終,在306處,客戶端應(yīng)用程序指令是將利用單獨計算環(huán)境還是利用基于網(wǎng)格的計算環(huán)境來執(zhí)行所請求的數(shù)據(jù)分析。在圖9處所圖解說明的實施例中,提供用于在基于網(wǎng)格的計算環(huán)境中實例化GESC以執(zhí)行所請求的數(shù)據(jù)分析的實例性步驟。在步驟310處,客戶端節(jié)點GESC致使在控制節(jié)點及多個工作者節(jié)點處實例化GESC。在步驟312處,控制節(jié)點GESC致使將待在分析中使用的數(shù)據(jù)傳遞到工作者節(jié)點處的GESC。在步驟314處,控制節(jié)點處的GESC在基于網(wǎng)格的計算環(huán)境中起始數(shù)據(jù)分析。最終,在步驟316處,控制節(jié)點處的GESC匯編來自由各個工作者節(jié)點處的GESC執(zhí)行的分析的結(jié)果。在圖10處所描繪的實施例中,提供實例性步驟以圖解說明供控制節(jié)點GESC用來將數(shù)據(jù)分析的結(jié)果提供到客戶端節(jié)點GESC的方法。在步驟320處,控制節(jié)點GESC打開TCP套接字連接。在步驟322處,控制節(jié)點GESC串行化數(shù)據(jù)分析的結(jié)果。在步驟324處,控制節(jié)點經(jīng)由TCP套接字將數(shù)據(jù)分析的經(jīng)串行化結(jié)果提供到客戶端節(jié)點GESC。在圖11處所描繪的實施例中,提供供客戶端節(jié)點GESC用來將數(shù)據(jù)分析的結(jié)果提供到發(fā)請求的客戶端應(yīng)用程序的實例性步驟。通過使用控制節(jié)點來匯編結(jié)果,改進了分析結(jié)果到用戶/客戶端的呈現(xiàn)。所述控制節(jié)點即為客戶端連接到的節(jié)點,且分布式計算環(huán)境中的分析的流程由所述節(jié)點控制。假如結(jié)果是從其它節(jié)點流回到客戶端,那么所述環(huán)境將需要提供客戶端與可潛在地往回通信的所有節(jié)點之間的連接。因此,通過使用所述節(jié)點來匯編進一步減少了待傳輸?shù)臄?shù)據(jù)量。此外,如果網(wǎng)格是在防火墻后面,那么管理網(wǎng)格與客戶端之間的通信導(dǎo)致操作效率及安全性的增加。在步驟330處,客戶端節(jié)點GESC將從控制節(jié)點GESC接收的經(jīng)串行化數(shù)據(jù)分析結(jié)果翻譯成可由客戶端應(yīng)用程序的操作系統(tǒng)辨識的格式。在步驟332處,客戶端節(jié)點GESC將經(jīng)翻譯數(shù)據(jù)分析結(jié)果存儲于在客戶端節(jié)點GESC與客戶端應(yīng)用程序之間共享的本地存儲器中。最終,在步驟334處,客戶端節(jié)點GESC給客戶端應(yīng)用程序提供經(jīng)翻譯數(shù)據(jù)分析結(jié)果在共享存儲器中的地址。在圖12處所描繪的實施例中,提供實例性步驟以圖解說明用于在基于網(wǎng)格的計算環(huán)境中實例化GESC的方法。在步驟400處,實例化控制節(jié)點處的GESC。在步驟402處,基于可用的潛在工作者節(jié)點的數(shù)目及期望執(zhí)行數(shù)據(jù)分析的工作者節(jié)點的數(shù)目,控制節(jié)點GESC致使實例化工作者節(jié)點處的GESC。在步驟404處,工作者節(jié)點及控制節(jié)點處的GESC試圖打開用于套接字通信的共用端口。通過使用套接字連接,尤其是使用共用端口地址,與其它通信技術(shù)相比,實現(xiàn)相應(yīng)優(yōu)點。此允許指示所有節(jié)點上的UDF將其數(shù)據(jù)發(fā)送到同一機器上的另一過程。尤其是通過使用共用端口編號,有可能在其中多個用戶正在運行或其中單個用戶的應(yīng)用程序希望對多個數(shù)據(jù)源執(zhí)行同時讀取或?qū)懭氩僮鞯牟l(fā)系統(tǒng)中對用于特定分析的傳輸進行分組-共用端口編號則與特定數(shù)據(jù)源相關(guān)聯(lián)。最終,在步驟406處,將來自工作者節(jié)點的共用端口地址傳達給控制節(jié)點GESC,所述控制節(jié)點GESC也在相同地址處打開用于套接字通信的端口。在圖13中描繪圖解說明供控制節(jié)點GESC使用以致使將待在分析中使用的數(shù)據(jù)提供到工作者節(jié)點GESC的方法的實例性步驟。在步驟410處,控制節(jié)點GESC向控制節(jié)點處的DBMS發(fā)出SQL查詢且提供工作者節(jié)點套接字端口的共用端口編號。在步驟412處,控制節(jié)點DBMS調(diào)用所有節(jié)點上的用戶定義函數(shù)(UDF)且將端口編號傳遞到所有節(jié)點上的UDF。在步驟414處,每一工作者節(jié)點UDF檢索待在數(shù)據(jù)分析中使用的數(shù)據(jù)且經(jīng)由所提供端口地址處的套接字連接將所述數(shù)據(jù)傳遞到其本地節(jié)點處的GESC。在此實例中,每一工作者節(jié)點GESC接收待在數(shù)據(jù)分析中使用的總體數(shù)據(jù)集的一部分。或者,工作者節(jié)點GESC中的每一者或一些可接收待在分析中使用的完整數(shù)據(jù)集。在步驟416處,工作者節(jié)點GESC將所接收的數(shù)據(jù)存儲于其本地緩沖存儲器中。存儲于本地緩沖存儲器中相比于存儲于其它位置中的技術(shù)優(yōu)點尤其是減少了所需的數(shù)據(jù)傳輸帶寬且可增加處理速度。許多先進分析算法需要多遍次通過數(shù)據(jù)。將數(shù)據(jù)存儲于本地緩沖存儲器中允許在數(shù)據(jù)的初始檢索之后快速處理后續(xù)遍次。其還允許存儲原始數(shù)據(jù)的經(jīng)處理形式,舉例來說,通過移除由于空字段或其它缺陷而將不在分析中使用的觀測。尤其是參與單個分析的不同分析組件可共享指向所述數(shù)據(jù)的指針而非多次從磁盤檢索所述數(shù)據(jù)。作為步驟414及416的替代方案,每一 UDF可檢索待在數(shù)據(jù)分析中使用的數(shù)據(jù)且通過將數(shù)據(jù)存儲于可由UDF及GESC兩者存取的共用存儲器中而將所述數(shù)據(jù)傳遞到其本地節(jié)點處的GESC。所述GESC可接著從共享存儲器處理數(shù)據(jù)或?qū)?shù)據(jù)移動到專用存儲器以供處理。在圖14處圖解說明可在于基于網(wǎng)格的計算環(huán)境中起始數(shù)據(jù)分析時實施的實例性步驟。在步驟420處,控制節(jié)點GESC使用消息傳遞接口(MPI)經(jīng)由通信網(wǎng)絡(luò)與工作者節(jié)點GESC通信。在步驟422處,控制節(jié)點GESC將分析的一部分指派給工作者節(jié)點GESC。在此實例中,所有工作者節(jié)點GESC執(zhí)行相同分析計算,但是對待在分析中使用的總體數(shù)據(jù)集的不同部分進行的?;蛘?,控制節(jié)點GESC可指示多個工作者節(jié)點GESC執(zhí)行不同分析步驟。在圖15處圖解說明用于在控制節(jié)點處匯編數(shù)據(jù)分析結(jié)果的實例性步驟。在步驟430處,工作者節(jié)點GESC將來自其分析計算的結(jié)果發(fā)送到控制節(jié)點GESC??蓪⒂晒ぷ髡吖?jié)點GESC產(chǎn)生的結(jié)果傳輸?shù)娇刂乒?jié)點GESC的一種方式是經(jīng)由MPI??蓚鬏斀Y(jié)果的另一方式是通過工作者節(jié)點GESC將其數(shù)據(jù)分析結(jié)果存儲于分布式數(shù)據(jù)庫中且經(jīng)由MPI將所述結(jié)果在分布式數(shù)據(jù)庫中的位置提供到控制節(jié)點GESC。通過將所述結(jié)果存儲于分布式數(shù)據(jù)庫中,還增加了處理速度。取決于結(jié)果集的大小,用戶可希望將其返回到客戶端機器或?qū)⑵浯鎯τ跀?shù)據(jù)庫中。如果結(jié)果集較小(舉例來說,當其由概括分析結(jié)果的一系列小表組成時),經(jīng)由網(wǎng)絡(luò)發(fā)送結(jié)果是用以將結(jié)果呈現(xiàn)給客戶端側(cè)再現(xiàn)引擎的權(quán)宜之策。如果結(jié)果較大或如果結(jié)果集形似分布式輸入數(shù)據(jù),那么可避免通過單個節(jié)點(控制節(jié)點)經(jīng)由網(wǎng)絡(luò)的傳輸。當分析過程對輸入數(shù)據(jù)進行記分(舉例來說)以計算每一經(jīng)處理觀測的統(tǒng)計度量時,會發(fā)生其中結(jié)果集形似輸入數(shù)據(jù)的情形。將結(jié)果集放置到數(shù)據(jù)庫中并維持與輸入數(shù)據(jù)相同的分布特性提供輸入與輸出數(shù)據(jù)的方便SQL聯(lián)合,從而總體增加處理速度。在步驟432處,控制節(jié)點GESC聚合并匯編來自由工作者節(jié)點GESC執(zhí)行的分析計算的結(jié)果??蓪⑺鼋Y(jié)果存儲于本地存儲器中或分布式數(shù)據(jù)庫中。控制節(jié)點GESC還可在結(jié)果的最終匯編之前在432處對經(jīng)聚合數(shù)據(jù)執(zhí)行額外數(shù)學(xué)運算(例如,描述性統(tǒng)計計算)。在于計算正在進行時節(jié)點失效的情況中,控制節(jié)點GESC可在不必重新分布待在數(shù)據(jù)分析中使用的數(shù)據(jù)之前在基于網(wǎng)格的計算環(huán)境中重新起始數(shù)據(jù)分析。由于各個工作者節(jié)點GESC與DBMS共置于節(jié)點處,因此分布式數(shù)據(jù)庫管理系統(tǒng)保護機制可在節(jié)點失效期間防御數(shù)據(jù)丟失。本地DBMS可以存取待在數(shù)據(jù)分析中使用的數(shù)據(jù)的復(fù)制副本且將數(shù)據(jù)提供到各個工作者節(jié)點GESC。當由于節(jié)點失效而必需重新計算時,控制節(jié)點GESC可將分析的先前指派給失效節(jié)點的部分重新指派給其余工作者節(jié)點中的一者或一個者以上(或新工作者節(jié)點)處的GESC。此可涉及指示一個或一個以上工作者節(jié)點GESC對額外數(shù)據(jù)執(zhí)行其分析計算。在圖16處描繪用于從節(jié)點失效恢復(fù)的實例性步驟??蛻舳斯?jié)點GESC檢測基于網(wǎng)格的計算環(huán)境中的失效(步驟500)。在步驟502處,客戶端節(jié)點GESC指示控制節(jié)點GESC重新起始數(shù)據(jù)分析。在步驟504處,控制節(jié)點GESC向控制節(jié)點DBMS發(fā)出新的SQL查詢。如果存在失效節(jié)點,那么DBMS致使駐存于失效節(jié)點上的數(shù)據(jù)由駐存于一個或一個以上未失效節(jié)點上的其復(fù)制副本替換。工作者UDF將先前提供到失效節(jié)點處的GESC的數(shù)據(jù)提供到不同節(jié)點處的GESC(步驟506)。此可導(dǎo)致節(jié)點中的一者處的GESC被提供最初提供到其的數(shù)據(jù)加上最初提供到失效節(jié)點處的GESC的數(shù)據(jù)?;蛘撸淇蓪?dǎo)致新節(jié)點處的GESC被提供最初提供到失效節(jié)點處的GESC的數(shù)據(jù)。在步驟508處,控制節(jié)點處的GESC重新起始數(shù)據(jù)分析。此涉及在步驟510處控制節(jié)點GESC在無失效節(jié)點的情況下重新起始數(shù)據(jù)分析。在步驟514處,工作者節(jié)點GESC將來自其分析計算的結(jié)果發(fā)送到控制節(jié)點GESC。在步驟516處,控制節(jié)點GESC聚合并重新匯編來自數(shù)據(jù)分析的結(jié)果。在步驟518處,控制節(jié)點GESC將數(shù)據(jù)分析的結(jié)果傳輸?shù)娇蛻舳斯?jié)點GESC。在圖2中描繪涉及基于網(wǎng)格的計算環(huán)境的多用戶環(huán)境。在此環(huán)境中,每一用戶32將接收其自己的客戶端GESC以處置其查詢并與選定控制節(jié)點GESC通信。此書面描述使用實例來揭示本發(fā)明(包含最佳模式),且還使得所屬領(lǐng)域的技術(shù)人員能夠制作并使用本發(fā)明。本發(fā)明的可取得專利權(quán)的范圍可包含其它實例。另外,可通過包括可由裝置處理子系統(tǒng)執(zhí)行的程序指令的程序代碼在許多不同類型的處理裝置上實施本文中所描述的方法及系統(tǒng)。所述軟件程序指令可包含可操作以致使處理系統(tǒng)執(zhí)行本文中所描述的方法及操作的源代碼、目標代碼、機器代碼或任何其它所存儲數(shù)據(jù)。然而,也可使用其它實施方案,例如經(jīng)配置以執(zhí)行本文中所描述的方法及系統(tǒng)的固件或甚至經(jīng)適當設(shè)計的硬件??稍谝粋€或一個以上不同類型的計算機實施的數(shù)據(jù)存儲裝置中存儲及實施所述系統(tǒng)及方法的數(shù)據(jù)(例如,關(guān)聯(lián)、映射、數(shù)據(jù)輸入、數(shù)據(jù)輸出、中間數(shù)據(jù)結(jié)果、最終數(shù)據(jù)結(jié)果等),例如不同類型的存儲裝置及編程構(gòu)造(例如,RAM、ROM、快閃存儲器、平面文件、數(shù)據(jù)庫、編程數(shù)據(jù)結(jié)構(gòu)、編程變量、如果-則(IF-THEN)(或類似類型)語句構(gòu)造等)。應(yīng)注意,數(shù)據(jù)結(jié)構(gòu)描述在組織數(shù)據(jù)及將數(shù)據(jù)存儲于數(shù)據(jù)庫、程序、存儲器或其它計算機可讀媒體中以供計算機程序使用時使用的格式。
本文中所描述的計算機組件、軟件模塊、功能、數(shù)據(jù)存儲裝置及數(shù)據(jù)結(jié)構(gòu)可彼此直接或間接連接以便允許其操作所需的數(shù)據(jù)的流動。還注意,模塊或處理器包含但不限于執(zhí)行軟件操作的代碼單元,且可(例如)實施為子例程代碼單元或?qū)嵤檐浖瘮?shù)代碼單元或?qū)嵤閷ο?呈面向?qū)ο蟮姆独?或?qū)嵤樾?yīng)用程序或以計算機腳本語言實施或?qū)嵤榱硪活愋偷挠嬎銠C代碼。軟件組件和/或功能性可位于單個計算機上或跨越多個計算機分布,此取決于當前情形。應(yīng)理解,如本文的描述中所使用且在整個所附的權(quán)利要求書中,“一”及“所述”的含義包含多個提及物,除非上下文另有清楚指示。此外,如本文的描述中所使用且在整個所附的權(quán)利要求書中,“在…中”的含義包含“在…中”及“在…上”,除非上下文另有清楚指示。最終,如本文的描述中所使用且在整個所附的權(quán)利要求書中,“及”和“或”的含義包含連接詞及析取詞兩者且可互換使用,除非上下文另有明確指示;短語“異或”可用來指示其中僅析取含義可適用的情形。·
權(quán)利要求
1.一種用于對存儲于分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)執(zhí)行分析計算的網(wǎng)格計算系統(tǒng),所述網(wǎng)格計算系統(tǒng)包括: 多個網(wǎng)格計算節(jié)點,其包含一控制節(jié)點及多個工作者節(jié)點,每一節(jié)點包括: 處理器,其用于執(zhí)行數(shù)據(jù)庫管理軟件DBMS且用于執(zhí)行網(wǎng)格化軟件組件, 本地緩沖存儲器,其可由所述網(wǎng)格化軟件組件存取,以及 本地存儲媒體,其可由所述DBMS存取以存儲數(shù)據(jù); 其中所述網(wǎng)格化軟件組件經(jīng)配置以對由數(shù)據(jù)庫管理系統(tǒng)存儲的所述數(shù)據(jù)的一部分執(zhí)行所述分析計算; 所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以: 調(diào)用所述控制節(jié)點處的所述DBMS以致使多個所述工作者節(jié)點處的所述DBMS使所述數(shù)據(jù)的一部分可用于在其節(jié)點本地的所述網(wǎng)格化軟件組件; 指示所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件對所接收的數(shù)據(jù)執(zhí)行分析計算且將所述數(shù)據(jù)分析的結(jié)果發(fā)送到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;以及 匯編由所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件執(zhí)行的所述數(shù)據(jù)分析的所述結(jié)果。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中多個工作者節(jié)點處的所述DBMS經(jīng)配置以通過將所述數(shù)據(jù)保存到可由所述DBMS及所述多個工作者節(jié)點的本地網(wǎng)格化軟件組件兩者在本地存取的共享存儲器或通過經(jīng)由套接字連接通信來使所述數(shù)據(jù)可用于所述網(wǎng)格化軟件組件。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以使用共用端口地址打開套接字連接,其中優(yōu)選地所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以將所述共用端口地址提供到在其節(jié)點本地的所述DBMS,且所述控制節(jié)點處的所述DBMS經(jīng)配置以將所述共用端口地址提供到所述多個工作者節(jié)點處的所述DBMS。
4.根據(jù)前述權(quán)利要求中任一權(quán)利要求所述的系統(tǒng),其中所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以存儲所述所接收的數(shù)據(jù)且使用其本地緩沖存儲器執(zhí)行所述數(shù)據(jù)分析,且/或其中所述多個工作者節(jié)點經(jīng)配置以將來自所述數(shù)據(jù)分析的所述結(jié)果傳輸?shù)狡浔镜谼BMS以供存儲于分布式數(shù)據(jù)庫中。
5.根據(jù)前述權(quán)利要求中任一權(quán)利要求所述的系統(tǒng),其中從所述多個工作者節(jié)點網(wǎng)格化軟件組件接收的所述分析的所述結(jié)果是經(jīng)由網(wǎng)絡(luò)接收的,其中尤其是多個所述工作者節(jié)點網(wǎng)格化軟件組件經(jīng)由所述網(wǎng)絡(luò)使用MPI來傳輸其結(jié)果。
6.根據(jù)前述權(quán)利要求中任一權(quán)利要求所述的系統(tǒng),其中由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果存儲于所述分布式數(shù)據(jù)庫系統(tǒng)中,且/或其中由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果被傳輸?shù)娇蛻舳斯?jié)點處的網(wǎng)格化軟件組件。
7.根據(jù)前述權(quán)利要求中任一權(quán)利要求所述的系統(tǒng),其中在檢測到所述工作者節(jié)點中的一者處的失效之后,即刻: 所述控制節(jié)點處的所述DBMS經(jīng)配置以致使其余工作者節(jié)點中的一者處的所述DBMS將所述數(shù)據(jù)的先前分布到所述失效節(jié)點處的所述網(wǎng)格化軟件組件的所述部分重新分布到在所述節(jié)點本地的所述網(wǎng)格化軟件組件; 接收所述經(jīng)重新分布數(shù)據(jù)的所述網(wǎng)格化軟件組件經(jīng)配置以對所述經(jīng)重新分布數(shù)據(jù)執(zhí)行分析計算且將結(jié)果提供到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;且所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以匯編從所述其余工作者節(jié)點處的所述網(wǎng)格化軟件組件接收到的所述結(jié)果。
8.根據(jù)前述權(quán)利要求中任一權(quán)利要求所述的系統(tǒng),其進一步包括客戶端節(jié)點處的網(wǎng)格化軟件組件: 所述客戶端節(jié)點處的所述網(wǎng)格化軟件組件以第一執(zhí)行模式及第二執(zhí)行模式進行配置; 在所述第一執(zhí)行模式中的所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以執(zhí)行本地數(shù)據(jù)分析以將結(jié)果提供到客戶端軟件; 在所述第二執(zhí)行模式中的所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以調(diào)用所述控制節(jié)點處的所述網(wǎng)格化軟件組件以在基于網(wǎng)格的計算環(huán)境中執(zhí)行所述數(shù)據(jù)分析;且 所述客戶端節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以基于由所述客戶端軟件提供的指示而在所述第一模式或所述第二模式中操作,其中尤其是所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以從客戶端應(yīng)用程序接收特定問題且通過將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果提供到所述客戶端應(yīng)用程序來提供對所述特定問題的響應(yīng)。
9.根據(jù)前述權(quán)利要求中任一權(quán)利要求所述的系統(tǒng),其進一步包括客戶端節(jié)點網(wǎng)格化軟件組件,所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以從客戶端應(yīng)用程序接收特定問題且通過將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果提供到所述客戶端應(yīng)用程序來提供對所述特定問題的響應(yīng),且/或其中所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以通過聚合及并置在工作者節(jié)點數(shù)據(jù)處理器處執(zhí)行的所述分析的所述結(jié)果來匯編所述結(jié)果,其中多個所述網(wǎng)格計算節(jié)點處的所述網(wǎng)格化軟件組件在每一節(jié)點處在虛擬機器環(huán)境中實施,且/或其中多個所述網(wǎng) 格計算節(jié)點處的所述數(shù)據(jù)庫管理軟件在每一節(jié)點處在虛擬機器環(huán)境中實施,其中所述多個所述網(wǎng)格計算節(jié)點處的所述網(wǎng)格化軟件組件在每一節(jié)點處在單獨虛擬機器環(huán)境中實施,或其中優(yōu)選地所述多個所述網(wǎng)格計算節(jié)點處的所述網(wǎng)格化軟件組件在每一節(jié)點處在與所述數(shù)據(jù)庫管理軟件共用的虛擬機器環(huán)境中實施。
10.一種在網(wǎng)格計算系統(tǒng)中用于對存儲于分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)執(zhí)行分析計算的方法,所述方法包括: 提供包含一控制節(jié)點及多個工作者節(jié)點的多個網(wǎng)格計算節(jié)點,每一節(jié)點包括:處理器,其用于執(zhí)行數(shù)據(jù)庫管理軟件DBMS且用于執(zhí)行網(wǎng)格化軟件組件;本地緩沖存儲器,其可由所述網(wǎng)格化軟件組件存??;以及本地存儲媒體,其可由所述DBMS存取以存儲數(shù)據(jù); 調(diào)用所述控制節(jié)點處的所述DBMS以致使多個所述工作者節(jié)點處的所述DBMS使所述數(shù)據(jù)的一部分可用于在其節(jié)點本地的所述網(wǎng)格化軟件組件; 指示所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件對所接收的數(shù)據(jù)執(zhí)行分析計算且將所述數(shù)據(jù)分析的結(jié)果發(fā)送到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;以及 匯編由所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件執(zhí)行的所述數(shù)據(jù)分析的所述結(jié)果O
11.根據(jù)權(quán)利要求10所述的方法,其中多個工作者節(jié)點處的所述DBMS經(jīng)配置以通過將所述數(shù)據(jù)保存到可由所述DBMS及所述多個工作者節(jié)點的本地網(wǎng)格化軟件組件兩者在本地存取的共享存儲器及/或通過經(jīng)由套接字連接通信來使所述數(shù)據(jù)可用于所述網(wǎng)格化軟件組件,其中優(yōu)選地所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以使用共用端口地址打開套接字連接及/或所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以將所述共用端口地址提供到在其節(jié)點本地的所述DBMS,且所述控制節(jié)點處的所述DBMS經(jīng)配置以將所述共用端口地址提供到所述多個工作者節(jié)點處的所述DBMS。
12.根據(jù)權(quán)利要求10或15所述的方法,其中所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以存儲所述所接收的數(shù)據(jù)且使用其本地緩沖存儲器執(zhí)行所述數(shù)據(jù)分析,其中所述多個工作者節(jié)點經(jīng)配置以將來自所述數(shù)據(jù)分析的所述結(jié)果傳輸?shù)狡浔镜谼BMS以供存儲于分布式數(shù)據(jù)庫中,其中經(jīng)由網(wǎng)絡(luò)接收從所述多個工作者節(jié)點網(wǎng)格化軟件組件接收的所述分析的所述結(jié)果,其中尤其是多個所述工作者節(jié)點網(wǎng)格化軟件組件經(jīng)由所述網(wǎng)絡(luò)使用MPI來傳輸其結(jié)果,且/或其中所述方法進一步包括將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果存儲于所述分布式數(shù)據(jù)庫系統(tǒng)中及/或?qū)⒂伤隹刂乒?jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果傳輸?shù)娇蛻舳斯?jié)點處的網(wǎng)格化軟件組件。
13.根據(jù)權(quán)利要求10到12中任一權(quán)利要求所述的方法,其中在檢測到所述工作者節(jié)點中的一者處的失效之后,即刻: 所述控制節(jié)點處的所述DBMS經(jīng)配置以致使其余工作者節(jié)點中的一者處的所述DBMS將所述數(shù)據(jù)的先前分布到所述失效節(jié)點處的所述網(wǎng)格化軟件組件的所述部分重新分布到在所述節(jié)點本地的所述網(wǎng)格化軟件組件; 接收所述經(jīng)重新分布數(shù)據(jù)的所述網(wǎng)格化軟件組件經(jīng)配置以對所述經(jīng)重新分布數(shù)據(jù)執(zhí)行分析計算且將結(jié)果提供到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;且 所述控制節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以匯編從所述其余工作者節(jié)點處的所述網(wǎng)格化軟件組件接收到的所述結(jié)果。
14.根據(jù)權(quán)利要求10到13中任一權(quán)利要求所述的方法,其進一步包括提供客戶端節(jié)點處的網(wǎng)格化軟件組件的步驟,其中: 所述客戶端節(jié)點處的所述網(wǎng)格化軟件組件以第一執(zhí)行模式及第二執(zhí)行模式進行配置; 在所述第一執(zhí)行模式中的所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以執(zhí)行本地數(shù)據(jù)分析以將結(jié)果提供到客戶端軟件; 在所述第二執(zhí)行模式中的所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以調(diào)用所述控制節(jié)點處的所述網(wǎng)格化軟件組件以在基于網(wǎng)格的計算環(huán)境中執(zhí)行所述數(shù)據(jù)分析;且 所述客戶端節(jié)點處的所述網(wǎng)格化軟件組件經(jīng)配置以基于由所述客戶端軟件提供的指示而在所述第一模式或所述第二模式中操作,其中優(yōu)選地所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以從客戶端應(yīng)用程序接收特定問題且通過將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的所述結(jié)果提供到所述客戶端應(yīng)用程序來提供對所述特定問題的響應(yīng)。
15.根據(jù)權(quán)利要求10到14中任一權(quán)利要求所述的方法,其進一步包括提供客戶端節(jié)點網(wǎng)格化軟件組件,所述客戶端節(jié)點網(wǎng)格化軟件組件經(jīng)配置以從客戶端應(yīng)用程序接收特定問題且通過將由所述控制節(jié)點網(wǎng)格化軟件組件匯編的結(jié)果提供到所述客戶端應(yīng)用程序來提供對所述特定問題的響應(yīng) ,且/或其中所述匯編步驟包括聚合及并置在工作者節(jié)點數(shù)據(jù)處理器處執(zhí)行的所述分析的所述結(jié)果。
全文摘要
本發(fā)明提供用于對存儲于分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)執(zhí)行分析計算的網(wǎng)格計算系統(tǒng)的系統(tǒng)及方法。控制節(jié)點處的網(wǎng)格化軟件組件經(jīng)配置以調(diào)用所述控制節(jié)點處的數(shù)據(jù)庫管理軟件DBMS以致使多個工作者節(jié)點處的DBMS使數(shù)據(jù)可用于在其節(jié)點本地的網(wǎng)格化軟件組件;指示所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件對所接收的數(shù)據(jù)執(zhí)行分析計算且將所述數(shù)據(jù)分析的結(jié)果發(fā)送到所述控制節(jié)點處的所述網(wǎng)格化軟件組件;以及匯編由所述多個工作者節(jié)點處的所述網(wǎng)格化軟件組件執(zhí)行的所述數(shù)據(jù)分析的所述結(jié)果。
文檔編號G06F17/30GK103201740SQ201180054214
公開日2013年7月10日 申請日期2011年11月8日 優(yōu)先權(quán)日2010年11月15日
發(fā)明者奧利弗·沙本伯格, 史蒂夫·克魯格 申請人:薩思學(xué)會有限公司