You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@giraph.apache.org by Nitay Joffe <ni...@apache.org> on 2012/11/13 23:00:22 UTC

Review Request: GIRAPH-421: Aggregate metrics up to master

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

Review request for giraph.


Description
-------

The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
The master reads each worker's metrics, aggregates, and prints an overall summary.

Sample output...
Worker:
https://gist.github.com/23edefe0c5bbbfd25f93.
Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 

Master:
https://gist.github.com/4379c15efa8173d96163.
At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
There is also support for the master to track and print its own metrics, but this is not really used right now.
There is a known "bug /feature" that aggregating the waiting time doesn't work. This is because waiting for other workers happens _after_ a worker writes its own stats. The easiest solution is for me to just write the metrics to ZK (using a different node or overriding the existing one) again after the wait is done. I haven't done this yet because I want to hear you guys' thoughts - perhaps there' a better way to do this.

As a part of this diff I also cleaned some things up, namely:
- Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
- Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.


Diffs
-----

  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1408489 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.

> On Nov. 17, 2012, 12:10 a.m., Maja Kabiljo wrote:
> > /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java, lines 134-139
> > <https://reviews.apache.org/r/8042/diff/1/?file=189493#file189493line134>
> >
> >     Revisit the comments

Yeah it's because before we were using Yammer's Timers but those are much more complicated than what we need (simple one instance timing). Anyways I agree with you, I'll create our own GiraphTimer and do that.


- Nitay


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/#review13535
-----------------------------------------------------------


On Nov. 16, 2012, 8:18 p.m., Nitay Joffe wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/8042/
> -----------------------------------------------------------
> 
> (Updated Nov. 16, 2012, 8:18 p.m.)
> 
> 
> Review request for giraph.
> 
> 
> Description
> -------
> 
> GIRAPH-421: Aggregate metrics up to master
> 
> 
> Diffs
> -----
> 
>   /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1409973 
> 
> Diff: https://reviews.apache.org/r/8042/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Nitay Joffe
> 
>


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Maja Kabiljo <ma...@fb.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/#review13535
-----------------------------------------------------------


This is a very useful thing to have, thanks Nitay.

