一種進程遷移方法和裝置制造方法
【專利摘要】本發(fā)明實施例涉及計算機【技術(shù)領(lǐng)域】。本發(fā)明實施例提供一種進程遷移方法,包括:第一節(jié)點暫停運行進程,得到所述進程的第一運行中間結(jié)果;所述第一節(jié)點將所述第一運行中間結(jié)果發(fā)送給第二節(jié)點,進行所述進程的第一次遷移;所述第二節(jié)點根據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。利用本發(fā)明實施例提供的進程遷移方法,可以減少進程運行速度對計算節(jié)點的依賴性,且有利于提升進程運行速度。此外,本發(fā)明實施例還提供相應(yīng)的進程遷移裝置、進行管理方法、進程管理裝置和通信系統(tǒng)。
【專利說明】-種進程遷移方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,尤其涉及一種進程遷移方法和裝置。
【背景技術(shù)】
[0002] 隨著計算機技術(shù)的飛速發(fā)展,越來越多的公司和研究機構(gòu)開始關(guān)注在云計算環(huán)境 下對大規(guī)模數(shù)據(jù)集的并行計算,Google在2004年發(fā)表的MapRe化Ce編程模型,極大地方便 了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統(tǒng)上。
[0003] 在傳統(tǒng)的MapRe化Ce框架中任務(wù)執(zhí)行流程如下;在計算節(jié)點上運行映射進程 Ma卵er或者歸約進程Re化cer,用W從存儲節(jié)點加載原始數(shù)據(jù)并對該原始數(shù)據(jù)進行處理, 得到處理結(jié)果;將處理結(jié)果回寫到存儲節(jié)點。由于現(xiàn)有技術(shù)中該種方案的缺陷在于進程運 行速度受計算節(jié)點計算能力的限制。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種進程遷移方法和裝置,用于減少計算節(jié)點的計算能力對進程運行 速度的限制,在一定程度上提高進程的運行速度。
[0005] 第一方面,本發(fā)明實施例提供一種進程遷移方法,該方法包括:
[0006] 第一節(jié)點暫停運行進程,得到所述進程的第一運行中間結(jié)果,所述第一節(jié)點為N 個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中的一個節(jié)點,所述N為大于或者等于1的整數(shù),所述N個存儲 數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計算節(jié)點之間通信連接,所 述進程為映射進程Maper或歸約進程Re化cer ;
[0007] 所述第一節(jié)點將所述第一運行中間結(jié)果發(fā)送給第二節(jié)點,進行所述進程的第一次 遷移,所述第二節(jié)點為所述第一節(jié)點將所述進程的運行中間結(jié)果發(fā)送給所述第二節(jié)點時,N 個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中計算能力最強的節(jié)點,所述第二節(jié)點和所述第一節(jié)點是不相 同的節(jié)點;
[0008] 所述第二節(jié)點根據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。
[0009] 結(jié)合第一方面,在第一方面的第一種實施方式下,所述方法還包括:
[0010] 所述第二節(jié)點暫停運行所述進程,得到所述進程的第二運行中間結(jié)果;
[0011] 所述第二節(jié)點將所述第二運行中間結(jié)果發(fā)送給第H節(jié)點,進行所述進程的第二次 遷移,所述第二次遷移和所述第一次遷移之間的時間間隔為T,所述T大于或者等于1砂且 小于或者等于180砂;
[0012] 所述第H節(jié)點根據(jù)所述第二運行中間結(jié)果,恢復(fù)運行所述進程。
[0013] 第二方面,本發(fā)明實施例提供一種進程遷移系統(tǒng),包括第一節(jié)點和第二節(jié)點,其 中:
[0014] 所述第一節(jié)點用于暫停運行進程,得到所述進程的第一運行中間結(jié)果,所述第一 節(jié)點為N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中的一個節(jié)點,所述N為大于或者等于1的整數(shù),所述 N個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計算節(jié)點之間通信 連接,所述進程為映射進程Maper或歸約進程Re化cer ;
[0015] 所述第一節(jié)點還用于將所述第一運行中間結(jié)果發(fā)送給所述第二節(jié)點,進行所述進 程的第一次遷移,所述第二節(jié)點為所述第一節(jié)點將所述進程的運行中間結(jié)果發(fā)送給所述第 二節(jié)點時,N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中計算能力最強的節(jié)點,所述第二節(jié)點和所述第一 節(jié)點是不相同的節(jié)點;
[0016] 所述第二節(jié)點用于根據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。
[0017] 結(jié)合第二方面,在第二方面的第一種實施方式下,所述進程遷移系統(tǒng)還包括第H 節(jié)點:
[0018] 所述第二節(jié)點還用于暫停運行所述進程,得到所述進程的第二運行中間結(jié)果;W 及,將所述第二運行中間結(jié)果發(fā)送給第H節(jié)點,進行所述進程的第二次遷移,所述第二次遷 移和所述第一次遷移之間的時間間隔為T,所述T大于或者等于1砂且小于或者等于180 砂;
[0019] 所述第H節(jié)點用于根據(jù)所述第二運行中間結(jié)果,恢復(fù)運行所述進程。
[0020] 第H方面,本發(fā)明實施例提供一種進程管理方法,該方法包括:
[0021] 從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中選擇出計算能力最強的第二節(jié)點,所述N為大 于或者等于1的整數(shù),所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點均用于存儲數(shù)據(jù)信息,所 述N個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計算節(jié)點之間通 信連接,所述進程為映射進程Maper或歸約進程Re化cer ;
[0022] 在所述第二節(jié)點和第一節(jié)點不相同時,向所述第一節(jié)點發(fā)送第一暫停指令,用于 指示所述第一節(jié)點暫停運行進程,得到所述進程的第一運行中間結(jié)果,W及將所述第一運 行中間結(jié)果發(fā)送所述第二節(jié)點,所述第一節(jié)點為所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中 的一個節(jié)點;
[0023] 向所述第二節(jié)點發(fā)送第一恢復(fù)指令,用于指示所述第二節(jié)點根據(jù)所述第一運行中 間結(jié)果,恢復(fù)運行所述進程。
[0024] 結(jié)合第H方面,在第H方面的第一種實施方式下,所述方法還包括:
[0025] 從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最強的第H節(jié)點,所 述選擇出計算能力最強的第H節(jié)點和所述選擇出計算能力最強的第二節(jié)點之間的時間間 隔為T,所述T大于或者等于1砂且小于或者等于180砂;
[0026] 在所述第H節(jié)點和所述第二節(jié)點不相同時,向所述第二節(jié)點發(fā)送第二暫停指令, 用于指示所述第二節(jié)點暫停運行所述進程,得到所述進程的第二運行中間結(jié)果,W及將所 述第二運行中間結(jié)果發(fā)送所述第H節(jié)點;
[0027] 向所述第H節(jié)點發(fā)送第二恢復(fù)指令,用于指示所述第H節(jié)點恢復(fù)運行所述進程。
[0028] 結(jié)合第H方面或第H方面的第一種實施方式,在第H方面的第二種實施方式下, 所述從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中選擇出計算能力最強的第二節(jié)點,具體包括:
[0029] 獲取所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kti(x),X取 [1,閑范圍內(nèi)的整數(shù);
[0030] 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力Pj.i和所述計算 節(jié)點的剩余計算能力kji ;
[003。 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj,和所述計算節(jié)點的剩余計算能力kj,確定所述計算 節(jié)點的可用計算能力mji,
[0032] 根據(jù)所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kti (X)和所述計 算節(jié)點的可用計算能力nij,,從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最 強的所述第二節(jié)點。
[0033] 結(jié)合第H方面或第H方面的第一種實施方式,在第H方面的第H種實施方式下, 所述從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中選擇出計算能力最強的第二節(jié)點,具體包括:
[0034] 獲取代表存儲數(shù)據(jù)節(jié)點的剩余計算能力kti,d,所述代表存儲數(shù)據(jù)節(jié)點是指所述N 個存儲數(shù)據(jù)節(jié)點中剩余計算能力最大的存儲數(shù)據(jù)節(jié)點;
[0035] 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力Pj.i和所述計算 節(jié)點的剩余計算能力kji ;
[0036] 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj,和所述計算節(jié)點的剩余計算能力kj,確定所述計算 節(jié)點的可用計算能力IHji ;
[0037] 根據(jù)所述代表存儲數(shù)據(jù)節(jié)點的剩余計算能力和所述計算節(jié)點的可用計算能 力nij.i,從所述代表存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力較強的所述第二節(jié)點。
[0038] 結(jié)合第H方面的第一種實施方式至第H方面的第H種實施方式中任意一種實施 方式,在第H方面的第四種實施方式下,所述從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中 選擇出計算能力最強的第H節(jié)點,具體包括:
[0039] 獲取所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kt2(x),X取 [1,閑范圍內(nèi)的整數(shù);
[0040] 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力Pj.2和所述計算 節(jié)點的剩余計算能力kj2 ;
[0041] 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj.2和所述計算節(jié)點的剩余計算能力kj.2確定所述計算 節(jié)點的可用計算能力mj2,
[0042] 根據(jù)所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力k。, (X)和所述計 算節(jié)點的可用計算能力1?,從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最 強的所述第H節(jié)點。
[0043] 結(jié)合第H方面的第一種實施方式至第H方面的第H種實施方式中任意一種實施 方式,在第H方面的第五種實施方式下,所述從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中 選擇出計算能力最強的第H節(jié)點,具體包括:
[0044] 獲取代表存儲數(shù)據(jù)節(jié)點的剩余計算能力kt2,d,所述代表存儲數(shù)據(jù)節(jié)點是指所述N 個存儲數(shù)據(jù)節(jié)點中剩余計算能力最大的存儲數(shù)據(jù)節(jié)點;
[0045] 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力Pj.2和所述計算 節(jié)點的剩余計算能力kj2 ;
[0046] 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj.2和所述計算節(jié)點的剩余計算能力kj.2確定所述計算 節(jié)點的可用計算能力;
[0047] 根據(jù)所述代表存儲數(shù)據(jù)節(jié)點的剩余計算能力kt2,d和所述計算節(jié)點的可用計算能 力1?,從所述代表存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力較強的所述第H節(jié)點。
[0048] 第四方面,本發(fā)明實施例提供一種進程管理裝置,包括:
[0049] 選擇單元,用于從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中選擇出計算能力最強的第二節(jié) 點,所述N為大于或者等于I的整數(shù),所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點均用于存 儲數(shù)據(jù)信息,所述N個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述 計算節(jié)點之間通信連接,所述進程為映射進程Maper或歸約進程Re化cer ;
[0050] 在所述第二節(jié)點和第一節(jié)點不相同時,
[0051] 暫停指令發(fā)送單元,用于向所述第一節(jié)點發(fā)送第一暫停指令,W指示所述第一節(jié) 點暫停運行進程,得到所述進程的第一運行中間結(jié)果,W及將所述第一運行中間結(jié)果發(fā)送 所述第二節(jié)點,所述第一節(jié)點為所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中的一個節(jié)點;
[0052] 恢復(fù)指令發(fā)送單元,用于向所述第二節(jié)點發(fā)送第一恢復(fù)指令,W指示所述第二節(jié) 點根據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。
[0053] 結(jié)合第四方面,在第四方面的第一種實施方式下,所述選擇單元還用于從所述N 個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最強的第H節(jié)點,所述選擇出計算能力 最強的第H節(jié)點和所述選擇出計算能力最強的第二節(jié)點之間的時間間隔為T,所述T大于 或者等于1砂且小于或者等于180砂;
[0054] 在所述第H節(jié)點和所述第二節(jié)點不相同時,
[00巧]所述暫停指令發(fā)送單元還用于向所述第二節(jié)點發(fā)送第二暫停指令,W指示所述第 二節(jié)點暫停運行所述進程,得到所述進程的第二運行中間結(jié)果,W及將所述第二運行中間 結(jié)果發(fā)送所述第H節(jié)點;
[0056] 所述恢復(fù)指令發(fā)送單元還用于向所述第H節(jié)點發(fā)送第二恢復(fù)指令,W指示所述第 H節(jié)點恢復(fù)運行所述進程。
[0057] 結(jié)合第四方面或第四方面的第一種實施方式,在第四方面的第二種實施方式下,
[0058] 所述選擇單元具體用于:
[0059] 獲取所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kti(x),X取 [1,閑范圍內(nèi)的整數(shù);
[0060] 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力Pj.i和所述計算 節(jié)點的剩余計算能力kjl;
[006。 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj,和所述計算節(jié)點的剩余計算能力kj,確定所述計算 節(jié)點的可用計算能力mji,
[0062] 根據(jù)所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kti (X)和所述計 算節(jié)點的可用計算能力nij,,從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最 強的所述第二節(jié)點。
[0063] 結(jié)合第四方面或第四方面的第一種實施方式,在第四方面的第H種實施方式下,
[0064] 所述選擇單元具體用于:
[0065] 獲取代表存儲數(shù)據(jù)節(jié)點的剩余計算能力kti,d,所述代表存儲數(shù)據(jù)節(jié)點是指所述N 個存儲數(shù)據(jù)節(jié)點中剩余計算能力最大的存儲數(shù)據(jù)節(jié)點;
[0066] 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力Pj.i和所述計算 節(jié)點的剩余計算能力kji ;
[0067] 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj,和所述計算節(jié)點的剩余計算能力kj,確定所述計算 節(jié)點的可用計算能力IHji ;
[0068] 根據(jù)所述代表存儲數(shù)據(jù)節(jié)點的剩余計算能力和所述計算節(jié)點的可用計算能 力nij.i,從所述代表存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力較強的所述第二節(jié)點。
[0069] 結(jié)合第四方面的第一種實施方式至第四方面的第H種實施方式中任意一種實施 方式,在第四方面的第四種實施方式下,
[0070] 所述選擇單元具體用于:
[0071] 獲取所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kt2(x),X取 [1,閑范圍內(nèi)的整數(shù);
[0072] 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力Pj.2和所述計算 節(jié)點的剩余計算能力kj2 ;
[0073] 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj.2和所述計算節(jié)點的剩余計算能力kj.2確定所述計算 節(jié)點的可用計算能力1?,
[0074] 根據(jù)所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力k。, (X)和所述計 算節(jié)點的可用計算能力1?,從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最 強的所述第H節(jié)點。
[0075] 結(jié)合第四方面的第一種實施方式至第四方面的第H種實施方式中任意一種實施 方式,在第四方面的第五種實施方式下,
[0076] 所述選擇單元具體用于:
[0077] 獲取代表存儲數(shù)據(jù)節(jié)點的剩余計算能力kt2,d,所述代表存儲數(shù)據(jù)節(jié)點是指所述N 個存儲數(shù)據(jù)節(jié)點中剩余計算能力最大的存儲數(shù)據(jù)節(jié)點;
[0078] 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力Pj.2和所述計算 節(jié)點的剩余計算能力kj2 ;
[0079] 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj.2和所述計算節(jié)點的剩余計算能力kj.2確定所述計算 節(jié)點的可用計算能力1? ;
[0080] 根據(jù)所述代表存儲數(shù)據(jù)節(jié)點的剩余計算能力kt2,d和所述計算節(jié)點的可用計算能 力1?,從所述代表存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力較強的所述第H節(jié)點。
[0081] 第五方面,本發(fā)明實施例還提供一種通信系統(tǒng),所述通信系統(tǒng)包括第四方面或者 第四方面的第一種實施方式至第四方面的第五種實施方式中任意一種實施方式所述的進 程管理裝置、第一節(jié)點和第二節(jié)點,其中:
[0082] 所述進程管理裝置用于從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中選擇出計算能力最強 的第二節(jié)點,所述N為大于或者等于1的整數(shù),所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點 均用于存儲數(shù)據(jù)信息,所述N個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié) 點和所述計算節(jié)點之間通信連接,所述進程為映射進程Maper或歸約進程Re化cer ;
[0083] 在所述第二節(jié)點和第一節(jié)點不相同時,所述進程管理裝置還用于向所述第一節(jié)點 發(fā)送第一暫停指令;
[0084] 所述第一節(jié)點用于根據(jù)所述第一暫停指令暫停運行進程,得到所述進程的第一運 行中間結(jié)果,并將所述第一運行中間結(jié)果發(fā)送所述第二節(jié)點,所述第一節(jié)點為所述N個存 儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中的一個節(jié)點;
[0085] 所述進程管理裝置還用于向所述第二節(jié)點發(fā)送第一恢復(fù)指令;
[0086] 所述第二節(jié)點用于根據(jù)所述第一恢復(fù)指令對所述第一運行中間結(jié)果進行恢復(fù)處 理,W恢復(fù)運行所述進程。
[0087] 結(jié)合第五方面,在第五方面的第一種實施方式下,還包括第H節(jié)點:
[0088] 所述進程管理裝置還用于從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計 算能力最強的第H節(jié)點,所述選擇出計算能力最強的第H節(jié)點和所述選擇出計算能力最強 的第二節(jié)點之間的時間間隔為T,所述T大于或者等于1砂且小于或者等于180砂;
[0089] 在所述第H節(jié)點和所述第二節(jié)點不相同時,
[0090] 所述進程管理裝置還用于向所述第二節(jié)點發(fā)送第二暫停指令;
[0091] 所述第二節(jié)點用于根據(jù)所述第二暫停指令暫停運行進程,得到所述進程的第二運 行中間結(jié)果,并將所述第二運行中間結(jié)果發(fā)送給所述第H節(jié)點;
[0092] 所述進程管理裝置還用于向所述第H節(jié)點發(fā)送第二恢復(fù)指令;
[0093] 所述第H節(jié)點用于根據(jù)所述第二恢復(fù)指令對所述第二運行中間結(jié)果進行恢復(fù)處 理,W恢復(fù)運行所述進程。
[0094] 采用本發(fā)明公開的進程管理方法,將進程從第一節(jié)點遷移到第二節(jié)點,其中該第 二節(jié)點是將該進程從第一節(jié)點遷移到第二節(jié)點時,N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中計算能 力最強的節(jié)點,然后在第二節(jié)點上繼續(xù)運行該進程。采用本發(fā)明實施例提供的技術(shù)方案,進 程并不限于一定要運行在某一節(jié)點(比如第一節(jié)點)上,如果第一節(jié)點的計算能力比第二 節(jié)點弱,且第二節(jié)點為N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中計算能力最強的節(jié)點,則將進程遷 移到該第二節(jié)點上運行。所W,使用本方案,相對于現(xiàn)有技術(shù)來說,可W減少進程運行速度 對計算節(jié)點的計算能力的依賴,并且由于該進程是被遷移到計算能力最強的節(jié)點上繼續(xù)運 行的,所W可在一定程度上提升該進程的運行速度。
【專利附圖】
【附圖說明】
[0095] 為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中 所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實 施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可W根據(jù)該些附圖 獲得其他的附圖。
[0096] 圖1為本發(fā)明的應(yīng)用場景的結(jié)構(gòu)示意圖;
[0097] 圖2為本發(fā)明實施例提供的一種進程遷移方法的流程示意圖;
[0098] 圖3為本發(fā)明實施例提供的一種進程遷移系統(tǒng)的結(jié)構(gòu)示意圖;
[0099] 圖4a為本發(fā)明實施例提供的一種進程管理方法的流程示意圖;
[0100] 圖4b為本發(fā)明實施例提供的另一種進程管理方法的流程示意圖;
[0101] 圖5為本發(fā)明實施例提供的一種進程管理裝置的結(jié)構(gòu)示意圖;
[0102] 圖6a為本發(fā)明實施例提供的一種通信系統(tǒng)的結(jié)構(gòu)示意圖;
[0103] 圖化為本發(fā)明實施例提供的另一種通信系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0104] 為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0105] 實施例一
[0106] 本發(fā)明的應(yīng)用場景如圖1所示,包括計算側(cè)和存儲側(cè),所述計算側(cè)包括計算節(jié)點; 所述存儲側(cè)包括一個存儲服務(wù)節(jié)點和N個存儲數(shù)據(jù)節(jié)點,其中,N > 1且N為整數(shù),所述N個 存儲數(shù)據(jù)節(jié)點包括存儲數(shù)據(jù)節(jié)點1、存儲數(shù)據(jù)節(jié)點2、…….、存儲數(shù)據(jù)節(jié)點n。所述存儲服 務(wù)節(jié)點負(fù)責(zé)統(tǒng)計所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的數(shù)據(jù)并將該數(shù)據(jù)進行匯總, W及負(fù)責(zé)處理進程在所述N個存儲數(shù)據(jù)節(jié)點之間的調(diào)度放置。
[0107] MapRe化Ce是Google提出的一個軟件架構(gòu),用于大規(guī)模數(shù)據(jù)集(大于1TB)的并 行運算。當(dāng)前的軟件實現(xiàn)是指定一個Map (映射)函數(shù),用來把一組鍵值對映射成一組新的 鍵值對,指定并發(fā)的Re化Ce (化簡)函數(shù),用來保證所有映射的鍵值對中的每一個共享相同 的鍵組。所W說,MapRe化Ce編程模型包括兩個進程,分別是映射進程Ma卵er和歸約進程 Reducer,下面W運行映射進程Ma卵er為例說明本發(fā)明實施例提供的技術(shù)方案。
[010引結(jié)合圖1所示的應(yīng)用場景并參閱附圖2,本發(fā)明實施例提供的一種進程遷移方法 執(zhí)行步驟如下:
[0109] S201、第一節(jié)點暫停運行進程,得到所述進程的第一運行中間結(jié)果,所述第一節(jié)點 為N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中的一個節(jié)點,所述N為大于或者等于1的整數(shù),所述N 個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計算節(jié)點之間通信連 接,所述進程為映射進程Maper或歸約進程Re化cer ;
[0110] 應(yīng)當(dāng)理解的是,所述第一節(jié)點為所述N個數(shù)據(jù)節(jié)點和所述計算節(jié)點中的一個節(jié) 點,是指該第一節(jié)點可W為計算節(jié)點,也可W為N個數(shù)據(jù)節(jié)點中的其中一個。
[0111] 所述第一節(jié)點暫停運行進程,得到所述進程的第一運行中間結(jié)果,具體是指所述 第一節(jié)點暫停運行進程,并將所述進程的運行狀態(tài)進行持久化處理,得到所述進程的第一 運行中間結(jié)果。
[0112] S203、所述第一節(jié)點將所述第一運行中間結(jié)果發(fā)送給第二節(jié)點,進行所述進程的 第一次遷移,所述第二節(jié)點為所述第一節(jié)點將所述進程的運行中間結(jié)果發(fā)送給所述第二節(jié) 點時,N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中計算能力最強的節(jié)點,所述第二節(jié)點和所述第一節(jié)點 是不相同的節(jié)點;
[0113] 應(yīng)當(dāng)理解的是,所述第二節(jié)點也可W是計算節(jié)點,或者是N個數(shù)據(jù)節(jié)點中的其中 一個。其中,第一節(jié)點和第二節(jié)點是不同的節(jié)點,因為如果第一節(jié)點和第二節(jié)點為相同的節(jié) 點,則就不涉及將進程從第一節(jié)點遷移到第二節(jié)點的問題了。
[0114] S205、所述第二節(jié)點根據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。
[0115] 應(yīng)當(dāng)知道的是,通過上述步驟S201、S203和S205,實現(xiàn)將進程從第一節(jié)點遷移到 第二節(jié)點。
[0116] S206、所述第二節(jié)點暫停運行所述進程,得到所述進程的第二運行中間結(jié)果;
[0117] S207、所述第二節(jié)點將所述第二運行中間結(jié)果發(fā)送給第H節(jié)點,進行所述進程的 第二次遷移,所述第二次遷移和所述第一次遷移之間的時間間隔為T,所述T大于或者等于 1砂且小于或者等于180砂;
[0118] 應(yīng)當(dāng)理解的是,第H節(jié)點可W是計算節(jié)點,或者是N個數(shù)據(jù)節(jié)點中的其中一個,第 H節(jié)點雖然和第二節(jié)點是不相同的節(jié)點,因為若第H節(jié)點和第二節(jié)點為同一節(jié)點,就不會 涉及到進程遷移的問題了。但是第H節(jié)點和第一節(jié)點可W是相同的節(jié)點。
[0119] 優(yōu)選的,所述第二次遷移和所述第一次遷移之間的時間間隔為T,取決于所述第二 節(jié)點的中央處理器CPU的使用率和所述第二節(jié)點的內(nèi)存使用率,具體的,所述時間間隔為T 的設(shè)置要遵循下述原則:
[0120] 時間間隔T (秒)|CPU使用率 I內(nèi)存使用率 1 <50% <70% 5 <70% <80% 20 <80% <85% 60 <90% <90% 180 >90% >90%
[012。 需要說明的是,所述時間間隔T的設(shè)置也可W是固定不變的,比如,所述時間間隔 T固定的為5s ;也可W是沒有任何規(guī)則的變化的,總么只要滿足Is《T《180s即可。
[0122] S208、所述第H節(jié)點根據(jù)所述第二運行中間結(jié)果,恢復(fù)運行所述進程。
[0123] 應(yīng)當(dāng)知道的是,通過步驟S206、S207和S208,實現(xiàn)將進程從第二節(jié)點遷移到第H 節(jié)點。
[0124] 值得注意的是,在所述進程運行的整個過程中,可W僅僅涉及到從第一節(jié)點遷移 到第二節(jié)點和從第二節(jié)點遷移到第H節(jié)點的兩次遷移,也可W涉及3次、4次等多次遷移, 本發(fā)明實施例對此不做限制性規(guī)定,不管所述進程在其運行的整個過程中遷移了多少次, 遵循的原理都是一致的,都是遷移到在該遷移動作發(fā)生時,所述N個存儲數(shù)據(jù)節(jié)點和所述 計算節(jié)點中計算能力最強的節(jié)點。
[01巧]需要說明的是,為了進一步提高所述進程的運行速度,該進程開始運行時,就是運 行在該進程開始運行時所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中計算能力最強的節(jié)點。
[0126] 可知,本發(fā)明實施例提供的進程遷移方法,包括:將進程從第一節(jié)點遷移到第二節(jié) 點,并在第二節(jié)點上繼續(xù)運行。從而相對于現(xiàn)有技術(shù)提供的方案中進程固定的運行在計算 節(jié)點上來說,本發(fā)明實施例提供的進程遷移方法,減少進程運行速度對計算節(jié)點的計算能 力的依賴;再者,該第二節(jié)點為將進程從第一節(jié)點遷移到第二節(jié)點時,N個存儲數(shù)據(jù)節(jié)點和 計算節(jié)點中計算能力最強的節(jié)點,所W,將進程從第一節(jié)點遷移到第二節(jié)點將會提升高該 進程的運行速度。
[0127] 所W,使用本方案,相對于現(xiàn)有技術(shù)來說,可W減少進程運行速度對計算節(jié)點的計 算能力的依賴,并且由于該進程是被遷移到計算能力最強的節(jié)點上繼續(xù)運行的,所W可在 一定程度上提升該進行的運行速度。
[012引 實施例二
[0129] 參閱附圖3,為本發(fā)明實施例提供的一種進程遷移系統(tǒng),實施例一所述的進程遷移 方法可W用在本實施例提供的進程遷移系統(tǒng)中。且本發(fā)明實施例所述的進程遷移系統(tǒng)可W 融合在圖1所述的應(yīng)用場景圖中。
[0130] 具體的,參閱附圖3,可知本發(fā)明實施例提供的進程遷移系統(tǒng)包括第一節(jié)點31和 第二節(jié)點32,具體的:
[0131] 所述第一節(jié)點31用于暫停運行進程,得到所述進程的第一運行中間結(jié)果,所述第 一節(jié)點31為N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中的一個節(jié)點,所述N為大于或者等于1的整數(shù), 所述N個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計算節(jié)點之間 通信連接,所述進程為映射進程Maper或歸約進程Re化cer ;
[0132] 應(yīng)當(dāng)理解的是,第一節(jié)點31為所述N個數(shù)據(jù)節(jié)點和所述計算節(jié)點中的一個節(jié)點, 是指該第一節(jié)點31可W為計算節(jié)點,也可W為N個數(shù)據(jù)節(jié)點中的其中一個。
[0133] 第一節(jié)點31用于暫停運行進程,得到所述進程的第一運行中間結(jié)果,具體是指第 一節(jié)點31暫停運行進程,并將所述進程的運行狀態(tài)進行持久化處理,得到所述進程的第一 運行中間結(jié)果。
[0134] 所述第一節(jié)點31還用于將所述第一運行中間結(jié)果發(fā)送給所述第二節(jié)點32,進行 所述進程的第一次遷移,所述第二節(jié)點32為所述第一節(jié)點31將所述進程的運行中間結(jié)果 發(fā)送給所述第二節(jié)點32時,N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中計算能力最強的節(jié)點,所述第 二節(jié)點32和所述第一節(jié)點31是不相同的節(jié)點;
[0135] 應(yīng)當(dāng)理解的是,第二節(jié)點32也可W是計算節(jié)點,或者是N個數(shù)據(jù)節(jié)點中的其中一 個。其中,第一節(jié)點31和第二節(jié)點32是不同的節(jié)點,因為如果第一節(jié)點31和第二節(jié)點32 為相同的節(jié)點,則就不涉及將進程從第一節(jié)點31遷移到第二節(jié)點32的問題了。
[0136] 所述第二節(jié)點32用于根據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。
[0137] 應(yīng)當(dāng)理解的是,第二節(jié)點32恢復(fù)運行所述進程,即是指所述進程從第一節(jié)點31遷 移到第二節(jié)點32上。
[013引作為本發(fā)明的另一個實施例,參閱附圖3,所述進程遷移系統(tǒng)還包括第H節(jié)點33 :
[0139] 所述第二節(jié)點32還用于暫停運行所述進程,得到所述進程的第二運行中間結(jié)果; W及,將所述第二運行中間結(jié)果發(fā)送給第H節(jié)點33,進行所述進程的第二次遷移,所述第二 次遷移和所述第一次遷移之間的時間間隔為T,所述T大于或者等于1砂且小于或者等于 180 砂;
[0140] 應(yīng)當(dāng)理解的是,第H節(jié)點33可W是計算節(jié)點,或者是N個數(shù)據(jù)節(jié)點中的其中一個, 第H節(jié)點33雖然和第二節(jié)點32是不相同的節(jié)點,因為若第H節(jié)點33和第二節(jié)點32為同 一節(jié)點,就不會涉及到進程遷移的問題了。但是第H節(jié)點33和第一節(jié)點31可W是相同的 節(jié)點。
[0141] 優(yōu)選的,所述第二次遷移和所述第一次遷移之間的時間間隔為T,取決于所述第二 節(jié)點的中央處理器CPU的使用率和所述第二節(jié)點的內(nèi)存使用率,具體的,所述時間間隔為T 的設(shè)置要遵循下述原則:
[0142]
【權(quán)利要求】
1. 一種進程遷移方法,其特征在于,包括: 第一節(jié)點暫停運行進程,得到所述進程的第一運行中間結(jié)果,所述第一節(jié)點為N個存 儲數(shù)據(jù)節(jié)點和計算節(jié)點中的一個節(jié)點,所述N為大于或者等于1的整數(shù),所述N個存儲數(shù)據(jù) 節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計算節(jié)點之間通信連接,所述進 程為映射進程Maper或歸約進程Reducer ; 所述第一節(jié)點將所述第一運行中間結(jié)果發(fā)送給第二節(jié)點,進行所述進程的第一次遷 移,所述第二節(jié)點為所述第一節(jié)點將所述進程的運行中間結(jié)果發(fā)送給所述第二節(jié)點時,N個 存儲數(shù)據(jù)節(jié)點和計算節(jié)點中計算能力最強的節(jié)點,所述第二節(jié)點和所述第一節(jié)點是不相同 的節(jié)點; 所述第二節(jié)點根據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 所述第二節(jié)點暫停運行所述進程,得到所述進程的第二運行中間結(jié)果; 所述第二節(jié)點將所述第二運行中間結(jié)果發(fā)送給第三節(jié)點,進行所述進程的第二次遷 移,所述第二次遷移和所述第一次遷移之間的時間間隔為T,所述T大于或者等于1秒且小 于或者等于180秒; 所述第三節(jié)點根據(jù)所述第二運行中間結(jié)果,恢復(fù)運行所述進程。
3. -種進程遷移系統(tǒng),其特征在于,包括第一節(jié)點和第二節(jié)點,其中: 所述第一節(jié)點用于暫停運行進程,得到所述進程的第一運行中間結(jié)果,所述第一節(jié)點 為N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中的一個節(jié)點,所述N為大于或者等于1的整數(shù),所述N 個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計算節(jié)點之間通信連 接,所述進程為映射進程Maper或歸約進程Reducer ; 所述第一節(jié)點還用于將所述第一運行中間結(jié)果發(fā)送給所述第二節(jié)點,進行所述進程的 第一次遷移,所述第二節(jié)點為所述第一節(jié)點將所述進程的運行中間結(jié)果發(fā)送給所述第二節(jié) 點時,N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中計算能力最強的節(jié)點,所述第二節(jié)點和所述第一節(jié)點 是不相同的節(jié)點; 所述第二節(jié)點用于根據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。
4. 根據(jù)權(quán)利要求3所述的進程遷移系統(tǒng),其特征在于,還包括第三節(jié)點: 所述第二節(jié)點還用于暫停運行所述進程,得到所述進程的第二運行中間結(jié)果;以及,將 所述第二運行中間結(jié)果發(fā)送給第三節(jié)點,進行所述進程的第二次遷移,所述第二次遷移和 所述第一次遷移之間的時間間隔為T,所述T大于或者等于1秒且小于或者等于180秒; 所述第三節(jié)點用于根據(jù)所述第二運行中間結(jié)果,恢復(fù)運行所述進程。
5. -種進程管理方法,其特征在于,所述方法包括: 從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中選擇出計算能力最強的第二節(jié)點,所述N為大于或 者等于1的整數(shù),所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點均用于存儲數(shù)據(jù)信息,所述N 個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計算節(jié)點之間通信連 接,所述進程為映射進程Maper或歸約進程Reducer ; 在所述第二節(jié)點和第一節(jié)點不相同時,向所述第一節(jié)點發(fā)送第一暫停指令,用于指示 所述第一節(jié)點暫停運行進程,得到所述進程的第一運行中間結(jié)果,以及將所述第一運行中 間結(jié)果發(fā)送所述第二節(jié)點,所述第一節(jié)點為所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中的一 個節(jié)點; 向所述第二節(jié)點發(fā)送第一恢復(fù)指令,用于指示所述第二節(jié)點根據(jù)所述第一運行中間結(jié) 果,恢復(fù)運行所述進程。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最強的第三節(jié)點,所述選 擇出計算能力最強的第三節(jié)點和所述選擇出計算能力最強的第二節(jié)點之間的時間間隔為 T,所述T大于或者等于1秒且小于或者等于180秒; 在所述第三節(jié)點和所述第二節(jié)點不相同時,向所述第二節(jié)點發(fā)送第二暫停指令,用于 指示所述第二節(jié)點暫停運行所述進程,得到所述進程的第二運行中間結(jié)果,以及將所述第 二運行中間結(jié)果發(fā)送所述第三節(jié)點; 向所述第三節(jié)點發(fā)送第二恢復(fù)指令,用于指示所述第三節(jié)點恢復(fù)運行所述進程。
7. 根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點 中選擇出計算能力最強的第二節(jié)點,具體包括: 獲取所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kuU),x取[1,N]范 圍內(nèi)的整數(shù); 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力和所述計算節(jié)點 的剩余計算能力kji ; 根據(jù)所述剩余數(shù)據(jù)傳輸能力和所述計算節(jié)點的剩余計算能力確定所述計算節(jié)點 的可用計算能力I%, 根據(jù)所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力L (x)和所述計算節(jié) 點的可用計算能力1?,從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最強的 所述第二節(jié)點。
8. 根據(jù)權(quán)利要求5或6所述的方法,其特征在于,所述從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點 中選擇出計算能力最強的第二節(jié)點,具體包括: 獲取代表存儲數(shù)據(jù)節(jié)點的剩余計算能力,所述代表存儲數(shù)據(jù)節(jié)點是指所述N個存 儲數(shù)據(jù)節(jié)點中剩余計算能力最大的存儲數(shù)據(jù)節(jié)點; 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力和所述計算節(jié)點 的剩余計算能力kji ; 根據(jù)所述剩余數(shù)據(jù)傳輸能力和所述計算節(jié)點的剩余計算能力確定所述計算節(jié)點 的可用計算能力1? ; 根據(jù)所述代表存儲數(shù)據(jù)節(jié)點的剩余計算能力和所述計算節(jié)點的可用計算能力niji, 從所述代表存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力較強的所述第二節(jié)點。
9. 根據(jù)權(quán)利要求6至8任一項所述的方法,其特征在于,所述從所述N個存儲數(shù)據(jù)節(jié)點 和所述計算節(jié)點中選擇出計算能力最強的第三節(jié)點,具體包括: 獲取所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kuU),x取[1,N]范 圍內(nèi)的整數(shù); 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力P#和所述計算節(jié)點 的剩余計算能力kj2 ; 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj2和所述計算節(jié)點的剩余計算能力kj2確定所述計算節(jié) 點的可用計算能力mj2, 根據(jù)所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kdU)和所述計算節(jié) 點的可用計算能力mj2,從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最強的 所述第三節(jié)點。
10. 根據(jù)權(quán)利要求6至8任一項所述的方法,其特征在于,所述從所述N個存儲數(shù)據(jù)節(jié) 點和所述計算節(jié)點中選擇出計算能力最強的第三節(jié)點,具體包括: 獲取代表存儲數(shù)據(jù)節(jié)點的剩余計算能力k。;^,所述代表存儲數(shù)據(jù)節(jié)點是指所述N個存 儲數(shù)據(jù)節(jié)點中剩余計算能力最大的存儲數(shù)據(jù)節(jié)點; 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力P#和所述計算節(jié)點 的剩余計算能力kj2 ; 根據(jù)所述剩余數(shù)據(jù)傳輸能力P#和所述計算節(jié)點的剩余計算能力1?確定所述計算節(jié)點 的可用計算能力mj2 ; 根據(jù)所述代表存儲數(shù)據(jù)節(jié)點的剩余計算能力k。;^和所述計算節(jié)點的可用計算能力mj2, 從所述代表存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力較強的所述第三節(jié)點。
11. 一種進程管理裝置,其特征在于,包括: 選擇單元,用于從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中選擇出計算能力最強的第二節(jié)點, 所述N為大于或者等于1的整數(shù),所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點均用于存儲 數(shù)據(jù)信息,所述N個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和所述計 算節(jié)點之間通信連接,所述進程為映射進程Maper或歸約進程Reducer ; 在所述第二節(jié)點和第一節(jié)點不相同時, 暫停指令發(fā)送單元,用于向所述第一節(jié)點發(fā)送第一暫停指令,以指示所述第一節(jié)點暫 停運行進程,得到所述進程的第一運行中間結(jié)果,以及將所述第一運行中間結(jié)果發(fā)送所述 第二節(jié)點,所述第一節(jié)點為所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中的一個節(jié)點; 恢復(fù)指令發(fā)送單元,用于向所述第二節(jié)點發(fā)送第一恢復(fù)指令,以指示所述第二節(jié)點根 據(jù)所述第一運行中間結(jié)果,恢復(fù)運行所述進程。
12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于: 所述選擇單元還用于從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最 強的第三節(jié)點,所述選擇出計算能力最強的第三節(jié)點和所述選擇出計算能力最強的第二節(jié) 點之間的時間間隔為T,所述T大于或者等于1秒且小于或者等于180秒; 在所述第三節(jié)點和所述第二節(jié)點不相同時, 所述暫停指令發(fā)送單元還用于向所述第二節(jié)點發(fā)送第二暫停指令,以指示所述第二節(jié) 點暫停運行所述進程,得到所述進程的第二運行中間結(jié)果,以及將所述第二運行中間結(jié)果 發(fā)送所述第三節(jié)點; 所述恢復(fù)指令發(fā)送單元還用于向所述第三節(jié)點發(fā)送第二恢復(fù)指令,以指示所述第三節(jié) 點恢復(fù)運行所述進程。
13. 根據(jù)權(quán)利要求11或12所述的裝置,其特征在于: 所述選擇單元具體用于: 獲取所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力LU),x取[1,N]范 圍內(nèi)的整數(shù); 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力和所述計算節(jié)點 的剩余計算能力kji ; 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pjl和所述計算節(jié)點的剩余計算能力確定所述計算節(jié) 點的可用計算能力I%, 根據(jù)所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力L (x)和所述計算節(jié) 點的可用計算能力1?,從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最強的 所述第二節(jié)點。
14. 根據(jù)權(quán)利要求11或12所述的裝置,其特征在于: 所述選擇單元具體用于: 獲取代表存儲數(shù)據(jù)節(jié)點的剩余計算能力,所述代表存儲數(shù)據(jù)節(jié)點是指所述N個存 儲數(shù)據(jù)節(jié)點中剩余計算能力最大的存儲數(shù)據(jù)節(jié)點; 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力和所述計算節(jié)點 的剩余計算能力kji ; 根據(jù)所述剩余數(shù)據(jù)傳輸能力和所述計算節(jié)點的剩余計算能力確定所述計算節(jié)點 的可用計算能力1? ; 根據(jù)所述代表存儲數(shù)據(jù)節(jié)點的剩余計算能力和所述計算節(jié)點的可用計算能力niji, 從所述代表存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力較強的所述第二節(jié)點。
15. 根據(jù)權(quán)利要求12至14任一項所述的裝置,其特征在于: 所述選擇單元具體用于: 獲取所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kuU),x取[1,N]范 圍內(nèi)的整數(shù); 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力P#和所述計算節(jié)點 的剩余計算能力kj2 ; 根據(jù)所述剩余數(shù)據(jù)傳輸能力Pj2和所述計算節(jié)點的剩余計算能力kj2確定所述計算節(jié) 點的可用計算能力mj2, 根據(jù)所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點的剩余計算能力kdU)和所述計算節(jié) 點的可用計算能力mj2,從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力最強的 所述第三節(jié)點。
16. 根據(jù)權(quán)利要求12至14任一項所述的裝置,其特征在于: 所述選擇單元具體用于: 獲取代表存儲數(shù)據(jù)節(jié)點的剩余計算能力k。;^,所述代表存儲數(shù)據(jù)節(jié)點是指所述N個存 儲數(shù)據(jù)節(jié)點中剩余計算能力最大的存儲數(shù)據(jù)節(jié)點; 獲取所述計算節(jié)點與所述存儲服務(wù)節(jié)點之間的剩余數(shù)據(jù)傳輸能力P#和所述計算節(jié)點 的剩余計算能力kj2 ; 根據(jù)所述剩余數(shù)據(jù)傳輸能力P#和所述計算節(jié)點的剩余計算能力1?確定所述計算節(jié)點 的可用計算能力mj2 ; 根據(jù)所述代表存儲數(shù)據(jù)節(jié)點的剩余計算能力k。;^和所述計算節(jié)點的可用計算能力mj2, 從所述代表存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能力較強的所述第三節(jié)點。
17. -種通信系統(tǒng),其特征在于,所述通信系統(tǒng)包括如權(quán)利要求11至16任一項所述的 進程管理裝置、第一節(jié)點和第二節(jié)點,其中: 所述進程管理裝置用于從N個存儲數(shù)據(jù)節(jié)點和計算節(jié)點中選擇出計算能力最強的第 二節(jié)點,所述N為大于或者等于1的整數(shù),所述N個存儲數(shù)據(jù)節(jié)點中每一存儲數(shù)據(jù)節(jié)點均用 于存儲數(shù)據(jù)信息,所述N個存儲數(shù)據(jù)節(jié)點由同一存儲服務(wù)節(jié)點管理,所述存儲服務(wù)節(jié)點和 所述計算節(jié)點之間通信連接,所述進程為映射進程Maper或歸約進程Reducer ; 在所述第二節(jié)點和第一節(jié)點不相同時,所述進程管理裝置還用于向所述第一節(jié)點發(fā)送 第一暫停指令; 所述第一節(jié)點用于根據(jù)所述第一暫停指令暫停運行進程,得到所述進程的第一運行中 間結(jié)果,并將所述第一運行中間結(jié)果發(fā)送所述第二節(jié)點,所述第一節(jié)點為所述N個存儲數(shù) 據(jù)節(jié)點和所述計算節(jié)點中的一個節(jié)點; 所述進程管理裝置還用于向所述第二節(jié)點發(fā)送第一恢復(fù)指令; 所述第二節(jié)點用于根據(jù)所述第一恢復(fù)指令對所述第一運行中間結(jié)果進行恢復(fù)處理,以 恢復(fù)運行所述進程。
18.根據(jù)權(quán)利要求17所述的通信系統(tǒng),其特征在于,還包括第三節(jié)點: 所述進程管理裝置還用于從所述N個存儲數(shù)據(jù)節(jié)點和所述計算節(jié)點中選擇出計算能 力最強的第三節(jié)點,所述選擇出計算能力最強的第三節(jié)點和所述選擇出計算能力最強的第 二節(jié)點之間的時間間隔為T,所述T大于或者等于1秒且小于或者等于180秒; 在所述第三節(jié)點和所述第二節(jié)點不相同時, 所述進程管理裝置還用于向所述第二節(jié)點發(fā)送第二暫停指令; 所述第二節(jié)點用于根據(jù)所述第二暫停指令暫停運行進程,得到所述進程的第二運行中 間結(jié)果,并將所述第二運行中間結(jié)果發(fā)送給所述第三節(jié)點; 所述進程管理裝置還用于向所述第三節(jié)點發(fā)送第二恢復(fù)指令; 所述第三節(jié)點用于根據(jù)所述第二恢復(fù)指令對所述第二運行中間結(jié)果進行恢復(fù)處理,以 恢復(fù)運行所述進程。
【文檔編號】G06F9/50GK104331322SQ201410578186
【公開日】2015年2月4日 申請日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】周敬濱, 李益廷 申請人:華為技術(shù)有限公司