filecoin官方調(diào)度

filecoin官方調(diào)度不適合拿來直接使用。

以下是本人自己的一些學(xué)習(xí)經(jīng)驗(yàn)

翻譯一下這三步囤攀。

一,遍歷每個(gè)任務(wù)膏萧。對(duì)每個(gè)任務(wù)蝌衔,選出能夠運(yùn)行它的worker(worker的資源足夠)榛泛,所有符合的worker放在一個(gè)數(shù)組中胚委。然后對(duì)這個(gè)數(shù)據(jù)排序(排序的方式按照資源多少)

二叉信,再次遍歷每個(gè)任務(wù)。選取一步驟的數(shù)組中的第一個(gè)worker。將任務(wù)分配到該worker中

三覆享,第三步重新就是將新的 內(nèi)容(任務(wù)和worker的對(duì)應(yīng)關(guān)系) 放到結(jié)構(gòu)體里营袜。




第一步:?jiǎn)⒂妹恳粋€(gè)閉包對(duì)每個(gè)任務(wù)選擇一組可以跑這個(gè)任務(wù)的woker數(shù)組。等到這些閉包完全執(zhí)行結(jié)束后荚板。acceptableWindows[sqi][...]這個(gè)二維數(shù)組存放的信息。sqi代表任務(wù)的下標(biāo)(比如第一個(gè)任務(wù)拧抖,第二個(gè)任務(wù)),[...]代表能夠接受這個(gè)任務(wù)的worker列表免绿,而且是排序好的唧席。比如說acceptableWindows[1]這個(gè)切片有兩個(gè)worker可以滿足任務(wù)1的要求嘲驾,第一個(gè)資源有百分之五十,第二個(gè)資源有百分之三十徒仓,自然是第一個(gè)排到最前面榕暇。



第二步比較簡(jiǎn)單,就是把每個(gè)任務(wù)對(duì)應(yīng)的acceptableWindows[sqi]切片取出第一個(gè)彤枢。然后進(jìn)行基本判斷”谏梗看是否滿足要求。如果第一個(gè)worker滿足要求秒咐,該任務(wù)就直接選擇這個(gè)worker了碘裕。

for _, wnd :=range acceptableWindows[task.indexHeap]? ?task.indexHeap 也就是sqi

windows[selectedWindow].todo =append(windows[selectedWindow].todo, task)?

將任務(wù)裝進(jìn)woker隊(duì)列中。

看一下對(duì)應(yīng)關(guān)系帮孔。

windows :=make([]schedWindow, windowsLen)

windows是暫時(shí)定義的一個(gè)worker列表不撑。?windowsLen就是所有worker列表的長(zhǎng)度

windowsLen :=len(sh.openWindows)??openWindows是scheduler結(jié)構(gòu)體中的worker列表

selectedWindow 圖片貼出來代碼上晤斩。是選出的該worker下標(biāo)。

有點(diǎn)繞

直接說結(jié)論澳泵。第二步驟把任務(wù)裝進(jìn)臨時(shí)建立的一個(gè)worker列表中。這個(gè)臨時(shí)建立的worker列表windows腊敲,下標(biāo)對(duì)應(yīng)著sh.openWindows下標(biāo)维苔。

第二步結(jié)束后。每一個(gè)任務(wù)蕉鸳,就能選到對(duì)應(yīng)的worker(臨時(shí)的列表)

其他情況:有些任務(wù)在選擇過程中,所有worker都沒辦法滿足潮尝,只能說留在循環(huán)隊(duì)列里。能重新分配的任務(wù)羹蚣。就把它從任務(wù)隊(duì)列里刪掉乱凿。

if len(rmQueue) >0 {for i :=len(rmQueue) -1; i >=0; i-- {sh.schedQueue.Remove(rmQueue[i])}}


第三步:


第三步有兩個(gè)小步驟:

首先將遍歷一下臨時(shí)列表windows

如果windows后面的任務(wù)列表為空。跳過

for wnd, window :=range windows {

if len(window.todo) ==0 {

// Nothing scheduled here, keep the window open

? ? ? continue

? }

然后將有內(nèi)容的wndow 存進(jìn)openwindow里邊徒蟆。

select {

case sh.openWindows[wnd].done <- &window:

default:

log.Error("expected sh.openWindows[wnd].done to be buffered")

}

第二步。從新寫一遍sh.openWindows??

for wnd, window :=range sh.openWindows {

if _, scheduled := scheduledWindows[wnd]; scheduled {

// keep unscheduled windows open

? ? ? continue

? }

newOpenWindows =append(newOpenWindows, window)

}

sh.openWindows = newOpenWindows


第三步結(jié)束后全蝶。又是一個(gè)全新的sh.openWindows? 調(diào)度結(jié)束寺枉。


官方寫得很復(fù)雜。原因在于各種下標(biāo)的對(duì)應(yīng)關(guān)系姥闪。且不實(shí)用。

如果我們對(duì)某個(gè)機(jī)型跑多少任務(wù)的筐喳,怎么跑法比較熟悉往弓。比如說一臺(tái)機(jī)器蓄氧。跑幾個(gè)進(jìn)程槐脏,cg怎么綁定資源。就可以根據(jù)經(jīng)驗(yàn)加任務(wù)顿天。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咽白,隨后出現(xiàn)的幾起案子鸟缕,更是在濱河造成了極大的恐慌,老刑警劉巖懂从,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異侵贵,居然都是意外死亡缘薛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門宴胧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辽旋,你說我怎么就攤上這事檐迟〔古撸” “怎么了追迟?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)瓶逃。 經(jīng)常有香客問我,道長(zhǎng)厢绝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任懈万,我火速辦了婚禮靶病,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘娄周。我一直安慰自己,他們只是感情好煤辨,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布众辨。 她就那樣靜靜地躺著调违,像睡著了一般泻轰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浮声,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天泳挥,我揣著相機(jī)與錄音,去河邊找鬼屉符。 笑死,一個(gè)胖子當(dāng)著我的面吹牛矗钟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躬它,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼东涡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼倘待!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凸舵,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤失尖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后雹仿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體整以,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年邑商,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凡蚜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡恶迈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出暇仲,到底是詐尸還是另有隱情副渴,我是刑警寧澤奈附,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布煮剧,位于F島的核電站,受9級(jí)特大地震影響佑颇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜草娜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驱还。 院中可真熱鬧凸克,春花似錦闷沥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虫啥。三九已至,卻和暖如春涂籽,著一層夾襖步出監(jiān)牢的瞬間砸抛,已是汗流浹背评雌。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來泰國打工景东, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斤吐。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓厨喂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親杯聚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理颁褂,服務(wù)發(fā)現(xiàn)傀广,斷路器颁独,智...
    卡卡羅2017閱讀 134,714評(píng)論 18 139
  • 一伪冰、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,753評(píng)論 0 10
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
    KeKeMars閱讀 6,340評(píng)論 0 6
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 29,417評(píng)論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,113評(píng)論 1 32