Is it possible to keep the timing logic together? (this mostly exists from the previous metrics patch, but I didn't take a look at it back then) I think that ideally we would have some timer class, which would keep the time unit used and its name within itself. It would also have some functions like start() and stop(), first of which would be saving the current time, and the second would be calculating the time elapsed. I think that's nicer than having time measurement code everywhere. What do you think?


/trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java
<https://reviews.apache.org/r/8042/#comment29021>

    Revisit the comments


- Maja Kabiljo


On Nov. 16, 2012, 8:18 p.m., Nitay Joffe wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/8042/
> -----------------------------------------------------------
> 
> (Updated Nov. 16, 2012, 8:18 p.m.)
> 
> 
> Review request for giraph.
> 
> 
> Description
> -------
> 
> GIRAPH-421: Aggregate metrics up to master
> 
> 
> Diffs
> -----
> 
>   /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1409973 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1409973 
> 
> Diff: https://reviews.apache.org/r/8042/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Nitay Joffe
> 
>


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Alessandro Presta <al...@fb.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/#review13593
-----------------------------------------------------------


Maja, are you happy with the changes?
I'm +1 on this.

- Alessandro Presta


On Nov. 17, 2012, 9:50 a.m., Nitay Joffe wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/8042/
> -----------------------------------------------------------
> 
> (Updated Nov. 17, 2012, 9:50 a.m.)
> 
> 
> Review request for giraph.
> 
> 
> Description
> -------
> 
> https://issues.apache.org/jira/browse/GIRAPH-421
> 
> The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
> The master reads each worker's metrics, aggregates, and prints an overall summary.
> 
> Worker:
> https://gist.github.com/f0b6dce82a793173866a
> Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 
> 
> Master:
> https://gist.github.com/99453c87bd33488588d4
> At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
> There is also support for the master to track and print its own metrics, but this is not really used right now.
> 
> As a part of this diff I also cleaned some things up, namely:
> - Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
> - Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.
> 
> 
> Diffs
> -----
> 
>   /trunk/.reviewboardrc 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/ByteCounter.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/NettyWorkerClientRequestProcessor.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestDecoder.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestEncoder.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestInfo.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestServerHandler.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/ComputeCallable.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/EdgeInputSplitsCallable.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/InputSplitsCallable.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/VertexInputSplitsCallable.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphTimer.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphTimerContext.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/LongAndTimeUnit.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricGroup.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueGauge.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/ByteArrayVertexIdMessageCollection.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/MemoryUtils.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1410684 
>   /trunk/giraph/src/main/java/org/apache/giraph/zk/PredicateLock.java 1410684 
>   /trunk/giraph/src/test/java/org/apache/giraph/graph/TestMutableVertex.java 1410684 
>   /trunk/giraph/src/test/java/org/apache/giraph/utils/BspUtilsTest.java 1410684 
> 
> Diff: https://reviews.apache.org/r/8042/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Nitay Joffe
> 
>


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Maja Kabiljo <ma...@fb.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/#review13602
-----------------------------------------------------------


Looks good now.

- Maja Kabiljo


On Nov. 20, 2012, 12:08 a.m., Nitay Joffe wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/8042/
> -----------------------------------------------------------
> 
> (Updated Nov. 20, 2012, 12:08 a.m.)
> 
> 
> Review request for giraph.
> 
> 
> Description
> -------
> 
> https://issues.apache.org/jira/browse/GIRAPH-421
> 
> The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
> The master reads each worker's metrics, aggregates, and prints an overall summary.
> 
> Worker:
> https://gist.github.com/f0b6dce82a793173866a
> Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 
> 
> Master:
> https://gist.github.com/99453c87bd33488588d4
> At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
> There is also support for the master to track and print its own metrics, but this is not really used right now.
> 
> As a part of this diff I also cleaned some things up, namely:
> - Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
> - Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.
> 
> 
> Diffs
> -----
> 
>   /trunk/.reviewboardrc 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/ByteCounter.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/NettyWorkerClientRequestProcessor.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestDecoder.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestEncoder.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestInfo.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestServerHandler.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/ComputeCallable.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/EdgeInputSplitsCallable.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/InputSplitsCallable.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/VertexInputSplitsCallable.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphTimer.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphTimerContext.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/LongAndTimeUnit.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricGroup.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueGauge.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/ByteArrayVertexIdMessageCollection.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/MemoryUtils.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1411478 
>   /trunk/giraph/src/main/java/org/apache/giraph/zk/PredicateLock.java 1411478 
>   /trunk/giraph/src/test/java/org/apache/giraph/graph/TestMutableVertex.java 1411478 
>   /trunk/giraph/src/test/java/org/apache/giraph/utils/BspUtilsTest.java 1411478 
> 
> Diff: https://reviews.apache.org/r/8042/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Nitay Joffe
> 
>


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 20, 2012, 12:08 a.m.)


Review request for giraph.


Description
-------

https://issues.apache.org/jira/browse/GIRAPH-421

The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
The master reads each worker's metrics, aggregates, and prints an overall summary.

Worker:
https://gist.github.com/f0b6dce82a793173866a
Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 

Master:
https://gist.github.com/99453c87bd33488588d4
At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
There is also support for the master to track and print its own metrics, but this is not really used right now.

As a part of this diff I also cleaned some things up, namely:
- Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
- Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.


Diffs (updated)
-----

  /trunk/.reviewboardrc 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/ByteCounter.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/NettyWorkerClientRequestProcessor.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestDecoder.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestEncoder.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestInfo.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestServerHandler.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/ComputeCallable.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/EdgeInputSplitsCallable.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/InputSplitsCallable.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/VertexInputSplitsCallable.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphTimer.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphTimerContext.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/LongAndTimeUnit.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricGroup.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueGauge.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/ByteArrayVertexIdMessageCollection.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/MemoryUtils.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1411478 
  /trunk/giraph/src/main/java/org/apache/giraph/zk/PredicateLock.java 1411478 
  /trunk/giraph/src/test/java/org/apache/giraph/graph/TestMutableVertex.java 1411478 
  /trunk/giraph/src/test/java/org/apache/giraph/utils/BspUtilsTest.java 1411478 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 17, 2012, 9:50 a.m.)


Review request for giraph.


Description
-------

https://issues.apache.org/jira/browse/GIRAPH-421

The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
The master reads each worker's metrics, aggregates, and prints an overall summary.

Worker:
https://gist.github.com/f0b6dce82a793173866a
Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 

Master:
https://gist.github.com/99453c87bd33488588d4
At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
There is also support for the master to track and print its own metrics, but this is not really used right now.

As a part of this diff I also cleaned some things up, namely:
- Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
- Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.


