此申請案為非臨時的且依據(jù)35U.S.C.§119(e)要求標(biāo)題為“分布式處理的容錯通信策略(Fault-Tolerant Communication Strategies for Distributed Processing)”的美國臨時申請案第62/019,426號的益處和優(yōu)先權(quán)。所述美國臨時申請案申請于2014年7月1日且出于所有目的以引用的方式并入本文中。
技術(shù)領(lǐng)域
本發(fā)明涉及用于容許通信網(wǎng)格中的錯誤的計算機(jī)技術(shù)。具體來說,提供各種技術(shù)和系統(tǒng)以用于檢測通信網(wǎng)格中計算機(jī)節(jié)點的網(wǎng)絡(luò)中的節(jié)點的錯誤或失效;調(diào)整所述網(wǎng)格以避免網(wǎng)格失效;以及基于所述失效采取行動。
背景技術(shù):
在包含執(zhí)行作業(yè)的計算機(jī)節(jié)點的網(wǎng)絡(luò)的通信網(wǎng)格中,節(jié)點可失效。節(jié)點的失效可引起整個網(wǎng)格的失效,并且因此整個作業(yè)的失效,從而從起點重新開始作業(yè)。對于包含較大數(shù)據(jù)集或可能花費長時間段完成的作業(yè),此失效可尤其難以解決。
技術(shù)實現(xiàn)要素:
本發(fā)明涉及用于容許通信網(wǎng)格中的錯誤的計算機(jī)技術(shù)。具體來說,提供各種技術(shù)和系統(tǒng)以用于檢測通信網(wǎng)格中計算機(jī)節(jié)點的網(wǎng)絡(luò)中的節(jié)點的錯誤或失效;調(diào)整所述網(wǎng)格以避免網(wǎng)格失效;以及基于所述失效采取行動。在實施例中,計算機(jī)程序產(chǎn)品可有形地體現(xiàn)在非暫時性機(jī)器可讀存儲媒體中。非暫時性機(jī)器可讀存儲媒體可包含經(jīng)配置以使得數(shù)據(jù)處理設(shè)備進(jìn)行以下操作的指令:在通信網(wǎng)格上連接到主要控制節(jié)點和工作者節(jié)點的備份控制節(jié)點處接收網(wǎng)格狀態(tài)信息,所述網(wǎng)格狀態(tài)信息包含主要控制節(jié)點的項目狀態(tài)或工作者節(jié)點的項目狀態(tài),其中主要控制節(jié)點的項目狀態(tài)和工作者節(jié)點的項目狀態(tài)包含正由通信網(wǎng)格中的主要節(jié)點和工作者節(jié)點執(zhí)行的項目的一或多個部分的狀態(tài);將網(wǎng)格狀態(tài)信息存儲在備份控制節(jié)點內(nèi);接收包含主要控制節(jié)點已失效的指示的失效通信;在接收到失效通信時基于失效通信將備份控制節(jié)點指定為新主要控制節(jié)點;基于主要控制節(jié)點已失效的所述指示而接收經(jīng)更新的網(wǎng)格狀態(tài)信息,其中經(jīng)更新的網(wǎng)格狀態(tài)信息包含主要控制節(jié)點的經(jīng)更新的項目狀態(tài)或工作者節(jié)點的經(jīng)更新的項目狀態(tài);以及基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集,其中指令集包含使工作者節(jié)點在主要控制節(jié)點的失效之后繼續(xù)致力于所述項目的指令。
在一個方面中,計算機(jī)程序產(chǎn)品可進(jìn)一步包括經(jīng)配置以使得數(shù)據(jù)處理設(shè)備在備份控制節(jié)點處接收包含備份控制節(jié)點為新主要控制節(jié)點的指示的主要節(jié)點通信的指令。在另一方面中,在接收到失效通信時,備份控制節(jié)點基于備份控制節(jié)點的唯一標(biāo)識符或級別確定是否應(yīng)將備份節(jié)點指定為新主要控制節(jié)點;和分配新主要控制節(jié)點。在另一方面中,在接收到失效通信時,備份控制節(jié)點確定備份控制節(jié)點為通信網(wǎng)格上的唯一備份控制節(jié)點。在另一方面中,主要控制節(jié)點控制每一工作者節(jié)點負(fù)責(zé)執(zhí)行的項目的各部分。在另一方面中,給通信網(wǎng)格上的每一控制節(jié)點和工作者節(jié)點分配所存儲的唯一標(biāo)識符,其中節(jié)點的唯一標(biāo)識符指示在通信網(wǎng)格內(nèi)節(jié)點的層級,且其中每一控制節(jié)點和每一工作者節(jié)點存儲通信網(wǎng)格上的所有其它控制節(jié)點和工作者節(jié)點的唯一標(biāo)識符。在另一方面中,工作者節(jié)點的工作者節(jié)點執(zhí)行項目的不同部分。在另一方面中,網(wǎng)格狀態(tài)信息包含指示在主要控制節(jié)點的失效之前項目的進(jìn)展階段的項目檢查點(或進(jìn)展檢查點)。在另一方面中,基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集包含傳輸來自項目檢查點的指示在主要控制節(jié)點的失效之前所述項目的進(jìn)展階段的狀態(tài)。在另一方面中,計算機(jī)程序產(chǎn)品可進(jìn)一步包括經(jīng)配置以使得數(shù)據(jù)處理設(shè)備進(jìn)行以下操作的指令:確定主要控制節(jié)點已失效,其中確定主要控制節(jié)點已失效包含確定備份控制節(jié)點未接收到預(yù)期檢測信號通信,其中檢測信號通信指示主要控制節(jié)點為可操作的。在另一方面中,確定主要控制節(jié)點已失效包含確定備份控制節(jié)點在預(yù)定時間段之后未從主要控制節(jié)點接收到檢測信號通信。
在另一實施例中,計算裝置可包括一或多個處理器,和上面存儲有指令的存儲器,所述指令由一或多個處理器執(zhí)行。處理器可使得計算裝置執(zhí)行包含以下各者的操作:在通信網(wǎng)格上連接到主要控制節(jié)點和工作者節(jié)點的備份控制節(jié)點處接收網(wǎng)格狀態(tài)信息,所述網(wǎng)格狀態(tài)信息包含主要控制節(jié)點的項目狀態(tài)或工作者節(jié)點的項目狀態(tài),其中主要控制節(jié)點的項目狀態(tài)和工作者節(jié)點的項目狀態(tài)包含正由通信網(wǎng)格中的主要節(jié)點和工作者節(jié)點執(zhí)行的項目的一或多個部分的狀態(tài);將網(wǎng)格狀態(tài)信息存儲在備份控制節(jié)點內(nèi);接收包含主要控制節(jié)點已失效的指示的失效通信;在接收到失效通信時基于失效通信將備份控制節(jié)點指定為新主要控制節(jié)點;基于主要控制節(jié)點已失效的所述指示而接收經(jīng)更新的網(wǎng)格狀態(tài)信息,其中經(jīng)更新的網(wǎng)格狀態(tài)信息包含主要控制節(jié)點的經(jīng)更新的項目狀態(tài)或工作者節(jié)點的經(jīng)更新的項目狀態(tài);以及基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集,其中所述指令集包含使工作者節(jié)點在主要控制節(jié)點失效之后繼續(xù)致力于所述項目的指令。
在一方面中,計算裝置可進(jìn)一步包括指令,所述指令在由一或多個處理器執(zhí)行時使得計算裝置執(zhí)行包含以下各者的操作:在備份控制節(jié)點處接收包含備份控制節(jié)點為新主要控制節(jié)點的指示的主要節(jié)點通信。在另一方面中,在接收到失效通信時,備份控制節(jié)點基于備份控制節(jié)點的唯一標(biāo)識符或級別確定是否應(yīng)將備份節(jié)點指定為新主要控制節(jié)點;和分配新主要控制節(jié)點。在另一方面中,在接收到失效通信時,備份控制節(jié)點確定備份控制節(jié)點為通信網(wǎng)格上的唯一備份控制節(jié)點。在另一方面中,主要控制節(jié)點控制每一工作者節(jié)點負(fù)責(zé)執(zhí)行的項目的各部分。在另一方面中,給通信網(wǎng)格上的每一控制節(jié)點和工作者節(jié)點分配所存儲的唯一標(biāo)識符,其中節(jié)點的唯一標(biāo)識符指示在通信網(wǎng)格內(nèi)節(jié)點的層級,且其中每一控制節(jié)點和每一工作者節(jié)點存儲通信網(wǎng)格上的所有其它控制節(jié)點和工作者節(jié)點的唯一標(biāo)識符。在另一方面中,工作者節(jié)點的工作者節(jié)點執(zhí)行項目的不同部分。在另一方面中,網(wǎng)格狀態(tài)信息包含指示在主要控制節(jié)點失效之前項目的進(jìn)展階段的項目檢查點。在另一方面中,基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集包含傳輸來自項目檢查點的指示在主要控制節(jié)點的失效之前所述項目的進(jìn)展階段的狀態(tài)。在另一方面中,計算裝置可進(jìn)一步包括指令,所述指令在由一或多個處理器執(zhí)行時使得計算裝置執(zhí)行包含以下各者的操作:確定主要控制節(jié)點已失效,其中確定主要控制節(jié)點已失效包含確定備份控制節(jié)點未接收到預(yù)期檢測信號通信,其中檢測信號通信指示主要控制節(jié)點為可操作的。在另一方面中,確定主要控制節(jié)點已失效包含確定備份控制節(jié)點在預(yù)定時間段之后未從主要控制節(jié)點接收到檢測信號通信。
在另一實施例中,計算機(jī)實施方法可包括:在通信網(wǎng)格上連接到主要控制節(jié)點和工作者節(jié)點的備份控制節(jié)點處接收網(wǎng)格狀態(tài)信息,所述網(wǎng)格狀態(tài)信息包含主要控制節(jié)點的項目狀態(tài)或工作者節(jié)點的項目狀態(tài),其中主要控制節(jié)點的項目狀態(tài)和工作者節(jié)點的項目狀態(tài)包含正由通信網(wǎng)格中的主要節(jié)點和工作者節(jié)點執(zhí)行的項目的一或多個部分的狀態(tài);將網(wǎng)格狀態(tài)信息存儲在備份控制節(jié)點內(nèi);接收包含主要控制節(jié)點已失效的指示的失效通信;在接收到失效通信時基于失效通信將備份控制節(jié)點指定為新主要控制節(jié)點;基于主要控制節(jié)點已失效的所述指示接收經(jīng)更新的網(wǎng)格狀態(tài)信息,其中經(jīng)更新的網(wǎng)格狀態(tài)信息包含主要控制節(jié)點的經(jīng)更新的項目狀態(tài)或工作者節(jié)點的經(jīng)更新的項目狀態(tài);以及基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集,其中所述指令集包含使工作者節(jié)點在主要控制節(jié)點失效之后繼續(xù)致力于所述項目的指令。
在一方面中,所述方法可進(jìn)一步包括在備份控制節(jié)點處接收包含備份控制節(jié)點為新主要控制節(jié)點的指示的主要節(jié)點通信。在另一方面中,在接收到失效通信時,備份控制節(jié)點基于備份控制節(jié)點的唯一標(biāo)識符或級別確定是否應(yīng)將備份節(jié)點指定為新主要控制節(jié)點;和分配新主要控制節(jié)點。在另一方面中,在接收到失效通信時,備份控制節(jié)點確定備份控制節(jié)點為通信網(wǎng)格上的唯一備份控制節(jié)點。在另一方面中,主要控制節(jié)點控制每一工作者節(jié)點負(fù)責(zé)執(zhí)行的項目的各部分。在另一方面中,給通信網(wǎng)格上的每一控制節(jié)點和工作者節(jié)點分配所存儲的唯一標(biāo)識符,其中節(jié)點的唯一標(biāo)識符指示在通信網(wǎng)格內(nèi)節(jié)點的層級,且其中每一控制節(jié)點和每一工作者節(jié)點存儲通信網(wǎng)格上的所有其它控制節(jié)點和工作者節(jié)點的唯一標(biāo)識符。在另一方面中,工作者節(jié)點的工作者節(jié)點執(zhí)行項目的不同部分。在另一方面中,網(wǎng)格狀態(tài)信息包含指示在主要控制節(jié)點失效之前項目的進(jìn)展階段的項目檢查點。在另一方面中,基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集包含傳輸來自項目檢查點的指示在主要控制節(jié)點的失效之前所述項目的進(jìn)展階段的狀態(tài)。在另一方面中,所述方法可進(jìn)一步包括確定主要控制節(jié)點已失效,其中確定主要控制節(jié)點已失效包含確定備份控制節(jié)點未接收到預(yù)期檢測信號通信,其中檢測信號通信指示主要控制節(jié)點為可操作的。在另一方面中,確定主要控制節(jié)點已失效包含確定備份控制節(jié)點在預(yù)定時間段之后未從主要控制節(jié)點接收到檢測信號通信。
在另一實施例中,計算機(jī)程序產(chǎn)品可有形地體現(xiàn)在非暫時性機(jī)器可讀存儲媒體中。非暫時性機(jī)器可讀存儲媒體可包含經(jīng)配置以使得數(shù)據(jù)處理設(shè)備進(jìn)行以下操作的指令:從通信網(wǎng)格上連接到一或多個工作者節(jié)點的主要控制節(jié)點傳輸與正由一或多個工作者節(jié)點執(zhí)行的項目相關(guān)的工作者指令;產(chǎn)生通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含一或多個工作者節(jié)點中的每一者的項目狀態(tài),其中工作者節(jié)點的項目狀態(tài)包含正由通信網(wǎng)格中的工作者節(jié)點執(zhí)行的項目的一部分的狀態(tài);確定一或多個工作者節(jié)點中的失效工作者節(jié)點已失效,其中一或多個工作者節(jié)點在失效時間處已失效;使用通信網(wǎng)格的快照識別失效工作者節(jié)點的項目狀態(tài),其中失效工作者節(jié)點的項目狀態(tài)包含正由失效工作者節(jié)點在失效時間處執(zhí)行的項目的一部分的狀態(tài);以及傳輸經(jīng)更新的工作者指令,其中經(jīng)更新的工作者指令包含失效工作者節(jié)點的項目狀態(tài)和與正由一或多個工作者節(jié)點執(zhí)行的項目相關(guān)的經(jīng)更新的指令,其中經(jīng)更新的工作者指令促進(jìn)正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分的執(zhí)行。
在一方面中,計算機(jī)程序產(chǎn)品可進(jìn)一步包括經(jīng)配置以使得數(shù)據(jù)處理設(shè)備識別一或多個工作者節(jié)點中的起作用工作者節(jié)點以完成正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分的指令。在另一方面中,給通信網(wǎng)格上的每一工作者節(jié)點分配唯一標(biāo)識符,其中工作者節(jié)點的唯一標(biāo)識符指示在通信網(wǎng)格內(nèi)與每一唯一標(biāo)識符相關(guān)聯(lián)的工作者節(jié)點的層級。在另一方面中,經(jīng)更新的工作者指令促進(jìn)一或多個工作者節(jié)點中的起作用工作者節(jié)點開始執(zhí)行正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分。在另一方面中,計算機(jī)程序產(chǎn)品可進(jìn)一步包括經(jīng)配置以使得數(shù)據(jù)處理設(shè)備確定失效工作者節(jié)點為通信網(wǎng)格上的唯一工作者節(jié)點以及將新工作者節(jié)點添加到通信網(wǎng)格的指令。在另一方面中,主要控制節(jié)點管理每一工作者節(jié)點負(fù)責(zé)執(zhí)行的項目的各部分的分布。在另一方面中,確定一或多個工作者節(jié)點中的失效工作者節(jié)點已失效包含確定主要控制節(jié)點在傳輸與正由一或多個工作者節(jié)點執(zhí)行的所述項目相關(guān)的工作者指令之后未接收到檢測信號通信。
在另一實施例中,計算裝置可包括一或多個處理器,和上面存儲有指令的存儲器,所述指令由一或多個處理器執(zhí)行。處理器可使得計算裝置執(zhí)行包含以下各者的操作:從通信網(wǎng)格上連接到一或多個工作者節(jié)點的主要控制節(jié)點傳輸與正由一或多個工作者節(jié)點執(zhí)行的項目相關(guān)的工作者指令;產(chǎn)生通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含一或多個工作者節(jié)點中的每一者的項目狀態(tài),其中工作者節(jié)點的項目狀態(tài)包含正由通信網(wǎng)格中的工作者節(jié)點執(zhí)行的項目的一部分的狀態(tài);確定一或多個工作者節(jié)點中的失效工作者節(jié)點已失效,其中一或多個工作者節(jié)點在失效時間處已失效;使用通信網(wǎng)格的快照識別失效工作者節(jié)點的項目狀態(tài),其中失效工作者節(jié)點的項目狀態(tài)包含正由失效工作者節(jié)點在失效時間處執(zhí)行的項目的一部分的狀態(tài);以及傳輸經(jīng)更新的工作者指令,其中經(jīng)更新的工作者指令包含失效工作者節(jié)點的項目狀態(tài)和與正由一或多個工作者節(jié)點執(zhí)行的項目相關(guān)的經(jīng)更新的指令,其中經(jīng)更新的工作者指令促進(jìn)正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分的執(zhí)行。
在一方面中,計算裝置可進(jìn)一步包括指令,所述指令在由一或多個處理器執(zhí)行時使得計算裝置執(zhí)行包含以下各者的操作:識別一或多個工作者節(jié)點中的起作用工作者節(jié)點以完成正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分。在另一方面中,給通信網(wǎng)格上的每一工作者節(jié)點分配唯一標(biāo)識符,其中工作者節(jié)點的唯一標(biāo)識符指示在通信網(wǎng)格內(nèi)與每一唯一標(biāo)識符相關(guān)聯(lián)的工作者節(jié)點的層級。在另一方面中,經(jīng)更新的工作者指令促進(jìn)一或多個工作者節(jié)點中的起作用工作者節(jié)點開始執(zhí)行正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分。在另一方面中,計算裝置可進(jìn)一步包括指令,所述指令在由一或多個處理器執(zhí)行時使得計算裝置執(zhí)行包含以下各者的操作:確定失效工作者節(jié)點為通信網(wǎng)格上的唯一工作者節(jié)點和將新工作者節(jié)點添加到通信網(wǎng)格。在另一方面中,主要控制節(jié)點管理每一工作者節(jié)點負(fù)責(zé)執(zhí)行的項目的各部分的分布。在另一方面中,確定一或多個工作者節(jié)點中的失效工作者節(jié)點已失效包含確定主要控制節(jié)點在傳輸與正由一或多個工作者節(jié)點執(zhí)行的所述項目相關(guān)的工作者指令之后未接收到檢測信號通信。
在另一實施例中,計算機(jī)實施方法可包括:從通信網(wǎng)格上連接到一或多個工作者節(jié)點的主要控制節(jié)點傳輸與正由一或多個工作者節(jié)點執(zhí)行的項目相關(guān)的工作者指令;產(chǎn)生通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含一或多個工作者節(jié)點中的每一者的項目狀態(tài),其中工作者節(jié)點的項目狀態(tài)包含正由通信網(wǎng)格中的工作者節(jié)點執(zhí)行的項目的一部分的狀態(tài);確定一或多個工作者節(jié)點中的失效工作者節(jié)點已失效,其中一或多個工作者節(jié)點在失效時間處已失效;使用通信網(wǎng)格的快照識別失效工作者節(jié)點的項目狀態(tài),其中失效工作者節(jié)點的項目狀態(tài)包含正由失效工作者節(jié)點在失效時間處執(zhí)行的項目的一部分的狀態(tài);以及傳輸經(jīng)更新的工作者指令,其中經(jīng)更新的工作者指令包含失效工作者節(jié)點的項目狀態(tài)和與正由一或多個工作者節(jié)點執(zhí)行的項目相關(guān)的經(jīng)更新的指令,其中經(jīng)更新的工作者指令促進(jìn)正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分的執(zhí)行。
在一方面中,所述方法可進(jìn)一步包括識別一或多個工作者節(jié)點中的起作用工作者節(jié)點以完成正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分。在另一方面中,給通信網(wǎng)格上的每一工作者節(jié)點分配唯一標(biāo)識符,其中工作者節(jié)點的唯一標(biāo)識符指示在通信網(wǎng)格內(nèi)與每一唯一標(biāo)識符相關(guān)聯(lián)的工作者節(jié)點的層級。在另一方面中,經(jīng)更新的工作者指令促進(jìn)一或多個工作者節(jié)點中的起作用工作者節(jié)點開始執(zhí)行正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分。在另一方面中,所述方法可進(jìn)一步包括確定失效工作者節(jié)點為通信網(wǎng)格上的唯一工作者節(jié)點和將新工作者節(jié)點添加到通信網(wǎng)格。在另一方面中,主要控制節(jié)點管理每一工作者節(jié)點負(fù)責(zé)執(zhí)行的項目的各部分的分布。在另一方面中,確定一或多個工作者節(jié)點中的失效工作者節(jié)點已失效包含確定主要控制節(jié)點在傳輸與正由一或多個工作者節(jié)點執(zhí)行的所述項目相關(guān)的工作者指令之后未接收到檢測信號通信。
本發(fā)明內(nèi)容并不意圖識別所要求的標(biāo)的物的關(guān)鍵特征或基本特征,也并非意圖單獨用于確定所要求的標(biāo)的物的范圍。標(biāo)的物應(yīng)參考此專利的整個說明書的適當(dāng)部分、任何或所有圖式以及每一權(quán)利要求來理解。
在參考以下說明書、權(quán)利要求書以及附圖之后,前述內(nèi)容連同其它特征和實施例將變得更顯而易見。
附圖說明
圖1說明根據(jù)本發(fā)明技術(shù)的實施例的提供對通信網(wǎng)格的硬件和軟件組件的一般化說明的框圖總線的實例。
圖2說明根據(jù)本發(fā)明技術(shù)的實施例的包含控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖3說明根據(jù)本發(fā)明技術(shù)的實施例的包含兩個控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖4說明根據(jù)本發(fā)明技術(shù)的實施例的包含三個控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖5說明根據(jù)本發(fā)明技術(shù)的實施例的包含兩個控制節(jié)點(其包含具有所存儲的網(wǎng)格快照的備份控制節(jié)點)和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖6說明根據(jù)本發(fā)明技術(shù)的實施例的包含兩個控制節(jié)點(其包含具有所存儲的網(wǎng)格快照的備份控制節(jié)點)和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖7說明根據(jù)本發(fā)明技術(shù)的實施例的包含兩個控制節(jié)點(其包含具有所存儲的網(wǎng)格快照的備份控制節(jié)點)和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖8說明根據(jù)本發(fā)明技術(shù)的實施例的包含新主要控制節(jié)點和前者備份控制節(jié)點以及一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖9說明根據(jù)本發(fā)明技術(shù)的實施例的包含主要控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖10說明根據(jù)本發(fā)明技術(shù)的實施例的包含控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖11說明根據(jù)本發(fā)明技術(shù)的實施例的包含控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖12說明根據(jù)本發(fā)明技術(shù)的實施例的包含控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格的實例。
圖13為根據(jù)本發(fā)明技術(shù)的實施例的展示用于從通信網(wǎng)格中的主要控制節(jié)點失效恢復(fù)的實例過程的流程圖。
圖14為根據(jù)本發(fā)明技術(shù)的實施例的展示用于在工作者節(jié)點的失效之后從通信網(wǎng)格中的工作者節(jié)點失效恢復(fù)的實例過程的流程圖。
圖15為根據(jù)本發(fā)明技術(shù)的實施例的展示用于從通信網(wǎng)格中的控制節(jié)點失效恢復(fù)的實例過程的流程圖。
圖16為根據(jù)本發(fā)明技術(shù)的實施例的展示用于從網(wǎng)格服務(wù)器的角度驗證節(jié)點之間的連接的實例過程的流程圖。
圖17為根據(jù)本發(fā)明技術(shù)的實施例的展示用于從網(wǎng)格客戶端的角度驗證節(jié)點之間的連接的實例過程的流程圖。
圖18為根據(jù)本發(fā)明技術(shù)的實施例的展示將一系列節(jié)點(經(jīng)m到n編號)分配為一節(jié)點(例如,控制節(jié)點)的子節(jié)點的實例過程的流程圖。
圖19為根據(jù)本發(fā)明技術(shù)的實施例的展示主要控制節(jié)點在通信網(wǎng)格中的其它節(jié)點之間分布客戶端項目的工作的實例過程的流程圖。
圖20為根據(jù)本發(fā)明技術(shù)的實施例的展示備份控制節(jié)點接收經(jīng)更新的狀態(tài)信息和將其存儲在通信網(wǎng)格中的實例過程的流程圖。
圖21為根據(jù)本發(fā)明技術(shù)的實施例的展示工作者節(jié)點在通信網(wǎng)格計算期間處理作業(yè)的實例方法的流程圖。
圖22為根據(jù)本發(fā)明技術(shù)的實施例的展示用于在通信網(wǎng)格內(nèi)廣播數(shù)據(jù)的實例過程的流程圖。
圖23為根據(jù)本發(fā)明技術(shù)的實施例的展示用于通信網(wǎng)格內(nèi)的約簡的實例過程的流程圖。
具體實施方式
在以下描述中,出于解釋的目的,闡述特定細(xì)節(jié)以便提供對本技術(shù)的實施例的透徹理解。然而,將顯而易見的是,可在無這些特定細(xì)節(jié)的情況下實踐各種實施例。圖式和描述并不意圖為限制性的。
以下描述僅提供實例實施例,且并不意圖限制本發(fā)明的范圍、適用性或配置。相反地,實例實施例的以下描述將為所屬領(lǐng)域的技術(shù)人員提供用于實施實例實施例的啟發(fā)性描述。應(yīng)理解,在不脫離如在所附權(quán)利要求書中所闡述的本技術(shù)的精神和范圍的情況下,可對元件的功能和布置進(jìn)行各種改變。
在以下描述中給出特定細(xì)節(jié)以提供對實施例的透徹理解。然而,所屬領(lǐng)域的一般技術(shù)人員應(yīng)理解,所述實施例可在沒有這些特定細(xì)節(jié)的情況下實踐。舉例來說,電路、系統(tǒng)、網(wǎng)絡(luò)、過程和其它組件可以框圖形式展示為組件以免以不必要的細(xì)節(jié)混淆實施例。在其它情況下,可以在沒有不必要的細(xì)節(jié)的情況下展示熟知的電路、過程、算法、結(jié)構(gòu)以及技術(shù)以免混淆實施例。
并且,應(yīng)注意,個別實施例可描述為經(jīng)描繪為流程圖、作業(yè)圖、數(shù)據(jù)作業(yè)圖、結(jié)構(gòu)圖或框圖的過程。盡管流程圖可將操作描述為順序過程,但是許多操作可并行或同時執(zhí)行。另外,操作的次序可以重新布置。過程在其操作完成時終止,但是可以具有不包含在圖中的額外步驟。過程可對應(yīng)于方法、函數(shù)、程序、子例程、子程序等。當(dāng)過程對應(yīng)于函數(shù)時,過程的終止可對應(yīng)于函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。
術(shù)語“機(jī)器可讀存儲媒體”或“計算機(jī)可讀存儲媒體”包含(但不限于)便攜式或非便攜式存儲裝置、光學(xué)存儲裝置和能夠存儲、含有或攜載指令和/或數(shù)據(jù)的各種其它媒體。機(jī)器可讀媒體可包含非暫時性媒體,其中可存儲數(shù)據(jù)。非暫時性媒體的實例可包含(但不限于)磁盤或磁帶、光學(xué)存儲媒體,例如光盤(CD)或數(shù)字通用光盤(DVD)、快閃存儲器、存儲器或存儲器裝置。計算機(jī)程序產(chǎn)品可包含可表示程序、函數(shù)、子程序、程序、例程、子例程、模塊、軟件包、類別的代碼和/或機(jī)器可執(zhí)行指令,或指令、數(shù)據(jù)結(jié)構(gòu)或程序語句的任何組合。代碼段可以通過傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲器內(nèi)容而耦合到另一代碼段或硬件電路。信息、自變量、參數(shù)、數(shù)據(jù)等可經(jīng)由包含存儲器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)热魏魏线m的方式傳遞、轉(zhuǎn)發(fā)或傳輸。
此外,實施例可以由硬件、軟件、固件、中間件、微碼、硬件描述語言或其任何組合來實施。當(dāng)以軟件、固件、中間件或微碼實施時,執(zhí)行必要任務(wù)的程序代碼或代碼段(例如,計算機(jī)程序產(chǎn)品)可存儲于機(jī)器可讀媒體中。處理器可以執(zhí)行必要任務(wù)。
一些圖中所描繪的系統(tǒng)可以各種配置提供。在一些實施例中,所述系統(tǒng)可經(jīng)配置為分布式系統(tǒng),其中所述系統(tǒng)的一或多個組件跨越云計算系統(tǒng)中的一或多個網(wǎng)絡(luò)分布。
圖1展示可用于含有和/或?qū)嵤┍景l(fā)明的系統(tǒng)實施例的程序指令的獨立計算機(jī)架構(gòu)100的實例硬件的框圖。更具體來說,架構(gòu)100可包含在通信網(wǎng)格的節(jié)點內(nèi),如在本文中進(jìn)一步參考圖2到23所描述??偩€152可充當(dāng)互連硬件的其它所說明的組件的信息高速公路。標(biāo)記為CPU(中央處理單元)的處理系統(tǒng)154(例如,一或多個計算機(jī)處理器)可執(zhí)行執(zhí)行程序所需的計算和邏輯操作。處理器可讀存儲媒體(例如,只讀存儲器(ROM)156和隨機(jī)存取存儲器(RAM)158)可與處理系統(tǒng)154通信且可含有一或多個編程指令。任選地,程序指令可存儲于計算機(jī)可讀存儲媒體上,例如磁盤、光盤、可記錄存儲器裝置、快閃存儲器或其它物理存儲媒體。還可經(jīng)由通信傳輸、數(shù)據(jù)流或經(jīng)調(diào)制載波傳達(dá)計算機(jī)指令。
磁盤控制器160將一或多個任選磁盤驅(qū)動器介接到系統(tǒng)總線152。這些磁盤驅(qū)動器可為外部或內(nèi)部軟盤驅(qū)動器(例如162)、外部或內(nèi)部CD-ROM、CD-R、CD-RW或DVD驅(qū)動器(例如164)或外部或內(nèi)部硬盤驅(qū)動器166。如先前所指示,這些各種磁盤驅(qū)動器和磁盤控制器為任選裝置。
元件管理器、實時數(shù)據(jù)緩沖器、輸送機(jī)、文件輸入處理器、數(shù)據(jù)庫索引共享接入存儲器載入器、參考數(shù)據(jù)緩沖器和數(shù)據(jù)管理器中的每一者可包含存儲于連接到磁盤控制器160的磁盤驅(qū)動器、ROM 156和/或RAM 158中的一或多者中的軟件應(yīng)用程序。處理系統(tǒng)154可視需要接入每一組件。
顯示接口168可準(zhǔn)許來自總線156的信息以音頻、圖形或字母數(shù)字的格式顯示在顯示器170上。與外部裝置的通信可任選地使用各種通信端口178進(jìn)行。
除標(biāo)準(zhǔn)計算機(jī)類型的組件之外,硬件還可包含數(shù)據(jù)輸入裝置,例如鍵盤172;或其它輸入裝置174,例如麥克風(fēng)、遙控器、觸摸板、小鍵盤、觸控筆、運(yùn)動和/或手勢傳感器、位置傳感器、照相機(jī)和/或攝像機(jī)、指示器、鼠標(biāo)及/或操縱桿。
本發(fā)明涉及用于容許通信網(wǎng)格中的故障的計算機(jī)技術(shù)。具體來說,提供各種技術(shù)和系統(tǒng)以用于在通信網(wǎng)格中檢測計算機(jī)節(jié)點的網(wǎng)絡(luò)中的節(jié)點的故障或失效;調(diào)整所述網(wǎng)格以避免網(wǎng)格失效;以及基于所述失效采取行動。更具體來說,本文中所描述的方法和系統(tǒng)的實施例包含識別或檢測通信網(wǎng)格中的主要控制節(jié)點的失效;和使用網(wǎng)格狀態(tài)或檢查點信息以允許備份節(jié)點接替為主要控制節(jié)點。新主要控制節(jié)點可接著控制連接到其的工作者節(jié)點以完成由網(wǎng)格執(zhí)行的項目。替代實施例包含識別或檢測通信網(wǎng)格中的工作者節(jié)點的失效;和使用網(wǎng)格狀態(tài)或檢查點信息以允許另一工作者節(jié)點在控制節(jié)點的控制和監(jiān)督下接替由失效工作者節(jié)點執(zhí)行的工作。所述工作可在可操作工作者節(jié)點當(dāng)中重新分布。替代實施例包含使用閾值以確定在預(yù)定量的時間之后應(yīng)在何時證實或假設(shè)節(jié)點已失效。此確定可允許備份控制節(jié)點接替失效主要控制節(jié)點或允許控制節(jié)點將由失效工作者節(jié)點執(zhí)行的工作重新分布到另一工作者節(jié)點。通信網(wǎng)格內(nèi)的節(jié)點可能夠檢測層級或執(zhí)行用于確定哪些節(jié)點應(yīng)在失效之后采取行動的其它方法。在本文中參考圖2到23描述本發(fā)明技術(shù)的此類實施例。
本文中所描述的各種通信網(wǎng)格被描述為包含一或多個控制節(jié)點(例如,主要控制節(jié)點、備份控制節(jié)點等)和一或多個工作者節(jié)點。舉例來說,節(jié)點可為計算裝置,例如計算機(jī);或不同類型的網(wǎng)絡(luò)或電子裝置,例如服務(wù)器或路由器。控制節(jié)點可維持關(guān)于網(wǎng)格中的節(jié)點的狀態(tài)的知識(例如,網(wǎng)格狀態(tài)信息);接受來自客戶端的工作請求;跨越工作者節(jié)點細(xì)分工作(在最初和在工作者節(jié)點失效之后兩種情況下);協(xié)調(diào)工作者節(jié)點;以及其它職責(zé)。工作者節(jié)點可接受來自控制節(jié)點的工作請求且為控制節(jié)點提供由工作者節(jié)點執(zhí)行的工作的結(jié)果。網(wǎng)格可從單個節(jié)點(例如,機(jī)器、計算機(jī)、服務(wù)器等)開始。此第一節(jié)點可經(jīng)分配為主要控制節(jié)點或可作為主要控制節(jié)點開始,主要控制節(jié)點將控制進(jìn)入網(wǎng)格的任何額外節(jié)點。
為了將另一節(jié)點或機(jī)器添加到網(wǎng)格,主要控制節(jié)點可例如打開一對監(jiān)聽套接字。套接字可出于與控制節(jié)點的工作相關(guān)的不同原因而使用。這些套接字中的第一者可用于接受來自客戶端的工作請求,且第二套接字可用于接受來自其它網(wǎng)格節(jié)點(例如,工作者節(jié)點或其它控制節(jié)點)的連接??蔀橹饕刂乒?jié)點提供將參與到網(wǎng)格中的其它節(jié)點(例如,其它機(jī)器、計算機(jī)、服務(wù)器)的列表和每一節(jié)點將在網(wǎng)格中充當(dāng)?shù)慕巧?。主要控制?jié)點可維持網(wǎng)格中的所有經(jīng)配置節(jié)點的數(shù)據(jù)庫。數(shù)據(jù)庫可呈各種形式,包含例如配置服務(wù)器上的存儲器表格、簡單文本文件、滿配置文件以及其它形式。在啟動主要控制節(jié)點(例如,網(wǎng)格上的第一節(jié)點)之后,主要控制節(jié)點可使用網(wǎng)絡(luò)協(xié)議(例如,安全外殼協(xié)議或SSH)以開始網(wǎng)格中每一其它節(jié)點上的服務(wù)器進(jìn)程。舉例來說,命令線參數(shù)可告知每一節(jié)點一或多個條信息,例如:節(jié)點將在網(wǎng)格中具有的角色、主要控制節(jié)點的主機(jī)名、端口編號(基于所述端口編號主要控制節(jié)點接受來自對等節(jié)點的連接)以及其它。信息還可提供于配置文件中;經(jīng)由安全外殼隧道傳輸;從配置服務(wù)器恢復(fù);以及其它操作。盡管網(wǎng)格中的其它機(jī)器最初可并不知道網(wǎng)格的配置,但信息還可通過主要控制節(jié)點發(fā)送到每一其它節(jié)點。網(wǎng)格信息的更新隨后也可發(fā)送到那些節(jié)點。
對于除添加到網(wǎng)格的主要控制節(jié)點之外的任何控制節(jié)點,控制節(jié)點可打開三個套接字。第一套接字可接受來自客戶端的工作請求;第二套接字可接受來自其它網(wǎng)格成員的連接;以及第三套接字可連接(例如,永久地)到主要控制節(jié)點。當(dāng)控制節(jié)點(例如,主要控制節(jié)點)從另一控制節(jié)點接收連接時,其首先檢查以查看對等節(jié)點是否處于網(wǎng)格中經(jīng)配置節(jié)點的列表中。如果對等節(jié)點不在所述列表上,那么控制節(jié)點可清除連接。如果對等節(jié)點在所述列表上,那么其可接著試圖驗證連接。在本文中進(jìn)一步參考圖16和17來描述節(jié)點的驗證。如果驗證成功,那么驗證節(jié)點可將信息傳輸?shù)狡鋵Φ裙?jié)點,所述信息例如端口編號(基于其節(jié)點監(jiān)聽連接)、節(jié)點的主機(jī)名、關(guān)于如何驗證節(jié)點的信息以及其它信息。當(dāng)節(jié)點(例如,新控制節(jié)點)接收關(guān)于另一活動節(jié)點的信息時,所述節(jié)點將檢查以查看是否其已經(jīng)具有到所述另一節(jié)點的連接。如果其并不具有到所述節(jié)點的連接,那么其可接著建立到所述控制節(jié)點的連接。
添加到網(wǎng)格的任何工作者節(jié)點可建立到網(wǎng)格上的主要控制節(jié)點和任何其它控制節(jié)點的連接。在建立連接之后,其可相對于網(wǎng)格驗證自身(例如,任何控制節(jié)點,包含主要和備份兩者;或控制網(wǎng)格的服務(wù)器或用戶)。在本文中進(jìn)一步參考圖16和17描述節(jié)點的驗證。在成功驗證之后,工作者節(jié)點可接受來自控制節(jié)點的配置信息。
網(wǎng)格可從任何控制節(jié)點起始在任何時間處添加新機(jī)器。在將新節(jié)點添加到網(wǎng)格之后,控制節(jié)點可首先將新節(jié)點添加到其網(wǎng)格節(jié)點表??刂乒?jié)點接著還可通知每一其它控制節(jié)點關(guān)于新節(jié)點。接收通知的節(jié)點可確認(rèn)其已更新其配置信息。
圖2說明根據(jù)本發(fā)明技術(shù)的實施例的包含控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格200。通信網(wǎng)格200包含控制節(jié)點202,標(biāo)記為控制節(jié)點A。通信網(wǎng)格200還包含一或多個工作者節(jié)點。圖2中所展示的為六個工作者節(jié)點:工作者節(jié)點210(標(biāo)記為工作者節(jié)點1)、工作者節(jié)點212(標(biāo)記為工作者節(jié)點2)、工作者節(jié)點214(標(biāo)記為工作者節(jié)點3)、工作者節(jié)點216(標(biāo)記為工作者節(jié)點n-2)、工作者節(jié)點218(標(biāo)記為工作者節(jié)點n-1)以及工作者節(jié)點220(標(biāo)記為工作者節(jié)點n)。盡管圖2展示六個工作者節(jié)點,但根據(jù)本發(fā)明技術(shù)的實施例的通信網(wǎng)格可包含多于或少于六個工作者節(jié)點。舉例來說,通信網(wǎng)格可包含一個、兩個或任何其它數(shù)目個工作者節(jié)點。通信網(wǎng)格200內(nèi)的每一工作者節(jié)點連接(有線或無線地,以及直接或間接地)到控制節(jié)點202。因此,每一工作者節(jié)點可從控制節(jié)點202接收信息(例如,執(zhí)行致力于項目的指令)且可將信息傳輸?shù)娇刂乒?jié)點202(例如,來自對項目執(zhí)行的工作的結(jié)果)。然而,在某些實施例中,工作者節(jié)點可例如不連接(以通信方式或以其它方式)到其它工作者節(jié)點。舉例來說,工作者節(jié)點可僅能夠與控制其的控制節(jié)點通信,且可能并不能夠與通信網(wǎng)格中的其它工作者節(jié)點通信,無論所述工作者節(jié)點為由控制工作者節(jié)點的控制節(jié)點控制的其它工作者節(jié)點或由通信網(wǎng)格中的其它控制節(jié)點控制的工作者節(jié)點。在替代實施例中,工作者節(jié)點可與彼此通信(直接或間接地)。舉例來說,工作者節(jié)點可在彼此之間傳輸與經(jīng)執(zhí)行的作業(yè)或由所述工作者節(jié)點執(zhí)行的作業(yè)內(nèi)的個別任務(wù)相關(guān)的數(shù)據(jù)?;蛘?,工作者節(jié)點可與彼此通信以執(zhí)行廣播或約簡操作,例如分別參考圖22和23在本文中所論述的那些操作。
控制節(jié)點(例如,控制節(jié)點202)可與外部裝置(控制節(jié)點可與所述外部裝置通信)連接(例如,網(wǎng)格用戶,例如服務(wù)器或計算機(jī),可連接到網(wǎng)格的主要控制器)。舉例來說,服務(wù)器或計算機(jī)可連接到控制節(jié)點202且可將項目或作業(yè)傳輸?shù)焦?jié)點。所述項目可包含數(shù)據(jù)集。所述數(shù)據(jù)集可為任何大小。一旦控制節(jié)點接收包含較大數(shù)據(jù)集的此項目,控制節(jié)點就可分布數(shù)據(jù)集或與數(shù)據(jù)集相關(guān)的項目由工作者節(jié)點執(zhí)行?;蛘?,對于包含較大數(shù)據(jù)集的項目,可通過除控制節(jié)點之外的機(jī)器(例如,Hadoop數(shù)據(jù)節(jié)點)接收或存儲數(shù)據(jù)集。此結(jié)構(gòu)可防止瓶頸問題。
當(dāng)項目起始于通信網(wǎng)格200上時,控制節(jié)點202控制項目的待執(zhí)行的工作(例如,基于數(shù)據(jù)集)。由于通信網(wǎng)格200中的工作者節(jié)點將執(zhí)行所述工作以完成所述項目內(nèi)的每一任務(wù),因此控制節(jié)點202將來自所述項目的工作分配到每一工作者節(jié)點。控制節(jié)點協(xié)調(diào)所述工作使得每一工作者節(jié)點具有工作者節(jié)點可處置且可執(zhí)行且呈由用戶或控制節(jié)點所需的時間量的項目的一部分。舉例來說,控制節(jié)點可基于各種因數(shù)(例如,可最高效地且以正確時間量完成項目的哪些子集或部分)將工作分布到工作者節(jié)點。舉例來說,工作者節(jié)點可對已經(jīng)為本地的(例如,存儲在工作者節(jié)點上)的數(shù)據(jù)的一部分執(zhí)行分析??刂乒?jié)點還在每一工作者節(jié)點執(zhí)行和完成其作業(yè)之后協(xié)調(diào)由每一工作者節(jié)點執(zhí)行的工作的結(jié)果。舉例來說,控制節(jié)點可從一或多個工作者節(jié)點接收結(jié)果,且控制節(jié)點可組織所接收到的結(jié)果且編譯所述結(jié)果以產(chǎn)生從終端用戶所接收到的項目的完整結(jié)果。
通信網(wǎng)格200內(nèi)的工作者節(jié)點執(zhí)行致力于由控制節(jié)點202分配給工作者節(jié)點的所述項目的所述部分。在工作者節(jié)點從控制節(jié)點接收指令或項目(或項目的部分)之后,工作者節(jié)點執(zhí)行如所分配的指令,且可產(chǎn)生結(jié)果。工作者節(jié)點可接著將結(jié)果傳輸回到控制節(jié)點202(或如由來自伴隨分配或在分配之后經(jīng)遞送的控制節(jié)點202的分配或指令所指定的任何其它網(wǎng)絡(luò)裝置或外部裝置)。
當(dāng)節(jié)點加入通信網(wǎng)格200時(例如,當(dāng)節(jié)點經(jīng)開啟或連接到網(wǎng)格上的現(xiàn)有節(jié)點或這兩者時),給所述節(jié)點分配(例如,通過網(wǎng)格的操作系統(tǒng))通用唯一標(biāo)識符(UUID)。此唯一標(biāo)識符可幫助其它節(jié)點和外部實體(裝置、用戶等)識別節(jié)點且將其與其它節(jié)點區(qū)分開。當(dāng)節(jié)點連接到網(wǎng)格時,節(jié)點可將其唯一標(biāo)識符與網(wǎng)格中的其它節(jié)點共享。由于每一節(jié)點可共享其唯一標(biāo)識符,因此每一節(jié)點可知道網(wǎng)格上的每一其它節(jié)點的唯一標(biāo)識符。唯一標(biāo)識符還可指定網(wǎng)格內(nèi)的節(jié)點(例如,備份控制節(jié)點)中的每一者的層級。舉例來說,備份控制節(jié)點中的每一者的唯一標(biāo)識符可存儲于一系列備份控制節(jié)點中以指示備份控制節(jié)點將接替失效主要控制節(jié)點從而變?yōu)樾轮饕刂乒?jié)點的次序。然而,還可使用除使用節(jié)點的唯一標(biāo)識符之外的方法來確定節(jié)點的層級。舉例來說,層級可經(jīng)預(yù)先確定或可基于其它預(yù)先確定的因數(shù)而分配。
當(dāng)認(rèn)為項目(例如,由客戶端或網(wǎng)格的控制器)執(zhí)行時,其可分配給節(jié)點集合??刂乒?jié)點中的一者可被分配為作業(yè)的主要控制節(jié)點。任何剩余控制節(jié)點可被分配為項目的備份控制節(jié)點。所有活動工作者節(jié)點可分配到所述項目。然而,在一些實施例中,工作者節(jié)點的子集可由于項目需要較低資源而分配到所述項目。在節(jié)點分配到項目之后,可形成數(shù)據(jù)結(jié)構(gòu)(即,通信器)。通信器可由所述項目使用以供信息在每一節(jié)點上運(yùn)行的項目代碼之間共享。通信句柄可形成于每一節(jié)點上。舉例來說,句柄為對在單個節(jié)點上的單個進(jìn)程內(nèi)有效的通信器的參考,且句柄可在請求節(jié)點之間的通信時使用。
在通信器內(nèi),每一工作者節(jié)點和主要控制節(jié)點可各自分配有級別。舉例來說,每一級別可為非負(fù)的整數(shù)。當(dāng)與通信器句柄組合時,節(jié)點的級別可用于與在另一節(jié)點上的相同項目中運(yùn)行的代碼通信。不同于分配到節(jié)點的唯一標(biāo)識符,級別可僅在通信器內(nèi)為唯一的。因此,相同的級別數(shù)目可跨越不同項目指代網(wǎng)格中的不同節(jié)點。當(dāng)項目代碼識別網(wǎng)格中的特定節(jié)點時,其可使用分配到節(jié)點的UUID,由于此類UUIDs可為永久性的。
如所提到,通信網(wǎng)格200包含單個控制節(jié)點,控制節(jié)點202。因此,如果控制節(jié)點202失效(例如,如果控制節(jié)點202關(guān)閉、中斷或以其它方式失效;或變得不可用于控制和協(xié)調(diào)連接到其的工作者節(jié)點),那么通信網(wǎng)格200可失效。換句話說,如果控制節(jié)點202失效,那么運(yùn)行于通信網(wǎng)格200上的任何項目或作業(yè)可失效且可未完成。盡管項目可再次運(yùn)行,但此失效可在完成項目時產(chǎn)生延遲(在一些狀況下嚴(yán)重延遲,例如整夜延遲)。因此,具有多個控制節(jié)點(包含備份控制節(jié)點)的容錯系統(tǒng)可為有益的。
圖3說明根據(jù)本發(fā)明技術(shù)的實施例的包含兩個控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格300。通信網(wǎng)格300包含控制節(jié)點302和控制節(jié)點304??刂乒?jié)點302和控制節(jié)點304經(jīng)由通信路徑351以通信方式連接。因此,控制節(jié)點302和控制節(jié)點304可將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜饲覐谋舜私邮招畔?。盡管通信網(wǎng)格300在圖3中展示為包含兩個控制節(jié)點,但通信網(wǎng)格可包含多于兩個控制節(jié)點(例如,如圖7中所展示)或小于兩個控制節(jié)點(如例如圖5中所展示)。
通信網(wǎng)格300還包含一或多個工作者節(jié)點。圖3中所展示的為六個工作者節(jié)點:工作者節(jié)點310(或工作者節(jié)點1)、工作者節(jié)點312(或工作者節(jié)點2)、工作者節(jié)點314(或工作者節(jié)點3)、工作者節(jié)點316(或工作者節(jié)點n-2)、工作者節(jié)點318(或工作者節(jié)點n-1)以及工作者節(jié)點320(或工作者節(jié)點n)。盡管圖3展示六個工作者節(jié)點,但根據(jù)本發(fā)明技術(shù)的實施例的通信網(wǎng)格可包含多于或少于六個工作者節(jié)點。舉例來說,通信網(wǎng)格可包含一個、兩個或任何其它數(shù)目個工作者節(jié)點。舉例來說,包含于通信網(wǎng)格中的工作者節(jié)點的數(shù)目可取決于多大的項目或數(shù)據(jù)集正由通信網(wǎng)格實施。包含于通信網(wǎng)格中的工作者節(jié)點的數(shù)目還可取決于其它因數(shù),例如每一工作者節(jié)點的能力、通信網(wǎng)格將想要完成項目的時間以及其它因數(shù)。
如所提到,通信網(wǎng)格300內(nèi)的每一工作者節(jié)點可連接到控制節(jié)點302(盡管在其它實施例中,僅一些工作者節(jié)點可連接到控制節(jié)點302)。因此,每一工作者節(jié)點可從控制節(jié)點302接收信息(例如,執(zhí)行致力于項目的指令)且可將信息傳輸?shù)娇刂乒?jié)點302(例如,來自對項目執(zhí)行的工作的結(jié)果)。然而,在某些實施例中,工作者節(jié)點可不連接(以通信方式或以其它方式)到其它工作者節(jié)點。舉例來說,工作者節(jié)點僅可連接到控制其的控制節(jié)點,且可并不連接到通信網(wǎng)格中的其它工作者節(jié)點,無論所述其它工作者節(jié)點是否共享控制節(jié)點。通信網(wǎng)格300內(nèi)的每一工作者節(jié)點還連接到控制節(jié)點304。因此,每一工作者節(jié)點可從控制節(jié)點304接收信息且可將信息傳輸?shù)娇刂乒?jié)點304。
控制節(jié)點(例如,控制節(jié)點302)可被指定為主要控制節(jié)點。服務(wù)器、計算機(jī)或其它外部裝置可連接到主要控制節(jié)點,例如控制節(jié)點302。一旦控制節(jié)點接收項目,主要控制節(jié)點就可將項目的各部分分布到其工作者節(jié)點以供執(zhí)行。舉例來說,當(dāng)項目起始于通信網(wǎng)格300上時,主要控制節(jié)點302控制項目的待執(zhí)行的工作以便按請求或指示完成項目。由于通信網(wǎng)格300中的工作者節(jié)點將執(zhí)行工作以完成項目內(nèi)的每一任務(wù),主要控制節(jié)點302可將來自項目的工作分配到每一工作者節(jié)點。主要控制節(jié)點協(xié)調(diào)工作使得每一工作者節(jié)點具有工作者節(jié)點可處置且可完全高效地執(zhí)行的項目的一部分。主要控制節(jié)點還在每一工作者節(jié)點執(zhí)行和完成其作業(yè)之后協(xié)調(diào)和處理由每一工作者節(jié)點執(zhí)行的工作的結(jié)果。舉例來說,主要控制節(jié)點可從一或多個工作者節(jié)點接收結(jié)果,且控制節(jié)點可組織(例如,收集和匯編)所接收到的結(jié)果且編譯所述結(jié)果以產(chǎn)生從終端用戶所接收到的項目的完整結(jié)果。
另一控制節(jié)點(例如,控制節(jié)點304)可被指定為備份控制節(jié)點。備份控制節(jié)點304可不控制由通信網(wǎng)格300實施的項目的任何部分。替代地,備份控制節(jié)點304可充當(dāng)主要控制節(jié)點302的備份。舉例來說,備份控制節(jié)點304可能夠接替為主要控制節(jié)點,如果主要控制節(jié)點302失效的話。舉例來說,主要控制節(jié)點302可將一或多個通信傳輸?shù)絺浞菘刂乒?jié)點304(和例如通信網(wǎng)格內(nèi)的其它控制或工作者節(jié)點)??稍陧椖康膱?zhí)行的已知固定階段之間在固定的時間間隔處周期性地發(fā)送此類通信,以及其它協(xié)議。通過主要控制節(jié)點302傳輸?shù)耐ㄐ趴蔀椴煌愋颓铱砂鞣N類型的信息。舉例來說,主要控制節(jié)點302可傳輸通信網(wǎng)格的快照(例如,狀態(tài)信息)以使得備份控制節(jié)點304始終具有通信網(wǎng)格的最新的快照。快照或網(wǎng)格狀態(tài)可包含網(wǎng)格的結(jié)構(gòu)(包含例如網(wǎng)格中的工作者節(jié)點、節(jié)點的唯一標(biāo)識符或其與主要控制節(jié)點的關(guān)系)、項目的狀態(tài)(包含例如項目的每一工作者節(jié)點的部分的狀態(tài))以及與通信網(wǎng)格或其節(jié)點相關(guān)的其它信息??煺者€可包含從通信網(wǎng)格中的工作者節(jié)點所接收到的對于項目的全部部分中的任一部分的分析或結(jié)果。備份控制節(jié)點304可接收和存儲從主要控制節(jié)點302所接收到的備份數(shù)據(jù)。備份控制節(jié)點304可請求來自主要控制節(jié)點的此快照(或其它信息),或主要控制節(jié)點可將此類信息周期性地發(fā)送到備份控制節(jié)點。
如所提到,備份數(shù)據(jù)可允許備份控制節(jié)點在主要控制節(jié)點失效的情況下接替為主要控制節(jié)點。更具體來說,備份數(shù)據(jù)可允許備份控制節(jié)點在主要控制節(jié)點失效之后繼續(xù)由主要控制節(jié)點實施和控制的項目而不必從頭開始項目。如果主要控制節(jié)點失效,那么備份控制節(jié)點304可檢索從主要控制節(jié)點302所接收到的最新版本的快照且使用所述快照以從由備份數(shù)據(jù)所指示的項目的階段繼續(xù)項目。
備份控制節(jié)點304可使用各種方法以確定主要控制節(jié)點302已失效。在此方法的一個實例中,主要控制節(jié)點302可將指示主要控制節(jié)點302正在工作且尚未失效的通信(例如,檢測信號通信)傳輸?shù)絺浞菘刂乒?jié)點304。此類型的通信可通過主要控制節(jié)點周期性地傳輸(例如,每秒一次、每五秒一次、每毫秒一次或任何其它間隔)。如果備份控制節(jié)點304在某一預(yù)定時間段(即,時間或檢測信號閾值)內(nèi)尚未接收到檢測信號通信,或換句話說,尚未接收到預(yù)期在經(jīng)過一定量的時間之前接收到的檢測信號通信,那么備份控制節(jié)點304可能夠確定主要控制節(jié)點302是否已失效。舉例來說,主要控制節(jié)點302每六十秒可傳輸檢測信號消息。如果備份控制節(jié)點304在大于六十秒(例如,七十秒)的時間段內(nèi)尚未從主要控制節(jié)點302接收到檢測信號消息,那么備份控制節(jié)點304可確定或假設(shè)主要控制節(jié)點302已失效。
作為方法的另一實例,備份控制節(jié)點304可用以確定或假設(shè)主要控制節(jié)點302已失效;備份控制節(jié)點304可從一或多個工作者節(jié)點接收主要控制節(jié)點302已失效的通信,所述工作者節(jié)點可連接到主要控制節(jié)點302和備份控制節(jié)點304兩者。舉例來說,工作者節(jié)點可已辨別出主要控制節(jié)點302未能與工作者節(jié)點通信。舉例來說,主要控制節(jié)點302可未能對通過工作者節(jié)點傳輸?shù)街饕刂乒?jié)點的查詢或請求作出響應(yīng)。在另一實例中,主要控制節(jié)點302可未能在工作者節(jié)點發(fā)送通信(例如,包含來自由工作者節(jié)點所致力于的作業(yè)的一部分的結(jié)果的通信)之后將確認(rèn)(例如,ACK)消息傳輸回到工作者節(jié)點。備份控制節(jié)點304還可已從另一裝置(例如,通信網(wǎng)格外部的裝置)接收到例如主要控制節(jié)點失效的通信。舉例來說,外部裝置(例如,控制器)可已從一或多個工作者節(jié)點接收到主要控制節(jié)點失效的指示,且外部裝置可已將主要控制節(jié)點失效的通信傳輸?shù)絺浞菘刂乒?jié)點。備份控制節(jié)點304還可已直接從主要控制節(jié)點302(或其它地方)接收到主要控制節(jié)點已失效或?qū)⒁У闹甘?。舉例來說,主要控制節(jié)點(或另一裝置)可能夠基于歷史數(shù)據(jù)或所檢測到的圖案預(yù)測主要控制節(jié)點將要失效。然而,在其失效之前,主要控制節(jié)點可將包含其已失效或?qū)⒁У闹甘镜耐ㄐ艂鬏?例如,廣播或經(jīng)由直接消息)到其它節(jié)點。
如所提到,在備份控制節(jié)點304檢測到或被通知主要控制節(jié)點302已失效之后,備份控制節(jié)點304可接替主要控制節(jié)點的職責(zé)。此外,控制節(jié)點304可在其失效之前通過使用從主要控制節(jié)點所接收到的數(shù)據(jù)(例如,狀態(tài)信息)繼續(xù)由通信網(wǎng)格300實施且由控制節(jié)點302控制的項目。因而,通信網(wǎng)格可能夠避免項目歸因于主要控制節(jié)點的失效而失效。
圖4說明根據(jù)本發(fā)明技術(shù)的實施例的包含三個控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格400。通信網(wǎng)格400包含控制節(jié)點402、控制節(jié)點404和控制節(jié)點406??刂乒?jié)點402和控制節(jié)點404經(jīng)由通信路徑451以通信方式連接。因此,控制節(jié)點402和控制節(jié)點404可經(jīng)由通信路徑451將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜饲覐谋舜私邮招畔ⅰ?刂乒?jié)點402和控制節(jié)點406經(jīng)由通信路徑453以通信方式連接。因此,控制節(jié)點402和控制節(jié)點406可經(jīng)由通信路徑453將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜饲覐谋舜私邮招畔ⅰ?刂乒?jié)點404和控制節(jié)點406經(jīng)由通信路徑455以通信方式連接。因此,控制節(jié)點404和控制節(jié)點406可經(jīng)由通信路徑455將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜撕蛷谋舜私邮招畔?。盡管通信網(wǎng)格600在圖6中展示為包含三個控制節(jié)點,但通信網(wǎng)格可包含多于三個控制節(jié)點或小于兩個控制節(jié)點(如例如圖5和6中所展示)。
通信網(wǎng)格400還包含一或多個工作者節(jié)點。圖4中所展示的為六個工作者節(jié)點:工作者節(jié)點410(或工作者節(jié)點1)、工作者節(jié)點412(或工作者節(jié)點2)、工作者節(jié)點414(或工作者節(jié)點3)、工作者節(jié)點416(或工作者節(jié)點n-2)、工作者節(jié)點418(或工作者節(jié)點n-1)以及工作者節(jié)點420(或工作者節(jié)點n)。盡管圖4展示六個工作者節(jié)點,但根據(jù)本發(fā)明技術(shù)的實施例的通信網(wǎng)格可包含多于或少于六個工作者節(jié)點。舉例來說,通信網(wǎng)格可包含一個、兩個或任何其它數(shù)目個工作者節(jié)點。舉例來說,包含于通信網(wǎng)格中的工作者節(jié)點的數(shù)目可取決于多大的項目或數(shù)據(jù)集正由通信網(wǎng)格實施。包含于通信網(wǎng)格中的工作者節(jié)點的數(shù)目還可取決于其它因數(shù),例如每一工作者節(jié)點的能力、通信網(wǎng)格完成項目所指定的時間以及其它因數(shù)。
類似于圖6中的控制節(jié)點602,控制節(jié)點(例如,控制節(jié)點402)可在通信網(wǎng)格400中被指定為主要控制節(jié)點。主要控制節(jié)點402可經(jīng)配置以在通信網(wǎng)格400中具有與如參考圖6所描述的通信網(wǎng)格600中的主要控制節(jié)點602(和與圖5中的控制節(jié)點502)類似的角色(和執(zhí)行相同或類似功能)。通信網(wǎng)格400中的其它兩個控制節(jié)點(例如,控制節(jié)點404和406)可被指定為備份控制節(jié)點??刂乒?jié)點404和406可在本文中被稱作備份控制節(jié)點。然而,在其它實施例中,控制節(jié)點404和406可為主要控制節(jié)點。在控制節(jié)點404和406為備份控制節(jié)點的此實施例中,備份控制節(jié)點404和406中的每一者可個別地或以組合形式執(zhí)行類似于通信網(wǎng)格300中的備份控制節(jié)點304的功能。舉例來說,備份控制節(jié)點404和406可各自從主要控制節(jié)點402接收關(guān)于通信網(wǎng)格400的信息,包含周期性快照或關(guān)于通信網(wǎng)格的其它信息。
備份控制節(jié)點404或備份控制節(jié)點406可類似于通信網(wǎng)格300中的備份控制節(jié)點304接替或取代主要控制節(jié)點402,如果主要控制節(jié)點402失效的話。接替失效主要控制節(jié)點402的備份控制節(jié)點可在主要控制節(jié)點302失效之后這么做使得其可與通信網(wǎng)格300中的備份控制節(jié)點304執(zhí)行類似功能,且因此可繼續(xù)由失效主要控制節(jié)點402執(zhí)行的功能或項目。舉例來說,備份控制節(jié)點(備份控制節(jié)點404或備份控制節(jié)點406)可控制在主要控制節(jié)點402失效之前連接到主要控制節(jié)點402的工作者節(jié)點(且如所提到,工作者節(jié)點還可連接到控制節(jié)點404和406)且控制由那些工作者節(jié)點執(zhí)行的項目。
可執(zhí)行不同方法以確定備份控制節(jié)點集合中的哪一備份控制節(jié)點(例如,備份控制節(jié)點404和406)將接替失效主要控制節(jié)點402且變?yōu)樾轮饕刂乒?jié)點。舉例來說,可基于分配給每一備份控制節(jié)點的唯一標(biāo)識符(例如,無論哪個備份控制節(jié)點具有較高或較低唯一標(biāo)識符)選擇新主要控制節(jié)點。唯一標(biāo)識符的此分級可被稱為備份控制節(jié)點的“層級”。在替代實施例中,可通過通信網(wǎng)格中的另一裝置(例如,失效主要控制節(jié)點402)或由外部裝置(例如,控制通信網(wǎng)格的系統(tǒng)基礎(chǔ)設(shè)施或終端用戶,例如服務(wù)器或計算機(jī))將備份控制節(jié)點分配為新主要控制節(jié)點。在另一替代實施例中,可基于帶寬或關(guān)于通信網(wǎng)格的其它統(tǒng)計數(shù)據(jù)指定接替為新主要控制節(jié)點的備份控制節(jié)點。舉例來說,決策可基于哪一節(jié)點具有較大帶寬、哪一節(jié)點包含通信網(wǎng)格的更新版本的快照、哪一節(jié)點經(jīng)更好地裝備(例如,使用關(guān)于所述節(jié)點或通信網(wǎng)格的其余節(jié)點的統(tǒng)計數(shù)據(jù))以處置正由通信網(wǎng)格執(zhí)行的當(dāng)前項目以及其它因素。由于備份控制節(jié)點可與彼此通信(例如,經(jīng)由通信路徑451、453和455),因此可執(zhí)行內(nèi)部算法或可在備份控制節(jié)點之間共享信息以將備份控制節(jié)點中的一者指定為新主要控制節(jié)點。
圖5說明根據(jù)本發(fā)明技術(shù)的實施例的包含兩個控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格500。通信網(wǎng)格500包含主要控制節(jié)點502和備份控制節(jié)點504。主要控制節(jié)點502和備份控制節(jié)點504可在通信網(wǎng)格500中具有分別與圖6中的通信網(wǎng)格600中的控制節(jié)點602和604類似的角色。主要控制節(jié)點502和備份控制節(jié)點504經(jīng)由通信路徑551以通信方式連接。因此,主要控制節(jié)點502和備份控制節(jié)點504可將信息(包含與通信網(wǎng)格或通知相關(guān)的信息)傳輸?shù)奖舜撕蛷谋舜私邮招畔?。盡管通信網(wǎng)格500在圖5中展示為包含兩個控制節(jié)點,但通信網(wǎng)格可包含多于兩個控制節(jié)點(例如,如圖4中所展示)或小于兩個控制節(jié)點(如例如圖5中所展示)。
通信網(wǎng)格500還包含一或多個工作者節(jié)點。圖5中所展示的為四個工作者節(jié)點:工作者節(jié)點510(或工作者節(jié)點1)、工作者節(jié)點512(或工作者節(jié)點2)、工作者節(jié)點514(或工作者節(jié)點3)以及工作者節(jié)點516(或工作者節(jié)點4)。盡管圖5展示四個工作者節(jié)點,但根據(jù)本發(fā)明技術(shù)的實施例的通信網(wǎng)格可包含多于或小于四個工作者節(jié)點。
如所提到,主要控制節(jié)點(例如,主要控制節(jié)點502)可傳輸通信網(wǎng)格的快照以使得備份控制節(jié)點(例如,備份控制節(jié)點504)始終具有通信網(wǎng)格的最新的快照。舉例來說,如圖5中所展示,主要控制節(jié)點502可將通信網(wǎng)格快照540傳輸?shù)絺浞菘刂乒?jié)點504。快照可包含包含網(wǎng)格中的工作者節(jié)點和其與主要控制節(jié)點的關(guān)系的網(wǎng)格結(jié)構(gòu)、項目的狀態(tài)(包含例如項目的每一工作者節(jié)點的部分的狀態(tài))以及其它信息??煺者€可包含從通信網(wǎng)格中的工作者節(jié)點所接收到的對于項目的全部部分中的任一部分的分析或結(jié)果??煺者€可包含輔助備份控制節(jié)點在主要控制節(jié)點失效之后從作業(yè)的已知狀態(tài)繼續(xù)處理作業(yè)的任何其它信息。備份控制節(jié)點504可接收和存儲從主要控制節(jié)點502所接收到的快照540。備份控制節(jié)點504可通過請求來自主要控制節(jié)點的此快照(或其它信息)起始通信網(wǎng)格的快照的接收,或主要控制節(jié)點可將此類信息周期性地發(fā)送到備份控制節(jié)點。備份控制節(jié)點504可將快照540存儲在存儲裝置中(例如存儲在本地存儲裝置525中)。本地存儲裝置525可為備份控制節(jié)點504內(nèi)的短期存儲裝置(例如高速緩沖存儲器)或較長期存儲裝置。在替代實施例中,備份控制節(jié)點504可將快照540(或其它數(shù)據(jù))存儲在遠(yuǎn)程位置中。舉例來說,備份控制節(jié)點504可在從主要控制節(jié)點502接收通信網(wǎng)格快照540之后將快照540傳輸?shù)絺浞菘刂乒?jié)點504外部的存儲裝置。備份控制節(jié)點504可接著在接收或檢測到主要控制節(jié)點失效的通知之后從存儲裝置檢索所存儲的網(wǎng)格快照,例如快照540。
圖6說明根據(jù)本發(fā)明技術(shù)的實施例的包含兩個控制節(jié)點(其包含具有所存儲的網(wǎng)格快照的備份控制節(jié)點)和一或多個工作者節(jié)點的通信網(wǎng)格600。更具體來說,圖6說明主要控制節(jié)點602可失效(通過虛線指示)并且因此說明通信網(wǎng)格上的主要控制節(jié)點602與其它節(jié)點之間的通信路徑(例如,主要控制節(jié)點602與備份控制節(jié)點604之間的路徑651以及主要控制節(jié)點602與工作者節(jié)點610到616之間的那些路徑)可由于此失效而被切斷。然而,如通信網(wǎng)格600中所展示,備份控制節(jié)點604可以通信方式連接(例如,有線或無線地)到通信網(wǎng)格600內(nèi)的工作者節(jié)點中的每一者。如所提到,備份數(shù)據(jù)可允許備份控制節(jié)點在主要控制節(jié)點失效的情況下接替為主要控制節(jié)點。更具體來說,備份數(shù)據(jù)可允許備份控制節(jié)點在主要控制節(jié)點失效之后繼續(xù)由主要控制節(jié)點實施和控制的項目而不必從頭開始項目。如果主要控制節(jié)點失效,那么備份控制節(jié)點504可檢索從主要控制節(jié)點502所接收到的最新版本(或另一所存儲的版本,如果適用的話)的快照且使用所述快照(和其它備份數(shù)據(jù))以從由備份數(shù)據(jù)所指示的項目階段繼續(xù)項目。
圖7說明根據(jù)本發(fā)明技術(shù)的實施例的包含兩個控制節(jié)點(其包含具有所存儲的網(wǎng)格快照的備份控制節(jié)點)和一或多個工作者節(jié)點的通信網(wǎng)格700。通信網(wǎng)格700類似于通信網(wǎng)格600,但進(jìn)一步說明備份控制節(jié)點704可從若干不同來源接收主要控制節(jié)點702失效的通知。如所提到,備份控制節(jié)點(例如,備份控制節(jié)點704)可在主要控制節(jié)點失效之后替代主要控制節(jié)點(例如,主要控制節(jié)點702)作為通信網(wǎng)格(例如,通信網(wǎng)格700)內(nèi)的新主要控制節(jié)點??梢愿鞣N不同方式通知備份控制節(jié)點704主要控制節(jié)點702已失效。舉例來說,備份控制節(jié)點704可接收包含通知的通信(例如,通信745),其包含主要控制節(jié)點702已失效或?qū)⒃谝欢康臅r間內(nèi)失效的指示。備份控制節(jié)點704可從主要控制節(jié)點702自身接收此通知。主要控制節(jié)點702可識別其已失效或?qū)⑹译S后或同時將具有此問題的通知傳輸?shù)絺浞菘刂乒?jié)點704;傳輸?shù)骄W(wǎng)格上的另一節(jié)點或節(jié)點組或傳輸?shù)椒?wù)器或管理員(例如,服務(wù)器/管理員760)或通信網(wǎng)格內(nèi)部或外部的另一系統(tǒng)基礎(chǔ)設(shè)施。備份控制節(jié)點可接著從服務(wù)器或管理員760接收通信745。舉例來說,此通知可在服務(wù)器或管理員760已從主要控制節(jié)點702接收到此通知之后出現(xiàn)?;蛘?,服務(wù)器或管理員760可已從網(wǎng)格內(nèi)的工作者節(jié)點或從另一來源接收到此通知。在另一替代實例中,服務(wù)器或管理員760可將周期性檢測信號消息傳輸?shù)街饕刂乒?jié)點702以確定主要控制節(jié)點702是否正在工作(即,尚未失效),且可由于其確定主要控制節(jié)點702失效(由于其在某一預(yù)定時間段內(nèi)未接收到對其檢測信號消息中的一或多者的響應(yīng))而已起始將通知傳輸?shù)絺浞菘刂乒?jié)點704。備份控制節(jié)點704可接著直接從工作者節(jié)點(例如,從如圖7中所展示的工作者節(jié)點716)接收主要控制節(jié)點失效的通知。
圖8說明根據(jù)本發(fā)明技術(shù)的實施例的包含新主要控制節(jié)點和前者備份控制節(jié)點以及一或多個工作者節(jié)點的通信網(wǎng)格800。通信網(wǎng)格800包含新主要控制節(jié)點804,其可在先前主要控制節(jié)點失效之前已從前者備份控制節(jié)點轉(zhuǎn)變。如圖8中所展示,新主要控制節(jié)點804(在其為備份控制節(jié)點時保持原樣)連接到一或多個工作者節(jié)點。在通信網(wǎng)格800中,新主要控制節(jié)點804連接到工作者節(jié)點810、812、814和816。然而,新主要控制節(jié)點804可連接到相較于圖8中所展示的四個工作者節(jié)點的較低或較高數(shù)目個工作者節(jié)點。新主要控制節(jié)點804可取代或接替先前主要控制節(jié)點以與前者、現(xiàn)失效的主要控制節(jié)點呈相同能力或功能性。換句話說,新主要控制節(jié)點804可控制通信網(wǎng)格800上運(yùn)行的項目,并且因此可控制連接到其且執(zhí)行項目的不同部分的工作者節(jié)點。
新主要控制節(jié)點804在變?yōu)橥ㄐ啪W(wǎng)格800內(nèi)的主要控制節(jié)點之后可重新開始項目(例如,如果如由新主要控制節(jié)點所存儲的網(wǎng)格的上一個已知狀態(tài)為項目的起點的話)。在另一實施例中,新主要控制節(jié)點804可在正執(zhí)行的項目的進(jìn)展期間通過在某一時刻在檢查點處恢復(fù)致力于項目而回滾到檢查點。在實施例中,新主要控制節(jié)點804可連同連接到其的工作者節(jié)點一起從前者主要控制節(jié)點停止的確切時刻恢復(fù)項目的執(zhí)行。在另一實施例中,新主要控制節(jié)點804可從在前一主要控制節(jié)點停止的時刻之前的項目中的一時刻處的檢查點恢復(fù)項目的執(zhí)行(即,回滾到檢查點)。新主要控制節(jié)點804可使用從新主要控制節(jié)點804內(nèi)的存儲裝置或從另一節(jié)點或另一裝置內(nèi)的存儲裝置所檢索到的網(wǎng)格的快照獲得關(guān)于此檢查點的信息。
圖9說明根據(jù)本發(fā)明技術(shù)的實施例的包含主要控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格900。通信網(wǎng)格900包含新主要控制節(jié)點902和工作者節(jié)點910、912、914和916。如所提到,主要控制節(jié)點902可將正執(zhí)行的項目內(nèi)的工作分布到通信網(wǎng)格內(nèi)的工作者節(jié)點中的每一者使得每一工作者節(jié)點執(zhí)行項目的一部分。舉例來說,如圖9中所展示,工作者節(jié)點910、912、914和916各自可被分配正由通信網(wǎng)格900執(zhí)行且由主要控制節(jié)點902控制的項目的四分之一部分。舉例來說,主要控制節(jié)點902可例如分別經(jīng)由通信路徑960、962、964和966將指令傳輸?shù)焦ぷ髡吖?jié)點。此外,工作者節(jié)點還可將信息傳輸?shù)街饕刂乒?jié)點902。舉例來說,工作者節(jié)點可產(chǎn)生(和例如本地存儲)且將項目內(nèi)其進(jìn)展的檢查點或項目的其所分配的部分傳輸?shù)街饕刂乒?jié)點902,以使得主要控制節(jié)點902接收和存儲工作者節(jié)點中的每一者的進(jìn)展的周期性檢查點或狀態(tài)。每一工作者節(jié)點的所接收到的檢查點可允許主要控制節(jié)點902編譯通信網(wǎng)格上正執(zhí)行的項目的進(jìn)展?fàn)顟B(tài)。檢查點可允許主要控制節(jié)點902產(chǎn)生通信網(wǎng)格的快照,或檢查點可經(jīng)處理為由主要控制節(jié)點用于其它能力中的單獨、獨立數(shù)據(jù)。在接收到檢查點之后,可由主要控制節(jié)點將所述檢查點存儲在存儲裝置925中。主要控制節(jié)點902還可存儲由檢查點產(chǎn)生的任何數(shù)據(jù),包含例如通信網(wǎng)格的快照。
檢查點可在項目的一階段已完成(例如,在項目為多階段操作的情況下)之后由工作者節(jié)點(或控制節(jié)點)產(chǎn)生。或者,檢查點可在項目的一定量(例如,某一百分比)已經(jīng)完成(例如,在所述項目包含較大數(shù)據(jù)集的情況下)之后產(chǎn)生??苫陧椖亢?或情形由主要控制節(jié)點(或在其它實施例中,由網(wǎng)格上的其它節(jié)點或由網(wǎng)格外部的用戶)選擇產(chǎn)生和保存或傳輸檢查點信息的方法。
在一些情形中,可在工作者節(jié)點處出現(xiàn)失效。圖10到12說明根據(jù)本發(fā)明技術(shù)的實施例的包含控制節(jié)點和一或多個工作者節(jié)點的通信網(wǎng)格。通信網(wǎng)格1000包含主要控制節(jié)點1002和工作者節(jié)點1010、1012、1014和1016。如所提到,主要控制節(jié)點1002可將正執(zhí)行的項目或數(shù)據(jù)集內(nèi)的工作分布到通信網(wǎng)格內(nèi)的工作者節(jié)點中的每一者使得每一工作者節(jié)點執(zhí)行項目的一部分。舉例來說,如圖10中所展示,工作者節(jié)點1010、1012、1014和1016各自可被分配正由通信網(wǎng)格1000執(zhí)行且由主要控制節(jié)點1002控制的項目的四分之一部分。工作者節(jié)點可將項目內(nèi)的其進(jìn)展的檢查點或項目的其所分配的部分傳輸?shù)街饕刂乒?jié)點1002,以使得主要控制節(jié)點1002接收和存儲工作者節(jié)點中的每一者的進(jìn)展的周期性檢查點或狀態(tài)。通信網(wǎng)格1000還展示工作者節(jié)點中的一者,工作者節(jié)點1012可失效(通過圖10中的虛線指示),并且因此展示通信網(wǎng)格上的工作者節(jié)點1012與其它節(jié)點之間的通信路徑(例如,主要控制節(jié)點1002與工作者節(jié)點1012之間的路徑1062)可由于此失效而被切斷。
然而,通信網(wǎng)格1000可考慮工作者節(jié)點(例如,工作者節(jié)點1012)的失效。如所提到,工作者節(jié)點1012以通信方式連接到主要控制節(jié)點1002,主要控制節(jié)點1002可控制工作者節(jié)點1012和/或由工作者節(jié)點1012所執(zhí)行的工作。如果工作者節(jié)點1012失效,那么主要控制節(jié)點1002可檢測到工作者節(jié)點1012已失效或可接收到工作者節(jié)點1012已失效的通知。舉例來說,可通過另一工作者節(jié)點(例如,工作者節(jié)點1010、1014和/或1016,其還以通信方式連接到主要控制節(jié)點1002)或如果存在一個控制節(jié)點,那么通過通信網(wǎng)格1000上的另一控制節(jié)點(例如,備份控制節(jié)點)通知主要控制節(jié)點1002工作者節(jié)點1012已失效?;蛘撸赏ㄟ^用戶(例如,經(jīng)由網(wǎng)格的通信1172的圖11中的服務(wù)器或管理員1170,如圖11中的通信網(wǎng)格1100內(nèi)所示,在本文中進(jìn)一步論述)通知主要控制節(jié)點1002。替代實施例包含使用閾值以確定在預(yù)定量的時間之后應(yīng)在何時建立或假設(shè)工作者節(jié)點已失效。舉例來說,如果在大于預(yù)定閾值的一定量的時間內(nèi)工作者節(jié)點尚未傳輸確認(rèn)通信(例如,ACK)或另一預(yù)期通信,如由預(yù)期接收此通信的控制節(jié)點或其它節(jié)點所注意到,那么可假設(shè)所述工作者節(jié)點已失效。此確定可允許控制節(jié)點將由失效工作者節(jié)點所執(zhí)行的工作重新分布到另一工作者節(jié)點。
為了在工作者節(jié)點1012失效之后彌補(bǔ)其損耗,或換句話說為了彌補(bǔ)分配到工作者節(jié)點1012的工作,主要控制節(jié)點1002可將由工作者節(jié)點1012所執(zhí)行的工作重新分布到通信網(wǎng)格1000上的其它工作者節(jié)點。舉例來說,在主要控制節(jié)點1002知道工作者節(jié)點1012已失效之后,主要控制節(jié)點1002可將通信(例如,消息或通知)傳輸?shù)狡渌ぷ髡吖?jié)點(例如,仍連接到主要控制節(jié)點1002且在通信網(wǎng)格1000上的全部或部分工作者節(jié)點)中的每一者,所述通信包含其經(jīng)分配以致力于的從工作者節(jié)點1012重新分布的工作的部分。舉例來說,如圖12的通信網(wǎng)格1200中所展示(在本文中進(jìn)一步論述),主要控制節(jié)點1002可將通信1274傳輸?shù)焦ぷ髡吖?jié)點1010;將通信1576傳輸?shù)焦ぷ髡吖?jié)點1014;以及將通信1278傳輸?shù)焦ぷ髡吖?jié)點1016,所述通信包含此類信息。在接收到此通信之后,工作者節(jié)點1010、1014和1016可將在其所接收到的通信中所識別的工作添加到將對項目執(zhí)行的工作。舉例來說,如果來自失效工作者節(jié)點1012的剩余工作在工作者節(jié)點1010、1014和1016之間經(jīng)相等地重新分布,那么工作者節(jié)點1010、1014和1016中的每一者可在此工作已經(jīng)重新分布之后被分配所述項目剩余的總工作的三分之一。然而,工作的其它部分或分類也是可能的。舉例來說,替代方案可包含將新工作者節(jié)點添加到網(wǎng)格以呈現(xiàn)額外工作。
在替代實施例中,主要控制節(jié)點1002可將包含工作者節(jié)點中的每一者還應(yīng)有目的地失效的消息的通信(例如,斷開通信器消息)傳輸?shù)饺栽谕ㄐ啪W(wǎng)格1000上的工作者節(jié)點中的每一者。換句話說,消息可包含或引起每一工作者節(jié)點內(nèi)的通信錯誤以使得仍在網(wǎng)格上的工作者節(jié)點中的每一者失效。在工作者節(jié)點中的每一者失效之后,其可各自檢索其狀態(tài)的最新保存的檢查點。每一工作者節(jié)點還可檢索第一失效工作者節(jié)點,工作者節(jié)點1012的狀態(tài)或檢查點。舉例來說,如圖12中所展示,主要控制節(jié)點1002可將失效工作者節(jié)點1012的檢查點1242傳輸?shù)焦ぷ髡吖?jié)點1010、1014和1016。此可允許仍存在(例如,非失效)工作者節(jié)點中的每一者同時從其最新檢查點繼續(xù)致力于項目,并且因此所述工作者節(jié)點不會錯漏待對項目執(zhí)行的工作中的任一者。此還可允許工作者節(jié)點在工作者節(jié)點1012在執(zhí)行工作時失效的時刻處繼續(xù)致力于從失效工作者節(jié)點重新分布的工作。使用此檢查點可允許工作者節(jié)點為高效的,以免重復(fù)已經(jīng)完成的工作或錯漏需要完成的工作。此類檢查點可存儲在每一工作者節(jié)點內(nèi)或可從另一裝置或來源(例如,另一工作者節(jié)點、控制節(jié)點、云網(wǎng)絡(luò)或其它位置)所檢索到。將檢查點存儲在除備份控制節(jié)點處之外的裝置中可為有幫助的,以防出于一些原因備份控制節(jié)點尚未存儲檢查點或以防備份控制節(jié)點失效且新控制節(jié)點稍后加入網(wǎng)格。在此實施例中,已存儲檢查點的工作者節(jié)點或其它裝置或網(wǎng)絡(luò)可將檢查點或其它狀態(tài)信息傳輸?shù)叫驴刂乒?jié)點。
圖13為根據(jù)本發(fā)明技術(shù)的實施例的展示用于在控制節(jié)點失效之后調(diào)整通信網(wǎng)格中的工作項目的實例過程的流程圖1300。所述過程可包含例如在通信網(wǎng)格上連接到主要控制節(jié)點和工作者節(jié)點的備份控制節(jié)點處接收網(wǎng)格狀態(tài)信息,所述網(wǎng)格狀態(tài)信息包含主要控制節(jié)點的項目狀態(tài)或工作者節(jié)點的項目狀態(tài),其中主要控制節(jié)點的項目狀態(tài)和工作者節(jié)點的項目狀態(tài)包含正由通信網(wǎng)格中的主要節(jié)點和工作者節(jié)點執(zhí)行的項目的一或多個部分的狀態(tài)(步驟1302)。所述過程還可包含將網(wǎng)格狀態(tài)信息存儲在備份控制節(jié)點內(nèi)(步驟1304)。所述過程還可包含接收包含主要控制節(jié)點已失效的指示的失效通信(步驟1306)。所述過程還可包含在接收到失效通信時基于失效通信將備份控制節(jié)點指定為新主要控制節(jié)點(步驟1308)。所述過程還可包含基于主要控制節(jié)點已失效的所述指示接收經(jīng)更新的網(wǎng)格狀態(tài)信息,其中經(jīng)更新的網(wǎng)格狀態(tài)信息包含主要控制節(jié)點的經(jīng)更新的項目狀態(tài)或工作者節(jié)點的經(jīng)更新的項目狀態(tài)(步驟1310)。所述過程還可包含基于經(jīng)更新的網(wǎng)格狀態(tài)信息傳輸指令集,其中所述指令集包含使工作者節(jié)點在主要控制節(jié)點失效之后繼續(xù)致力于項目的指令(步驟1312)。
圖14為根據(jù)本發(fā)明技術(shù)的實施例的展示用于在工作者節(jié)點失效之后調(diào)整通信網(wǎng)格中的工作項目的實例過程的流程圖1400。所述過程可包含例如在通信網(wǎng)格上連接到一或多個工作者節(jié)點的主要控制節(jié)點處傳輸與正由一或多個工作者節(jié)點執(zhí)行的項目相關(guān)的工作者指令(步驟1402)。所述過程還可包含產(chǎn)生通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含一或多個工作者節(jié)點中的每一者的項目狀態(tài),其中工作者節(jié)點的項目狀態(tài)包含正由通信網(wǎng)格中的工作者節(jié)點執(zhí)行的項目的一部分的項目檢查點(步驟1404)。所述過程還可包含確定一或多個工作者節(jié)點中的失效工作者節(jié)點在失效時間處已失效(步驟1406)。所述過程還可包含使用通信網(wǎng)格的快照確定失效工作者節(jié)點的項目狀態(tài),其中失效工作者節(jié)點的項目狀態(tài)包含在失效工作者節(jié)點的失效時間處的失效工作者節(jié)點的項目檢查點(步驟1408)。所述過程還可包含傳輸經(jīng)更新的工作者指令,其中所述經(jīng)更新的工作者指令包含失效工作者節(jié)點的項目狀態(tài)和與正由一或多個工作者節(jié)點執(zhí)行的項目相關(guān)的經(jīng)更新的指令,其中當(dāng)接收到經(jīng)更新的工作者指令時,起作用工作者節(jié)點完成正由失效工作者節(jié)點執(zhí)行的所述項目的所述部分(步驟1410)。
圖15為根據(jù)本發(fā)明技術(shù)的實施例的展示用于在控制節(jié)點失效之后調(diào)整通信網(wǎng)格中的工作項目的實例過程的流程圖1500。所述過程可包含例如通過通信網(wǎng)格中的備份控制節(jié)點接收包含主要控制節(jié)點連接到通信網(wǎng)格的指示的初始通信(步驟1502)。所述過程還可包含接收通信網(wǎng)格的快照,其中通信網(wǎng)格的快照包含連接到主要控制節(jié)點和備份控制節(jié)點的多個工作者節(jié)點中的每一者的工作者狀態(tài)(步驟1504)。所述過程還可包含確定自從接收到初始通信的時間段(步驟1506)。所述過程還可包含將所述時間段與閾值時間段相比較以確定主要控制節(jié)點已失效,其中在接收到失效通信時,備份控制節(jié)點為新主要控制節(jié)點(步驟1508)。所述過程還可包含基于多個工作者節(jié)點中的一或多個工作者節(jié)點的工作者狀態(tài)傳輸指令集,其中所述指令集包含在主要控制節(jié)點失效之后繼續(xù)致力于項目的指令(步驟1510)。
圖16為根據(jù)本發(fā)明技術(shù)的實施例的展示用于從網(wǎng)格服務(wù)器的角度(例如,從網(wǎng)格上的經(jīng)建立節(jié)點)驗證節(jié)點之間的連接的實例過程的流程圖1600。如所提到,當(dāng)控制節(jié)點(例如,主要控制節(jié)點)從另一控制節(jié)點接收連接時,其可首先檢查以查看對等節(jié)點是否處于網(wǎng)格中經(jīng)配置節(jié)點的所存儲的列表中。如果對等節(jié)點不在列表上,那么其可清除(即,拒絕)連接。如果對等節(jié)點在列表上,那么其可接著試圖驗證所述連接以便確保新節(jié)點屬于網(wǎng)格上??山?jīng)由允許單向或雙向驗證的不同類型的消息的交換展示驗證。舉例來說,不同類型的消息可包含:
-MSG_AUTH_TOKEN_RSP(“ATR”)。此消息可意味著驗證數(shù)據(jù)塊經(jīng)發(fā)送,且回復(fù)應(yīng)包含數(shù)據(jù)塊。所述消息可包含算法標(biāo)識符。預(yù)期響應(yīng)可為MSG_AUTH_TOKEN_RSP、MSG_AUTH_TOKEN_NO_RSP或MSG_AUTH_FAILED。
-MSG_AUTH_TOKEN_NO_RSP(“ATNR”)。此消息可意味著提供驗證數(shù)據(jù)塊,且不需要另外的驗證數(shù)據(jù)作為響應(yīng)。所述消息可包含算法標(biāo)識符。實例ATNR消息可包含用戶名和/或口令,或其它類型的消息。
-MSG_AUTH_COMPLETE(“ATC”)。此消息可包含驗證已成功地完成的指示。
-MSG_AUTH_FAILED(“ATF”)。此消息可指示驗證失敗。所述消息可包含診斷失敗代碼。
如圖16中所展示,驗證節(jié)點可等待消息(框1602)和接收消息(框1604)。當(dāng)接收到消息時,節(jié)點可確定所述消息是否為ATR或ATNR消息(框1606)。如果所述消息既不是ATR也不是ATNR消息,那么節(jié)點可傳輸ATF消息且過程可結(jié)束。如果確定所述消息為ATR或ATNR消息,那么驗證節(jié)點可在1610和1612處確認(rèn)所接收到的數(shù)據(jù)有效。如果數(shù)據(jù)有效,且消息為ATR(如在框1614處所確定),那么節(jié)點可由于ATR消息需要響應(yīng)而在框1616處產(chǎn)生對ATR的響應(yīng)。接著,節(jié)點可在框1618處確定是否需要較多驗證數(shù)據(jù),且如果是的話在1630處發(fā)送ATR。如果為否的話,那么節(jié)點可在1620處傳輸ATNR且在1622處等待響應(yīng)。在1624處,節(jié)點可確定所接收到的響應(yīng)(在框1622處)是否為ATC。如果是,那么驗證成功,如框1640中所展示。如果否,那么節(jié)點可在框1632處發(fā)送ATF作為響應(yīng)(由于驗證失敗,如框1634和1638中所展示)。
圖17為根據(jù)本發(fā)明技術(shù)的實施例的展示用于從網(wǎng)格客戶端的角度(例如,從網(wǎng)格上的新節(jié)點)驗證節(jié)點之間的連接的實例過程的流程圖1700。圖17中所展示的流程圖1700極其類似于圖16中所展示的流程圖1600,除了流程圖1700包含框1702、1704、1706和1708以確定是否將需要驗證數(shù)據(jù)作為響應(yīng)。在框1702中,節(jié)點可產(chǎn)生初始驗證數(shù)據(jù),且接著在框1704處,確定是否需要驗證數(shù)據(jù)作為響應(yīng)。如果是,那么節(jié)點可在1706處傳輸ATR以需要驗證數(shù)據(jù)作為響應(yīng)。如果否,那么節(jié)點可在1728處傳輸ATNR。
如所提到,如果需要驗證數(shù)據(jù)作為響應(yīng),那么驗證節(jié)點可等待消息(框1712)和接收消息。當(dāng)接收到消息時,節(jié)點可確定所述消息為ATR還是ATNR消息(框1714)。如果所述消息既不是ATR消息也不是ATNR消息,那么節(jié)點可傳輸ATF消息(框1736)且過程可由于所述過程失敗(如節(jié)點1738和1740中所展示)而結(jié)束。如果確定所述消息為ATR或ATNR消息,那么驗證節(jié)點可在1718和1720處確認(rèn)所接收到的數(shù)據(jù)有效。如果數(shù)據(jù)有效,且消息為ATR(如在框1722處所確定),那么節(jié)點可由于ATR消息需要響應(yīng)而在框1724處產(chǎn)生對ATR的響應(yīng)。接著,節(jié)點可在框1726處確定是否需要較多驗證數(shù)據(jù),且如果是的話在1715處發(fā)送ATR。如果否,那么節(jié)點可在1728處傳輸ATNR且在1730處等待響應(yīng)。在1732處,節(jié)點可確定所接收到的響應(yīng)是否為ATC。如果是,那么驗證成功,如框1742中所展示。如果否,那么節(jié)點可在1636框處發(fā)送ATF作為響應(yīng)。返回參考節(jié)點1722,如果確定消息不是ATR,那么可由于驗證成功(如圖1742中所展示)發(fā)送ATC消息(在節(jié)點1740處)
圖18為根據(jù)本發(fā)明技術(shù)的實施例的展示將一系列節(jié)點(經(jīng)m到n編號)分配為一節(jié)點(例如,控制節(jié)點)的子節(jié)點的實例過程的流程圖1800。在框1802處,節(jié)點m可被分配為左側(cè)子(例如,工作者)節(jié)點。接著,為了檢查以查看是否存在其它子節(jié)點,可在框1804處確定n-m是否=1,或換句話說所分配的上一個子節(jié)點(m)是否小于或等于子節(jié)點的總數(shù)目(n)。如果是,那么所述過程可結(jié)束。如果否,那么節(jié)點m+1可在框1806處被分配為右側(cè)子節(jié)點。檢查以查看是否存在其它子節(jié)點的過程通過檢查以查看m-n是否=2而在框1808中再現(xiàn)。如果是,那么所述過程可結(jié)束。如果否,那么算法m+2+((m-n-2)/2)可在框1810處用于確定“mid”子節(jié)點值??蛇f歸地使用所述算法以將節(jié)點m+2直到mid分配為左側(cè)子節(jié)點的子節(jié)點且將節(jié)點mid+1直到n分配為左側(cè)子節(jié)點的子節(jié)點。在計算出“mid”之后,可再兩次調(diào)用所述算法。調(diào)用算法的第一次,可在new_m=old_m+2和new_n=mid時調(diào)用所述算法。調(diào)用算法的第二次,可在new_m=mid+1和new_n=old_n時調(diào)用算法。
圖19為根據(jù)本發(fā)明技術(shù)的實施例的展示主要控制節(jié)點在通信網(wǎng)格中的其它節(jié)點之間分布客戶端項目的工作的實例過程的流程圖1900。在框1902中,主要控制節(jié)點確定如何將工作分布到工作者節(jié)點(和此種分布是否可能)。舉例來說,此步驟可發(fā)生在已經(jīng)分配和驗證網(wǎng)格上的工作者節(jié)點之后,如圖16到18中所描述。主要控制節(jié)點可接著在框1904處確定網(wǎng)格是否包含足夠工作者節(jié)點以完成所述工作階段。如果否,那么可在框1906處確定操作或階段已失敗。如果是,那么主要控制節(jié)點可在框1908處保存狀態(tài)且在框1910處將網(wǎng)格快照或狀態(tài)信息傳輸?shù)絺浞菘刂乒?jié)點。主要控制節(jié)點可接著在框1912處跨越工作者節(jié)點分布工作(從工作的某一階段,在所述工作呈多階段的情況下),且在框1914處等待工作者節(jié)點完成階段或失效??山又诳?916處確定任何工作者是否失效。如果一或多個工作者失效,那么可進(jìn)行若干過程中的一者以補(bǔ)救所述失效。舉例來說,主要控制節(jié)點可在工作者節(jié)點中的其余工作者節(jié)點當(dāng)中重新分布工作。在另一實例中,主要控制節(jié)點可誘發(fā)所有工作者節(jié)點的失效(例如,在框1918處)以使得每一工作者節(jié)點可在致力于項目的網(wǎng)格的最新快照處重新開始其工作。舉例來說,工作者節(jié)點可在框1920處接著將其繼續(xù)工作狀態(tài)恢復(fù)到所保存的狀態(tài)(例如,使用所保存的快照),且接著在框1922處重試?yán)^續(xù)工作階段(在所述階段上失效工作者節(jié)點失效)。返回參考框1916,如果工作者未失效,那么主要控制節(jié)點可在框1924處考慮所述階段是否為所述項目的最后一個階段。如果是,那么主要控制節(jié)點可在框1928處報告成功完成。如果否,那么主要控制節(jié)點可在框1926處將工作分配到項目中的下一階段的工作者節(jié)點。
圖20為根據(jù)本發(fā)明技術(shù)的實施例的展示備份控制節(jié)點接收經(jīng)更新的狀態(tài)信息和將其存儲在通信網(wǎng)格中的實例過程的流程圖2000。如本文中所提到,通信網(wǎng)格可具有一個、兩個、三個或更多個控制節(jié)點。圖20可僅應(yīng)用于包含多于一個控制節(jié)點的通信網(wǎng)格。在步驟2002處,備份控制節(jié)點可等待狀態(tài)更新通過主要控制節(jié)點傳輸。在框2004、2014、2023和2022中,狀態(tài)或網(wǎng)格快照可經(jīng)更新。舉例來說,如果狀態(tài)具有預(yù)定時間,在所述預(yù)定時間之后狀態(tài)可停用或終止(例如在框2004處所確定),且已達(dá)到所述時間,那么可在框2014處確定所述狀態(tài)是否為經(jīng)更新的狀態(tài)(例如,在備份控制節(jié)點接收到經(jīng)更新的狀態(tài)信息的情況下,例如呈網(wǎng)格快照形式)。如果是,那么狀態(tài)信息可在框2023處經(jīng)保存,如果不再需要,那么舊的或過期狀態(tài)信息可經(jīng)丟棄,且備份控制節(jié)點可等待另一狀態(tài)更新(例如,來自主要控制節(jié)點)。如果在框2004處狀態(tài)準(zhǔn)備好終止,那么狀態(tài)可在框2008、2010和2012中終止。如果狀態(tài)為正常(例如,經(jīng)調(diào)度)終止(如在框2008處所確定),那么所述過程可在框1212處終止。如果否,那么備份控制節(jié)點可在框2010處記錄錯誤消息且接著在框2012處終止。返回參考框2014,如果狀態(tài)并不包含經(jīng)更新的狀態(tài),那么備份控制節(jié)點可在框2016處確定主要控制節(jié)點已失效。在框2026處,可在框2026處恢復(fù)最新存儲的狀態(tài)(例如,來自主要控制節(jié)點),且備份控制節(jié)點可在框2028和2018處接替為主要控制節(jié)點。
圖21為根據(jù)本發(fā)明技術(shù)的實施例的展示在通信網(wǎng)格計算期間的工作者節(jié)點的實例過程的流程圖2100。在步驟2104處,工作者節(jié)點可接受如從控制節(jié)點所分配的工作,且可執(zhí)行所分配的工作直到其已完成所述工作為止或直到所述工作者節(jié)點已失效為止(在框2106處),如在框2108處所確定。如果工作者節(jié)點失效,那么其可在框2114處恢復(fù)其最后一個所保存的狀態(tài)(例如,使用先前存儲的狀態(tài)或快照)且接受來自控制節(jié)點的下一工作項(例如,回到框2104)。如果工作者節(jié)點未失效,且未找到錯誤,那么工作者節(jié)點可在框2110處確定完成狀態(tài)是否為項目的最后一個階段。如果是,那么工作者節(jié)點可在框2128處報告成功且終止所述過程。如果所述完成階段不是最后一個階段,那么工作者節(jié)點可在框2112處移動到其所分配工作中的下一階段。在通過工作者節(jié)點開始任何階段之前,工作者節(jié)點可保存其當(dāng)前狀態(tài)(例如,在框2104處)以使得工作者節(jié)點將具有所存儲的其先前(和最新的)狀態(tài)以防工作者節(jié)點失效。工作者節(jié)點可通過例如控制節(jié)點在請求工作者節(jié)點這樣做的任何時間處傳輸其狀態(tài)且所述狀態(tài)可并入為網(wǎng)格快照的部分。
圖22為根據(jù)本發(fā)明技術(shù)的實施例的展示用于在通信網(wǎng)格內(nèi)廣播數(shù)據(jù)的實例過程的流程圖2200。在框2202中,節(jié)點可確定所述節(jié)點將想要廣播到網(wǎng)格中的節(jié)點中的其余節(jié)點的數(shù)據(jù)是否較大(例如,大于64KB)。如果確定數(shù)據(jù)并不較大,那么節(jié)點可在框2204中確定所述數(shù)據(jù)是否正在工作者節(jié)點上運(yùn)行(例如,并不在控制節(jié)點上運(yùn)行)。如果否,那么節(jié)點可在框2208處等待所有工作者節(jié)點準(zhǔn)備好接收數(shù)據(jù),并且在框2210處,將所述數(shù)據(jù)傳輸?shù)綄⑾胍\(yùn)行所述數(shù)據(jù)的每一工作者節(jié)點。如果是,那么節(jié)點可在框2210處將數(shù)據(jù)傳輸?shù)焦ぷ髡吖?jié)點。返回參考框2202,如果確定數(shù)據(jù)的廣播較大,那么節(jié)點可在框2214中確定所述數(shù)據(jù)是否運(yùn)行于工作者節(jié)點上。如果否,那么節(jié)點可在框2216處將其它節(jié)點組織成樹(例如,使用圖21中所展示的算法)。接著,節(jié)點可在框2220處等待所有工作者準(zhǔn)備好接收數(shù)據(jù)(類似于框2208),且接著在框2216處將所述數(shù)據(jù)發(fā)送到其直接工作者子節(jié)點。返回參考框2214,如果確定數(shù)據(jù)運(yùn)行于工作者節(jié)點上,那么節(jié)點可告知控制節(jié)點工作者節(jié)點已經(jīng)準(zhǔn)備好接收數(shù)據(jù)(在框2218處)。接著,節(jié)點可在框2222處等待來自其直接父節(jié)點(例如,控制節(jié)點)的數(shù)據(jù)塊;在框2224處將數(shù)據(jù)復(fù)制到輸出緩沖器;以及在框2226處將數(shù)據(jù)重新發(fā)送到直接工作者子節(jié)點中的任一者。接著,可在框2228處確定是否所有數(shù)據(jù)已由工作者節(jié)點所接收到。如果是,那么所述過程可結(jié)束。如果否,那么所述過程可返回到框2222且再次等待來自其直接父節(jié)點的數(shù)據(jù)塊。
圖23為根據(jù)本發(fā)明技術(shù)的實施例的展示用于通信網(wǎng)格內(nèi)的約簡算法的實例過程的流程圖2300。換句話說,流程圖2300展示用于從通信網(wǎng)格中的若干或每一節(jié)點獲得輸入數(shù)據(jù)且基于所述數(shù)據(jù)執(zhí)行操作以獲得單個結(jié)果塊的過程。如本文中所描述,本發(fā)明技術(shù)的實施例限制約簡操作以使得需要每一節(jié)點上的數(shù)據(jù)塊為相同大小且所述操作并不取決于操作的次序??蓪γ恳还?jié)點上的單個對象或?qū)γ恳还?jié)點上的一系列對象執(zhí)行約簡操作。共用約簡操作可包含:相乘(例如,得出所有節(jié)點上的所有值的乘積);求和(例如,得出所有節(jié)點上的所有值的總和);最小值(例如,得出所有節(jié)點上的最小值);以及最大值(例如,得出所有節(jié)點上的最大值),以及其它操作。
流程圖2300可以確定約簡是否較大開始(框2302)。如果是,網(wǎng)格可將節(jié)點組織成樹(框2304);將輸入緩沖器分裂成塊(框2306);以及將下一塊復(fù)制到約簡緩沖器中(框2308)。舉例來說,節(jié)點可包含三個緩沖器:(1)輸入緩沖器,其可含有源自本地機(jī)器的數(shù)據(jù);(2)輸出緩沖器,其存在于控制節(jié)點上;以及(3)“約簡緩沖器”,其可為可用于計算所述節(jié)點自身和連接到其的所有子節(jié)點的部分結(jié)果的每一節(jié)點上的暫時緩沖器。輸出緩沖器與輸入緩沖器可為相同大小(但大于約簡緩沖器),且輸出緩沖器可表示跨越網(wǎng)格中的所有節(jié)點的約簡操作的結(jié)果。在步驟2306中,輸入緩沖器可被細(xì)分成塊,以使得每一塊足夠的小以剛好放入約簡緩沖器中。在實例實施例中,如果輸入和輸出緩沖器各自含有待通過添加操作減少的百萬個雙精度數(shù),那么約簡緩沖器可足夠的大以含有5,000個雙精度數(shù)。在所述實例中,輸入緩沖器可被分成每5,000個雙精度數(shù)200個塊。
每次到達(dá)步驟2308,可將單個數(shù)據(jù)塊復(fù)制到輸入緩沖器之外且復(fù)制到約簡緩沖器中。網(wǎng)格可接著確定所述塊是否具有任何直接子節(jié)點(框2326)。如果否,那么網(wǎng)格可檢查以查看所述塊是否具有父節(jié)點(框2332)。如果是,那么網(wǎng)格可將“準(zhǔn)備好接收”信號發(fā)送到直接子節(jié)點(框2328);等待從子節(jié)點發(fā)送數(shù)據(jù)塊(框2316);以及將子數(shù)據(jù)塊合并到緩沖器(例如,約簡緩沖器)(框2317)。接著,網(wǎng)格可檢查以查看所述塊是否具有父節(jié)點(框2332)。如果否,那么網(wǎng)格可將約簡緩沖器復(fù)制到輸出緩沖器(框2330)。舉例來說,由于約簡緩沖器的內(nèi)容可含有數(shù)據(jù)的子集的結(jié)果,因此可接著將所述結(jié)果復(fù)制到輸出緩沖器的正確部分中。如果仍需要處理來自輸入緩沖器的任何更多數(shù)據(jù)塊(步驟2338),那么執(zhí)行可以步驟2308繼續(xù)。返回參考框2332,如果所述塊的確具有父節(jié)點,那么網(wǎng)格可接著等待來自父節(jié)點的“準(zhǔn)備好接收”信號(框2328)且將約簡緩沖器發(fā)送到父節(jié)點(框2336)。舉例來說,約簡緩沖器可含有對以當(dāng)前節(jié)點為根的網(wǎng)格的子樹的單個數(shù)據(jù)塊的約簡操作的結(jié)果。當(dāng)父節(jié)點準(zhǔn)備好接收更多信息時,當(dāng)前節(jié)點的約簡緩沖器的內(nèi)容可轉(zhuǎn)發(fā)到其父節(jié)點,以使得其父節(jié)點可繼續(xù)操作。網(wǎng)格可接著在框2338處檢查以查看所有塊是否皆已經(jīng)處理。如果否,那么流程圖返回到框2308以將下一塊復(fù)制到約簡緩沖器中。如果是,那么所述過程移動到框2338以確定所有塊是否皆已經(jīng)處理。
返回參考框2302,如果確定約簡并不較大,那么網(wǎng)格可在框2310處確定所述約簡是否運(yùn)行于控制節(jié)點上。如果否,那么網(wǎng)格可等待來自控制節(jié)點的“準(zhǔn)備好接收”信號(框2314);將所有數(shù)據(jù)發(fā)送到控制節(jié)點(框2316);以及結(jié)束所述過程。如果是,那么網(wǎng)格可將本地數(shù)據(jù)復(fù)制到輸出緩沖器中(框2312);且將“準(zhǔn)備好接收”信號發(fā)送到所有工作者節(jié)點(框2318);在可用時從工作者節(jié)點接收數(shù)據(jù)(框2320);以及將數(shù)據(jù)合并到輸出緩沖器中(框2322)。在框2324處,網(wǎng)格確定是否已接收到所有數(shù)據(jù)。如果否,那么所述過程返回到框2318。如果是,那么所述過程結(jié)束。
在節(jié)點(例如,控制節(jié)點)的通信器句柄處可用的實例操作集合描述如下。
-send_state_to_backups:可用于主要控制節(jié)點。此將狀態(tài)數(shù)據(jù)塊發(fā)送到每一備份控制節(jié)點。此將允許主要控制節(jié)點在在主要節(jié)點失效之后可使用的備份控制節(jié)點中建立最后一個已知狀態(tài)。此調(diào)用將經(jīng)阻斷直到每一備份控制節(jié)點已接收到信息為止。如果不存在備份控制節(jié)點,那么此調(diào)用毫無用處。
-get_state_from_primary:可用于備份控制節(jié)點。此將接收狀態(tài)信息。狀態(tài)將呈以下4個形式中的一者:a)準(zhǔn)備好正常終止;b)準(zhǔn)備好異常終止;c)主要控制節(jié)點已失效,且已選擇此控制節(jié)點充當(dāng)新主要節(jié)點;d)主要控制節(jié)點狀態(tài)信息。第四個形式將包含來自主要控制節(jié)點的狀態(tài)數(shù)據(jù)塊。此塊應(yīng)用于備份節(jié)點接替為主要節(jié)點的事件中。此調(diào)用還將返回特定狀態(tài),如果曾將其選為新主要節(jié)點的話。
-takeover_communicator:僅可用于備份控制節(jié)點。此將使得備份控制節(jié)點假設(shè)主要控制節(jié)點在通信器中的角色。
-send:將數(shù)據(jù)塊發(fā)送到單個指定的對等節(jié)點
-recv:從單個指定的對等節(jié)點接收數(shù)據(jù)塊
-find_data:找到對等節(jié)點,來自其的數(shù)據(jù)可用于接收。任選地,等待數(shù)據(jù)變?yōu)榭捎玫摹?/p>
-broadcast:將來自單個節(jié)點的數(shù)據(jù)塊分布到網(wǎng)格中的每一其它節(jié)點。廣播操作可為簡單的或基于樹的。對于小數(shù)據(jù)塊,控制節(jié)點將整個數(shù)據(jù)塊發(fā)送到每一工作者節(jié)點。對于較大數(shù)據(jù)塊,將節(jié)點組織成樹,其中每一節(jié)點將數(shù)據(jù)轉(zhuǎn)播到最多兩個其它節(jié)點??墒褂脠D21中的算法產(chǎn)生所述樹??墒褂脠D22中所描述的算法或過程執(zhí)行廣播。
-reduce:接受網(wǎng)格中的每一節(jié)點上的鍵入數(shù)據(jù)的向量。對來自每一節(jié)點的陣列的每一元素執(zhí)行特定操作。將所得數(shù)據(jù)陣列發(fā)送到單個節(jié)點??墒褂脠D21中的算法產(chǎn)生樹。可使用圖23中所描述的算法或過程執(zhí)行廣播。
-reduce_all:與reduce相同的操作,除所得陣列可用于網(wǎng)格中的每一節(jié)點上以外。
-barrier:阻斷直到網(wǎng)格中的每一節(jié)點調(diào)用為止。
-list_broken_nodes:找到通信器中已失效的一系列節(jié)點
-on_failure:建立每次通信API失效時將調(diào)用的回調(diào)函數(shù)。此可通過具有處理所有失效的單個功能簡化錯誤處置。
-on_node_failure:建立將在網(wǎng)格中的任何對等節(jié)點已失效時調(diào)用的回調(diào)函數(shù)。此可允許集中化位置甚至在通信API尚未失效時以及時方式處理對等節(jié)點的損耗。
-root_rank:找到當(dāng)前主要控制節(jié)點的級別
-num_ranks:找到參與在通信器中的節(jié)點(并不包含備份控制節(jié)點)的數(shù)目
-close:中斷參與到通信器中。任何其它節(jié)點將視此節(jié)點為失效的。
-break_communicator:使得網(wǎng)格中的每一節(jié)點遭遇通信失效。此可用于迫使每一節(jié)點中的錯誤恢復(fù)路徑。
-duplicate_communicator:基于現(xiàn)存通信器產(chǎn)生新通信器。新通信器中的節(jié)點可包含當(dāng)前通信器中的每一節(jié)點,或那些節(jié)點的子集。
在本文中所描述的一些實例中,系統(tǒng)和方法可包含經(jīng)由網(wǎng)絡(luò)(例如,局域網(wǎng)、廣域網(wǎng)、因特網(wǎng)或其組合等)、光纖媒體、載波、無線網(wǎng)絡(luò)等傳送的數(shù)據(jù)傳輸以供與一或多個數(shù)據(jù)處理裝置的通信。數(shù)據(jù)傳輸可攜載提供到裝置或來自裝置的本文中所揭示的數(shù)據(jù)中的任一者或全部。
一些方面可利用物聯(lián)網(wǎng)(IoT),其中事物(例如,機(jī)器、裝置、電話、傳感器)可連接到網(wǎng)絡(luò)且可收集來自這些事物的數(shù)據(jù)和將其在事物內(nèi)和/或事物外部進(jìn)行處理。舉例來說,在IoT的情況下,在許多不同裝置中可存在傳感器,且高值分析可應(yīng)用于識別隱藏關(guān)系和驅(qū)動效率提高。此可應(yīng)用于大數(shù)據(jù)分析和實時(流化)分析。
另外,可通過包括可由裝置處理子系統(tǒng)執(zhí)行的程序指令的程序代碼在許多不同類型的處理裝置上實施本文中所描述的方法及和系統(tǒng)。軟件程序指令可包含源碼、目標(biāo)代碼、機(jī)器代碼或任何其它存儲數(shù)據(jù),其可操作以使處理系統(tǒng)執(zhí)行本文中所描述的方法和操作。然而,還可使用其它實施方案,例如經(jīng)配置以進(jìn)行本文中所描述的方法和系統(tǒng)的固件或甚至適當(dāng)設(shè)計的硬件。
系統(tǒng)和方法的數(shù)據(jù)(例如,關(guān)聯(lián)、映射、數(shù)據(jù)輸入、數(shù)據(jù)輸出、中間數(shù)據(jù)結(jié)果、最終數(shù)據(jù)結(jié)果等)可存儲和實施于一或多個不同類型的計算機(jī)實施數(shù)據(jù)存儲裝置中,例如不同類型的存儲裝置和編程構(gòu)造(例如,RAM、ROM、快閃存儲器、可移動存儲器、平面文件、暫時存儲器、數(shù)據(jù)庫、編程數(shù)據(jù)結(jié)構(gòu)、編程變量、IF-THEN(或類似類型)語句構(gòu)造等)。應(yīng)注意,數(shù)據(jù)結(jié)構(gòu)可描述用于在數(shù)據(jù)庫、程序、存儲器或由計算機(jī)程序使用的其它計算機(jī)可讀媒體中組織和存儲數(shù)據(jù)的格式。
計算機(jī)程序(也被稱作程序、軟件、軟件應(yīng)用程序、腳本或代碼)可以任何形式的編程語言編寫,包含經(jīng)編譯或解譯語言;且其可以任何形式部署,包含作為獨立程序或作為適合于在計算環(huán)境中使用的模塊、組件、子例程或其它單元。計算機(jī)程序不一定與文件系統(tǒng)中的文件相對應(yīng)。程序可存儲在保持其它程序或數(shù)據(jù)(例如,存儲在標(biāo)記語言文檔中的一或多個腳本)的文件的一部分中、專用于所討論程序的單個文件中,或多個經(jīng)協(xié)調(diào)文件(例如,存儲一或多個模塊、子程序或代碼的部分的文件)中。計算機(jī)程序可經(jīng)部署以在一個計算機(jī)上或在位于一個位點或跨越多個位點分布并由通信網(wǎng)絡(luò)互連的多個計算機(jī)上執(zhí)行。可通過一或多個可編程處理器執(zhí)行一或多個計算機(jī)程序以通過對輸入數(shù)據(jù)進(jìn)行操作和產(chǎn)生輸出而執(zhí)行功能來執(zhí)行本說明書中所描述和所展示的過程和邏輯流程和圖式。
一般來說,計算機(jī)還可包含用于存儲數(shù)據(jù)的一個或多個大容量存儲裝置,或以操作方式耦合以從所述大容量存儲裝置接收數(shù)據(jù)或向其傳送數(shù)據(jù)或進(jìn)行這兩種操作,所述大容量存儲裝置例如磁盤、磁光盤或光盤。然而,計算機(jī)無需具有此類裝置。此外,計算機(jī)可嵌入于另一裝置(例如,移動電話、個人數(shù)字助理(PDA)、平板計算機(jī)、移動查看裝置、移動音頻播放器、全球定位系統(tǒng)(GPS)接收器,僅列舉一些)中。適合于存儲計算機(jī)程序指令和數(shù)據(jù)的計算機(jī)可讀媒體包含所有形式的非易失性存儲器、媒體和存儲器裝置,包含例如:半導(dǎo)體存儲器裝置,例如EPROM、EEPROM和快閃存儲器裝置;磁盤,例如內(nèi)部硬盤或可移動的磁盤;磁光盤;以及CD ROM和DVD-ROM盤。處理器和存儲器可由專用邏輯電路補(bǔ)充或并入在專用邏輯電路中。
本文中所描述的計算機(jī)組件、軟件模塊、函數(shù)、數(shù)據(jù)存儲裝置和數(shù)據(jù)結(jié)構(gòu)可彼此直接或間接連接以便允許數(shù)據(jù)由于其操作所需而流動。還應(yīng)注意,模塊或處理器包含(但不限于)執(zhí)行軟件操作的代碼單元,且可例如實施作為代碼的子例程單元,或作為代碼的軟件功能單元,或作為對象(如在面向?qū)ο蟮姆妒奖碇?,或作為小程序,或?qū)嵤┯谟嬎銠C(jī)腳本語言中,或作為另一類型的計算機(jī)代碼。軟件組件或功能性可取決于迫切情況而位于單個計算機(jī)上或跨越多個計算機(jī)分布。
計算機(jī)可包含執(zhí)行對數(shù)字以及文字、圖形、符號和聲音的高速處理的可編程機(jī)器。計算機(jī)可處理、產(chǎn)生或轉(zhuǎn)換數(shù)據(jù)。計算機(jī)包含解譯和執(zhí)行指令的中央處理單元;輸入裝置,例如鍵盤、小鍵盤或鼠標(biāo),經(jīng)由所述輸入裝置將數(shù)據(jù)和命令輸入計算機(jī);使得計算機(jī)能夠存儲程序和數(shù)據(jù)的存儲器;以及輸出裝置,例如打印機(jī)和顯示屏,其展示計算機(jī)已處理、產(chǎn)生或轉(zhuǎn)換數(shù)據(jù)之后的結(jié)果。
本說明書中描述的標(biāo)的物和功能操作的實施方案可在數(shù)字電子電路中或在計算機(jī)軟件、固件或硬件(包含本說明書中揭示的結(jié)構(gòu)和其結(jié)構(gòu)等效物)中或在其中的一或多者的組合中實施。本說明書中所描述的標(biāo)的物的實施方案可實施為編碼于計算機(jī)可讀媒體上以由數(shù)據(jù)處理設(shè)備執(zhí)行或控制數(shù)據(jù)處理設(shè)備的操作的一或多個計算機(jī)程序產(chǎn)品(即,計算機(jī)程序指令的一或多個模塊)。計算機(jī)可讀媒體可為機(jī)器可讀存儲裝置、機(jī)器可讀存儲襯底、存儲器裝置、實現(xiàn)機(jī)器可讀傳播、處理通信的物質(zhì)的組合物或其中的一或多者的組合。術(shù)語“數(shù)據(jù)處理設(shè)備”涵蓋用于處理數(shù)據(jù)的所有設(shè)備、裝置和機(jī)器,作為舉例,包含可編程處理器、計算機(jī)或多個處理器或計算機(jī)。除硬件之外,設(shè)備還可包含產(chǎn)生用于所討論計算機(jī)程序的執(zhí)行環(huán)境的代碼,例如構(gòu)成處理器固件、協(xié)議堆棧、圖形系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)或其中的一或多者的組合的代碼。
上文所論述的方法、系統(tǒng)、裝置、實施方案和實施例為實例。各種配置可按需要省略、取代或添加各種程序或組件。舉例來說,在替代配置中,所述方法可以不同于所描述的順來執(zhí)行,或可添加、省略或組合各個階段。并且,可以各種其它配置組合關(guān)于某些配置所描述的特征??梢灶愃品绞浇M合配置的不同方面和元件。而且,技術(shù)發(fā)展,且因此,元件中的許多為實例且并不限制本發(fā)明或權(quán)利要求書的范圍。
一些系統(tǒng)可使用用于在分布式計算環(huán)境下存儲和分析大數(shù)據(jù)的開放源代碼框架。一些系統(tǒng)可使用云計算,其可實現(xiàn)對可在最少管理努力或服務(wù)提供商互動的情況下快速供應(yīng)和釋放的可配置計算資源(例如,網(wǎng)絡(luò)、服務(wù)器、存儲裝置、應(yīng)用程序和服務(wù))的共享池的廣泛、方便、按需網(wǎng)絡(luò)訪問。一些網(wǎng)格系統(tǒng)可實施為多節(jié)點集群,如所屬領(lǐng)域的技術(shù)人員所理解。ApacheTM為用于分布式計算的開放源代碼軟件框架。一些系統(tǒng)可使用 LASRTM分析服務(wù)器以便在高度交互式編程環(huán)境下遞送統(tǒng)計模型化和機(jī)器學(xué)習(xí)能力,此可使得多個用戶能夠同時管理數(shù)據(jù)、轉(zhuǎn)換變量、執(zhí)行探索性分析、構(gòu)建和比較模型和分?jǐn)?shù)。一些系統(tǒng)可使用的SAS存儲器內(nèi)統(tǒng)計數(shù)據(jù)以讀取大數(shù)據(jù)一次且通過在整個會話中使其存留在存儲器內(nèi)而分析其若干次。一些系統(tǒng)可使用若干其它類型的系統(tǒng)或服務(wù)器(包含本文中所提到的那些系統(tǒng)和服務(wù)器)的組合。
在描述中給出特定細(xì)節(jié)以提供對配置(其包含實施方案)的實例的透徹理解。然而,可在無這些特定細(xì)節(jié)的情況下實踐配置。舉例來說,已在無不必要細(xì)節(jié)的情況下展示眾所周知的電路、過程、算法、結(jié)構(gòu)和技術(shù)以免混淆配置。此描述僅提供實例配置,且并不限制權(quán)利要求書的范圍、適用性或配置。確切地說,配置的先前描述將向所屬領(lǐng)域的技術(shù)人員提供用于實施所描述技術(shù)的啟發(fā)性描述。在不脫離本發(fā)明的精神或范圍的情況下可對元件的功能和布置作出各種改變。
并且,可將配置描述為描繪為流程圖或框圖的過程。盡管每一流程圖或框圖可將操作描述為順序過程,但許多操作可并行地或同時執(zhí)行。此外,可以重新布置操作的次序。過程可以具有不包含在圖中的額外步驟。此外,可通過硬件、軟件、固件、中間件、微碼、硬件描述語言或其任何組合實施所述方法的實例。當(dāng)以軟件、固件、中間件或微碼實施時,用以執(zhí)行必要任務(wù)的程序代碼或代碼段可存儲在例如存儲媒體等非暫時性計算機(jī)可讀媒體中。處理器可執(zhí)行所描述的任務(wù)。
在已描述若干實例配置的情況下,可在不脫離本發(fā)明的精神的情況下使用各種修改、替代構(gòu)造和等效物。舉例來說,上述元件可為較大系統(tǒng)的組件,其中其它規(guī)則可優(yōu)先于本發(fā)明的應(yīng)用或以其它方式修改本發(fā)明的應(yīng)用。并且,可在考慮上述元件之前、期間或之后進(jìn)行多個操作。因此,以上描述并不約束權(quán)利要求書的范圍。
本文中“能夠”、“經(jīng)調(diào)適以”或“經(jīng)配置以”的使用打算是開放且包含性語言,其不將經(jīng)調(diào)適以或經(jīng)配置以執(zhí)行額外任務(wù)或步驟的裝置排除之外。另外,“基于”的使用打算是開放且包含性的,原因在于“基于”一或多個所列舉的條件或值的過程、步驟、計算或其它動作可實際上基于超出那些所列舉的內(nèi)容的額外條件或值。本文中包含的標(biāo)題、列表和編號僅是為了易于解釋且不打算具有限制性。
應(yīng)理解,除非上下文另外明確規(guī)定,否則如在本文中的描述中以及貫穿所附的權(quán)利要求書所使用,“一(a/an)”和“所述(the)”的含義包含多個參考。并且,除非上下文另外明確規(guī)定,否則如在本文中的描述中以及貫穿所附的權(quán)利要求書所使用,“在……中(in)”的含義包含“在……中(in)”和“在……上(on)”。最后,除非上下文另外明確規(guī)定,否則如在本文中的描述中和貫穿所附權(quán)利要求書所使用,“和(and)”和“或(or)”的含義包含結(jié)合性和分離性兩者且可互換使用;詞組“異或(exclusive or)”可用于指示僅分離性含義可應(yīng)用的情形。
盡管已關(guān)于本發(fā)明的特定實施例詳細(xì)地描述了本發(fā)明的標(biāo)的物,但將了解,所屬領(lǐng)域的技術(shù)人員在理解前述內(nèi)容之后可即刻容易產(chǎn)生對此類實施例的更改、變化和等效物。因此,應(yīng)理解,已出于實例而非限制的目的呈現(xiàn)本發(fā)明,且如所屬領(lǐng)域的技術(shù)人員可易于顯而易見,本發(fā)明不排除包含對本發(fā)明的標(biāo)的物的所述修改、變化或添加。
盡管本發(fā)明可含有許多特性,但這些特性不應(yīng)理解為限制范圍或可能主張的內(nèi)容,而是應(yīng)理解為對特定于特定實施方案的特征的描述。在本說明書中在單獨實施方案的上下文中描述的某些特征還可在單個實施方案中組合地實施。相反地,在單個實施方案的上下文中描述的各種特征還可單獨地在多個實施方案中實施或以任何合適的子組合形式實施。此外,盡管上文可將特征描述為以某些組合形式起作用且甚至最初如此主張,但在一些狀況下,可將來自所主張的組合的一或多個特征從組合刪除,并且所主張的組合可針對子組合或子組合的變化。
類似地,盡管在圖式中按特定次序描繪操作,但此情形不應(yīng)被理解為要求按所示的特定次序或按順序次序執(zhí)行此類操作,或執(zhí)行所有所說明的操作,以實現(xiàn)所要結(jié)果。在某些情形下,多任務(wù)處理和并行處理可能是有利的。此外,上文所描述的實施方案中的各種系統(tǒng)組件的分離不應(yīng)被理解為在所有實施方案中要求此分離,且應(yīng)理解,所描述的程序組件和系統(tǒng)一般可一起集成在單個軟件產(chǎn)品或硬件產(chǎn)品中或封裝到多個軟件產(chǎn)品或硬件產(chǎn)品中。