2013-05-08 8 views
13

現在のプロジェクトのすべてのストームメトリックの意味を文書化しようとしています。ストームUI:実行とプロセスの待ち時間の差

このプロセスでは、このグループからのデータとgithubを収集しました。

メトリックの一部はわかりやすいものですが、私は実際にボルトメトリックのいくつかと混同しています。

たとえば、プロセス待ち時間と実行待ち時間の違いは何ですか?私は、次の情報収集したこのGoogleグループの投稿から

:ACKが呼び出され

  • リスト項目処理レイテンシ=タイムスタンプ - タイムスタンプは、タプル

  • リスト項目を渡されたときに実行します実行待ち時間=実行終了時のタイムスタンプ - 実行が渡された時のタイムスタンプ(ソース:http://goo.gl/3KRAl

  • リスト項目プロセスの待ち時間はタプルがACKされるまでの時間は、待ち時間がタプルに対して実行に費やされた時間で実行される(ソース:http://goo.gl/m0fTC

私は嵐の中で見ているものに基づいて、 UIでは、私のExecute LatencyはProcess Latencyよりも常に大きいです。それはどうすればできますか? どちらのレイテンシも正確に定義できますか?

ありがとうございます!

+0

申し訳ありません私は嵐に腹を立てて、トポロジを投稿した後の数字について混乱させてしまいました。レイテンシを常にプロセスレイテンシよりも大きくする必要がありますか?私はいくつかのボルトを持っているので、その逆。 – user1

答えて

5

エグゼキュータの実行機能でAckが呼び出されるか、ボルトの実行方法が終了する前にnutshellで呼び出されます。したがって、実行待ち時間はもっと長くなります。 (あるとしてhereから取られた)このコードは、物事を明確にします:

public void execute(Tuple tuple) { 
    String sentence = tuple.getString(0); 
    for(String word: sentence.split(" ")) { 
    _collector.emit(tuple, new Values(word)); 
    } 
    _collector.ack(tuple); 
} 

私はこのことができます願っています。

0

あなたの定義によると、Abhijeetも述べたように、executeメソッド内でackが呼び出されるため、Execute latencyは常にProcess latencyより大きくなるはずです。

大きな違いがある場合は、タプルを確認した後にコードがある可能性があります。

関連する問題