Diffs (updated)
-----

  /trunk/.reviewboardrc 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/ByteCounter.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/NettyWorkerClientRequestProcessor.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestDecoder.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestEncoder.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestInfo.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/comm/netty/handler/RequestServerHandler.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/ComputeCallable.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/EdgeInputSplitsCallable.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/InputSplitsCallable.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/VertexInputSplitsCallable.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphTimer.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphTimerContext.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/LongAndTimeUnit.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricGroup.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueGauge.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/ByteArrayVertexIdMessageCollection.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/MemoryUtils.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1410684 
  /trunk/giraph/src/main/java/org/apache/giraph/zk/PredicateLock.java 1410684 
  /trunk/giraph/src/test/java/org/apache/giraph/graph/TestMutableVertex.java 1410684 
  /trunk/giraph/src/test/java/org/apache/giraph/utils/BspUtilsTest.java 1410684 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 17, 2012, 9:41 a.m.)


Review request for giraph.


Description (updated)
-------

https://issues.apache.org/jira/browse/GIRAPH-421

The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
The master reads each worker's metrics, aggregates, and prints an overall summary.

Worker:
https://gist.github.com/f0b6dce82a793173866a
Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 

Master:
https://gist.github.com/99453c87bd33488588d4
At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
There is also support for the master to track and print its own metrics, but this is not really used right now.

As a part of this diff I also cleaned some things up, namely:
- Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
- Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.


Diffs
-----

  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1409973 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 17, 2012, 3:42 a.m.)


Review request for giraph.


Description (updated)
-------

https://issues.apache.org/jira/browse/GIRAPH-421

The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
The master reads each worker's metrics, aggregates, and prints an overall summary.

Worker:
https://gist.github.com/23edefe0c5bbbfd25f93
Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 

Master:
https://gist.github.com/1d45385441ced2470ca9
At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
There is also support for the master to track and print its own metrics, but this is not really used right now.

As a part of this diff I also cleaned some things up, namely:
- Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
- Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.


Diffs
-----

  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1409973 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 17, 2012, 3:17 a.m.)


Review request for giraph.


Changes
-------

Add our own GiraphTimer to use for timing things.


Description
-------

GIRAPH-421: Aggregate metrics up to master


Diffs
-----

  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1409973 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 17, 2012, 3:08 a.m.)


Review request for giraph.


Description
-------

GIRAPH-421: Aggregate metrics up to master


Diffs
-----

  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1409973 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 16, 2012, 8:18 p.m.)


Review request for giraph.


Description (updated)
-------

GIRAPH-421: Aggregate metrics up to master


Diffs (updated)
-----

  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1409973 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1409973 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.

> On Nov. 16, 2012, 7:41 p.m., Alessandro Presta wrote:
> > Nice!
> > Regarding the waiting time issue, any idea why workers currently send stats before waiting?

Yeah it's because I made the stats a part of the finishedSuperstep() stuff we write to ZK. That's the question I was asking - should I just do another write to ZK after the wait()?


- Nitay


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/#review13524
-----------------------------------------------------------


On Nov. 13, 2012, 10:02 p.m., Nitay Joffe wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/8042/
> -----------------------------------------------------------
> 
> (Updated Nov. 13, 2012, 10:02 p.m.)
> 
> 
> Review request for giraph.
> 
> 
> Description
> -------
> 
> https://issues.apache.org/jira/browse/GIRAPH-421
> 
> The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
> The master reads each worker's metrics, aggregates, and prints an overall summary.
> 
> Worker:
> https://gist.github.com/23edefe0c5bbbfd25f93
> Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 
> 
> Master:
> https://gist.github.com/4379c15efa8173d96163
> At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
> There is also support for the master to track and print its own metrics, but this is not really used right now.
> There is a known "bug /feature" that aggregating the waiting time doesn't work. This is because waiting for other workers happens _after_ a worker writes its own stats. The easiest solution is for me to just write the metrics to ZK (using a different node or overriding the existing one) again after the wait is done. I haven't done this yet because I want to hear you guys' thoughts - perhaps there' a better way to do this.
> 
> As a part of this diff I also cleaned some things up, namely:
> - Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
> - Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.
> 
> 
> Diffs
> -----
> 
>   /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1408489 
> 
> Diff: https://reviews.apache.org/r/8042/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Nitay Joffe
> 
>


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Alessandro Presta <al...@fb.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/#review13524
-----------------------------------------------------------


Nice!
Regarding the waiting time issue, any idea why workers currently send stats before waiting?


/trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java
<https://reviews.apache.org/r/8042/#comment29016>

    Why do we need this if it's the same as metricsEnabled()?



/trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java
<https://reviews.apache.org/r/8042/#comment29017>

    Try http://commons.apache.org/io/api-release/org/apache/commons/io/FilenameUtils.html#getName(java.lang.String)


