0

興味深いことに、Giraph のワーカー API ドキュメントに、このメソッドに関する説明があります。

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 がスーパーステップ S+1 の前にメッセージを保存するために使用するメカニズムは何ですか? 最初にバッファまたはディスクに保存しますか?

これに関するGiraphのドキュメントには何も見つかりません。

4

1 に答える 1

1

すべてのメッセージは、スーパーステップの後にまとめて受信されます。これにより、次のスーパーステップで計算関数を実行する必要がある頂点またはノードが通知されます。これが Bulk Synchronous 並列のプロセスです。このプロセスでは、メッセージが配信された頂点がアクティブになり、compute メソッドがそれらの各頂点に対して並列に実行されます。これがスーパーステップです。このプロセスは、すべての頂点が停止投票と呼ばれる状況に達するまで繰り返されます。この停止投票は、Apache Zookeeper zk ノードを使用するか、writeHaltInstrcutions(args,args) という関数を使用して、実行中のプロセスを停止することができます。Map が 100% 実行され、reducer がない場合に、storecheckpoint 関数が必要になることがあります。プロセスは実行を継続し、停止することはありません。そのような状況では、到達したチェックポイントを追跡するチェックポイント機能が必要です。これが役立つことを願っています。

于 2014-11-17T18:00:40.913 に答える