結(jié)束在線數(shù)據(jù)密集型應用中的任務執(zhí)行;若<見0,則 執(zhí)行步驟H ;
[0093] 若>見(9,則結(jié)束在線數(shù)據(jù)密集型應用中的任務執(zhí)行;若S見(9,則執(zhí) 行步驟H;
[0094] 若7?? >510,則結(jié)束在線數(shù)據(jù)密集型應用中的任務執(zhí)行;若7?? 則 執(zhí)行步驟H ;
[0095] ?3期> ,則結(jié)束在線數(shù)據(jù)密集型應用中的任務執(zhí)行;巧期 < 見(9,則執(zhí)行 步驟H ;
[0096] 步驟H,獲取副本的服務時延和響應時延
[0097] 在本發(fā)明中,完成時間(Finish Time)是指任務執(zhí)行(Task Execution)結(jié)束的時 間。
[0098] 在本發(fā)明中,服務時延(Service latency)是指任務執(zhí)行(Task Execution)從開 始至結(jié)束的所需時間。
[0099] 在本發(fā)明中,響應時延(Response latency)是指任務(Task)到達后端從節(jié)點 (Back-end slave node)至任務執(zhí)行完成所需時間。
[0100] 參見圖6所示,在本發(fā)明中,將后端從節(jié)點bsNi行完成r肩』本的時間記為?3成;
[0101] 在本發(fā)明中,將后端從節(jié)點bsNi行完成!^副本的時間記為ΤΙ# ;
[0102] 在本發(fā)明中,將后端從節(jié)點13%執(zhí)行完成副本的時間記為7?? ;
[0103] 在本發(fā)明中,將后端從節(jié)點bsNi行完成 < 副本的時間記為7?? ;
[0104] 在本發(fā)明中,將后端從節(jié)點bsJA行完成<+1副本的時間記為T^ s1;
[0105] 在本發(fā)明中,將后端從節(jié)點bs^行完成r k副本的時間記為7|成。
[0106] 在本發(fā)明中,計算后端從節(jié)點bsN運行所述!^副本的服務時延記為巧1&,且 rPrX - TrI _ TrI · J服備-J完成-J運行,
[0107] 在本發(fā)明中,計算后端從節(jié)點13%運行所述1*2副本的服務時延記為,且 丁 r: 一 丁 V1rTiI 』服> =』完-成一』運行;
[0108] 在本發(fā)明中,計算后端從節(jié)點13%運行所述Is1副本的服務時延記為7??,且 fTrW-X _ rFrW-X - fTrW-I , 1服務_ 1完成 1運行,
[0109] 在本發(fā)明中,計算后端從節(jié)點bsN運行所述 < 副本的服務時延記為,且 T< - T< _Tr? . 完成 Z運行,
[oho] 在本發(fā)明中,計算后端從節(jié)點13%運行所述副本的服務時延記為7??,且 ψΚ·+\ - TrrW+! _ ψΚ+Ι . 1服備-Ζ完成 Ζ運行,
[0111] 在本發(fā)明中,計算后端從節(jié)點13%運行所述rk副本的服務時延記為且 Trk - Trk - Trk1服務-完成 ^運行。
[0112] 在本發(fā)明中,計算后端從節(jié)點13%運行所述r 本的響應時延記為,且 T7rI - T7iI _ T7iI , 』響應-J完成-J到達,
[0113] 在本發(fā)明中,計算后端從節(jié)點bsN運行所述1*2副本的響應時延記為,且 ΛΤ7 }'-j ΓΤ1 ΓΤ1 1響~應=^成-IpJ達;
[0114] 在本發(fā)明中,計算后端從節(jié)點13%運行所述副本的響應時延記為7??,且 rPrW-X _ rTrW-X _ rTrW-X , i響應_ J完成一 J到達J
[0115] 在本發(fā)明中,計算后端從節(jié)點13%運行所述 < 副本的響應時延記為且 T<- - TrW _J< · 1響應-完成 到達,
[0116] 在本發(fā)明中,計算后端從節(jié)點13知運行所述<+1副本的響應時延記為7??,且 rTy^x T7 7^+1 _ T7 7^+1 . 1響應_ J完成一 J到達,
[0117] 在本發(fā)明中,計算后端從節(jié)點13%運行所述rk副本的響應時延記為?,且 應=7?成-7?達;執(zhí)行步驟I。
[0118] 在本發(fā)明中,后端從節(jié)點(Back-end slave node)采用滑動窗口技術(shù),實時監(jiān) 控任務流中各個副本(Replica)的服務時延(service latency)及響應時延(Response latency),從而獲得副本的服務時延及響應時延。通過服務時延來控制預測過濾模塊300, 通過響應時延來控制狀態(tài)過濾模塊100。
[0119] 步驟I,計算動態(tài)參考值
[0120] 設(shè)置服務時延監(jiān)控模塊400的滑動窗口 Windows存儲的服務時延的個數(shù),記為V, 若服務時延監(jiān)控模塊400收到的服務時延的個數(shù)記為v ;當v < V時,則服務時延監(jiān)控模塊 400繼續(xù)接收的服務時延;當V彡V時,則服務時延監(jiān)控模塊400將先接收的服務時延剔除。
[0121] 計算服務時延監(jiān)控模塊400的存儲的服務時延的平均值A(chǔ)SL,
表不后端從節(jié)點運彳丁完成所有副本的服務時延的總和,中的上標
[0122] 設(shè)置響應時延監(jiān)控模塊500的滑動窗口 Windows存儲的響應時延的個數(shù),記為U, 若響應時延監(jiān)控模塊500收到的響應時延的個數(shù)記為u ;當u < U時,則響應時延監(jiān)控模塊 500繼續(xù)接收的響應時延;當u多U時,則響應時延監(jiān)控模塊500將先接收的響應時延剔除。
[0123] 計算響應時延監(jiān)控模塊500的存儲的響應時延的平均值A(chǔ)RL,且
表示后端從節(jié)點運行完成所有副本的響應時延的總和,77=)?中的上標
[0124] 計算響應時延監(jiān)控模塊500的存儲的響應時延的方差VRL,且 執(zhí)行步驟J。
[0125] 步驟J,檢查節(jié)點狀態(tài)參考量
[0126] 步驟J-1,檢查后端從節(jié)點bsN若不滿足狀態(tài)條件三,則更新,即及遞減 1 ;執(zhí)行步驟J_2 ;
[0127] 步驟J-2,檢查后端從節(jié)點bsN若滿足狀態(tài)條件一,則更新無效周期數(shù),即 /C^遞減1 ;同時結(jié)束在線數(shù)據(jù)密集型應用中的任務執(zhí)行;檢查后端從節(jié)點bsNg不滿足 狀態(tài)條件一,執(zhí)行步驟J-3 ;
[0128] 步驟J-3,檢查后端從節(jié)點bsN若滿足狀態(tài)條件三,則后端從節(jié)點bs !^處于運行狀 態(tài),執(zhí)行步驟K ;
[0129] 步驟K,更新節(jié)點狀態(tài)參考量
[0130] 依據(jù)ARL和VRL更新后端從節(jié)點bsN的狀態(tài)參考量,即無效周期數(shù)和恢復周 期數(shù);
[0131] 老
且VRL < ζ,η表示預設(shè)的響應時延偏移量上限,ζ表 示預設(shè)的響應時延方差上限;表明系統(tǒng)負載較高,一方面更新恢復周期數(shù)/、為副本 等待隊列模塊200中的副本數(shù);另一方面更新無效周期數(shù)/CfcV,將所述的更新為 ,O < λ < I ; λ表示預設(shè)的無效周期數(shù)的比例參數(shù)。
[0132] 本發(fā)明根據(jù)動態(tài)參考量ASL、ARL和VRL自適應調(diào)整后端從節(jié)點的預測過濾模塊 300及狀態(tài)過濾模塊100的相關(guān)參數(shù),從而達到控制后端從節(jié)點(Back-end slave node)是 否運行或接收后續(xù)任務,從而達到節(jié)省計算資源的目的。
[0133] 在本發(fā)明步驟A中,后端從節(jié)點的狀態(tài)轉(zhuǎn)移圖如圖3所示,后端從節(jié)點在初始化后 處于運行狀態(tài),當負載過高時,節(jié)點進入無效狀態(tài),此時節(jié)點不接收任何任務(含有副本標 記的除外)且關(guān)閉響應時延監(jiān)控模塊500,并設(shè)置無效周期數(shù)和恢復周期數(shù),副本等待隊列 200中每運行完成一個副本,則周期數(shù)減一;當運行至無效周期數(shù)為零時,后端從節(jié)點進入 恢復狀態(tài),此時節(jié)點可以接受任務,但不啟用響應時延監(jiān)控模塊500。直至恢復周期數(shù)為零, 后端從進入運行狀態(tài),此時節(jié)點可以接收任務,且開啟響應時延監(jiān)控模塊500。
[0134] 本發(fā)明的應用實例如圖4所示,后端主節(jié)點將請求解析為一組任務,分別提交至 相應的任務發(fā)送模塊,任務發(fā)送模塊將同一任務的多個副本分發(fā)至多個后端從節(jié)點,并選 取一部分進行副本標記。后端從節(jié)點收到任務后,若任務含有副本標記,則后續(xù)所有過濾模 塊(狀態(tài)過濾模塊100、預測過濾模塊300)均對其無效。若節(jié)點處于無效狀態(tài),表示節(jié)點不 接收任務,狀態(tài)過濾模塊100直接向后端主節(jié)點返回空結(jié)果,否則,將任務插入節(jié)點的副本 等待隊列200中。當任務即將開始運行時,預測過濾模塊300根據(jù)預測參數(shù)計算任務的預 期響應時延,若預期響應時延大于服務質(zhì)量目標,則直接返回空結(jié)果,不再運行該任務,否 則開始運行任務。任務完成后,將任務的服務時延和響應時延發(fā)送至相應監(jiān)控模塊(服務 時延監(jiān)控模塊400、響應時延監(jiān)控模塊500)。監(jiān)控模塊維護其監(jiān)控指標的滑動窗口,并實時 更新滑動窗口中監(jiān)控指標的移動平均值和移動方差,作為參數(shù)提供給相應過濾模塊(狀態(tài) 過濾模塊100、預測過濾模塊300)。此外,響應時延監(jiān)控模塊500的啟用與否取決于節(jié)點狀 態(tài),只有節(jié)點處于工作狀態(tài)時才接收監(jiān)控數(shù)據(jù)。這是由于在非工作狀態(tài)下,任務的響應時延 受到了高負載的影響,不具有參考價值。
[0135] 本發(fā)明面向在線數(shù)據(jù)密集型應用,利用滑動窗口和性能預測技術(shù),通過對任務特 征及節(jié)點狀態(tài)的準確預測,節(jié)省了更多的資源,并提升了應用在高負載時的服務質(zhì)量。與原 有的多副本執(zhí)行策略相比,對于相同的服務質(zhì)量目標,本發(fā)明使用的額外資源更少,同時在 負載較高時,緩解了原有多副本執(zhí)行策略對任務運行時間不確定性影響。
[0136] 本發(fā)明減少了多副本執(zhí)行在保障在線數(shù)據(jù)密集型應用服務質(zhì)量時占用的額外資 源,從而提高了系統(tǒng)資源的使用效率,通過利用滑動窗口提取任務特征值,并對節(jié)點進行性