Facebook : Corona中的推測執行

大任務通常有成百上千個task,在任務即將執行完成時,總有幾個task會拖後腿,corona的實現中,也考慮了備份執行,
對執行慢的任務,啓動一個他的clone,誰先執行完,kill掉另外一個。 

首先計算門限,後續判斷是否達到門限 

          
SPECULATIVECAP = "mapreduce.job.speculative.speculativecap";(默認0.1,推測執行的比率,乘以runningTasks爲可以啓動的推測任務數,一個task只啓動1個,一個job的多個task可以啓動多個)
MIN_SPEC_CAP(至少啓動的推測任務數,默認10)

SPECULATIVE_REFRESH_TIMEOUT = "mapreduce.job.speculative.refresh.timeout";(刷新任務進度,默認5000L)

SPECULATIVE_MAP_UNFINISHED_THRESHOLD_KEY = "mapred.map.tasks.speculation.unfinished.threshold";(默認0.001F,Map全部推測門限)
SPECULATIVE_REDUCE_UNFINISHED_THRESHOLD_KEY = "mapred.reduce.tasks.speculation.unfinished.threshold";(默認0.001F,Red全部推測門限)
 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章