- Alessandro Presta


On Nov. 13, 2012, 10:02 p.m., Nitay Joffe wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/8042/
> -----------------------------------------------------------
> 
> (Updated Nov. 13, 2012, 10:02 p.m.)
> 
> 
> Review request for giraph.
> 
> 
> Description
> -------
> 
> https://issues.apache.org/jira/browse/GIRAPH-421
> 
> The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
> The master reads each worker's metrics, aggregates, and prints an overall summary.
> 
> Worker:
> https://gist.github.com/23edefe0c5bbbfd25f93
> Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 
> 
> Master:
> https://gist.github.com/4379c15efa8173d96163
> At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
> There is also support for the master to track and print its own metrics, but this is not really used right now.
> There is a known "bug /feature" that aggregating the waiting time doesn't work. This is because waiting for other workers happens _after_ a worker writes its own stats. The easiest solution is for me to just write the metrics to ZK (using a different node or overriding the existing one) again after the wait is done. I haven't done this yet because I want to hear you guys' thoughts - perhaps there' a better way to do this.
> 
> As a part of this diff I also cleaned some things up, namely:
> - Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
> - Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.
> 
> 
> Diffs
> -----
> 
>   /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1408489 
>   /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1408489 
> 
> Diff: https://reviews.apache.org/r/8042/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Nitay Joffe
> 
>


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 13, 2012, 10:02 p.m.)


Review request for giraph.


Description (updated)
-------

https://issues.apache.org/jira/browse/GIRAPH-421

The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
The master reads each worker's metrics, aggregates, and prints an overall summary.

Worker:
https://gist.github.com/23edefe0c5bbbfd25f93
Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 

Master:
https://gist.github.com/4379c15efa8173d96163
At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
There is also support for the master to track and print its own metrics, but this is not really used right now.
There is a known "bug /feature" that aggregating the waiting time doesn't work. This is because waiting for other workers happens _after_ a worker writes its own stats. The easiest solution is for me to just write the metrics to ZK (using a different node or overriding the existing one) again after the wait is done. I haven't done this yet because I want to hear you guys' thoughts - perhaps there' a better way to do this.

As a part of this diff I also cleaned some things up, namely:
- Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
- Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.


Diffs
-----

  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1408489 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe


Re: Review Request: GIRAPH-421: Aggregate metrics up to master

Posted by Nitay Joffe <ni...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8042/
-----------------------------------------------------------

(Updated Nov. 13, 2012, 10 p.m.)


Review request for giraph.


Description (updated)
-------

https://issues.apache.org/jira/browse/GIRAPH-421

The workers send their metrics to the master by writing them to the ZK node that is already used for FinishedSuperstepStats.
The master reads each worker's metrics, aggregates, and prints an overall summary.

Sample output...
Worker:
https://gist.github.com/23edefe0c5bbbfd25f93.
Prints a summary at the end of each superstep. At the end of the job it does a raw dump of all of the metrics. 

Master:
https://gist.github.com/4379c15efa8173d96163.
At end of each superstep it gathers the metrics and computes mean, min, and max. Anything else we should compute?
There is also support for the master to track and print its own metrics, but this is not really used right now.
There is a known "bug /feature" that aggregating the waiting time doesn't work. This is because waiting for other workers happens _after_ a worker writes its own stats. The easiest solution is for me to just write the metrics to ZK (using a different node or overriding the existing one) again after the wait is done. I haven't done this yet because I want to hear you guys' thoughts - perhaps there' a better way to do this.

As a part of this diff I also cleaned some things up, namely:
- Just one option now to use, called giraph.metrics.enable, which toggles everything. When false (default), no work is done. When enabled, every worker and the master tracks metrics. They are aggregated and printed as in examples below.
- Changed metrics that are often small values like "time to first message" and "waiting time" to be in microseconds instead of milliseconds.


Diffs
-----

  /trunk/giraph/src/main/java/org/apache/giraph/GiraphConfiguration.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspService.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceMaster.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/BspServiceWorker.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/graph/GraphMapper.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetric.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/AggregatedMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetrics.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/GiraphMetricsRegistry.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/MetricsRegistryDebugger.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/SuperstepMetricsRegistry.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/ValueWithHostname.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/metrics/WorkerSuperstepMetrics.java PRE-CREATION 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/FakeTime.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/SystemTime.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Time.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/Times.java 1408489 
  /trunk/giraph/src/main/java/org/apache/giraph/utils/WritableUtils.java 1408489 

Diff: https://reviews.apache.org/r/8042/diff/


Testing
-------


Thanks,

Nitay Joffe