2014-11-08 53 views
0

我很好奇,Giraph的工人API文檔中,我看到了一個解釋這個方法:Giraph的工作人員在頂點接收消息時做了什麼機制?

public void storeCheckpoint() 
// Both the vertices and the messages need to be checkpointed in order for them to be used. 
// This is done after all messages have been delivered, but prior to a superstep starting. 

我知道,他們用自己接受的郵件在compute()的方法,但他們什麼時候收到了嗎?如果它在檢查點過程之前,那麼我可以看到文檔/代碼中有任何部分可以理解它?

此外,Giraph在superstep S + 1之前使用什麼機制來存儲消息?他們是先將它存儲在緩衝區還是磁盤中?

我在Giraph文檔中找不到任何關於此的信息。

回答

1

所有消息都是在超級散步之後收到的,它告訴計算函數應在哪個頂點或節點上執行下一個superstep。這是批量同步並行的過程。在這個過程中,已經交付meesage的頂點變爲活動的,並且在每個頂點上並行執行計算方法。這是超級盃。現在這個過程重複,直到所有的頂點達到稱爲停止投票的狀態,這個停止使用apache zookeeper zk節點的投票,或者你可以說一個函數writeHaltInstrcutions(args,args)來停止正在運行的進程。請記住,您需要該商店檢查點功能,因爲有時會發生的情況是,在地圖執行完畢後,並沒有減速器。該進程只是繼續運行,並沒有停止,所以對於這些情況,你需要有一個檢查點功能來跟蹤你已經到達的檢查點。我希望這有幫助。

相關問題