Hello, 

I had to use aggregators for various statistic reporting tasks, 
and I noticed that the aggregator operations need to be used in a very specific 
squence, 
especially when the aggregator is getting a reset between supersteps. 

I found that the sequence described in RandomMessageBenchmark (in the 
org.apache.giraph.benchmark package)
results in consistent counts for one aggregator across all workers. 
The most important thing, seems to be to call the reset method 
setAggregatedValue() in preSuperstep() of the WorkerContext class, 
before calling this.useAggregator(). 

If I called the reset method in postSuperstep(), then every worker reported a 
different value for the aggregator. 

However, the aggregator which gets the reset between supersteps, still is 
wrong. 

I know this, because a second aggregator counts the same thing, and reports it 
after each superstep, 
without getting a reset. 

Is this a known issue ? Should I file a bug report on it ? 


In addition, it would be great to document correct usage of the aggregators 
somewhere. 
Even just in the javadoc of the aggregator interface might be enough. 

Should I try to add some documentation to the aggregator interface?
(org.apache.giraph.graph.Aggregator.java)
Then the committers can correct me if that documentation is wrong, I guess. 

Reply via email to