MaoYuan Xian created HAMA-794:
---------------------------------
Summary: When aggregator is enabled, resending message in each
message receiving round impacts the iteration performance.
Key: HAMA-794
URL: https://issues.apache.org/jira/browse/HAMA-794
Project: Hama
Issue Type: Improvement
Components: graph
Reporter: MaoYuan Xian
When aggregator is enabled, in each message receiving round, all received
message have been resent to put them behind the aggregate message.
doAggregationUpdates method of GraphJobRunner Class:
{code}
if (aggregationRunner.isEnabled() && iteration > 1) {
// in case we need to sync, we need to replay the messages that already
// are added to the queue. This prevents loosing messages when using
// aggregators.
if (firstVertexMessage != null) {
peer.send(peer.getPeerName(), firstVertexMessage);
}
GraphJobMessage msg = null;
while ((msg = peer.getCurrentMessage()) != null) {
peer.send(peer.getPeerName(), msg);
}
// now sync
peer.sync();
...
{code}
Should we do some improvement here? Record the original receiveQueue before the
sync, and after sync operation, read the aggregator updated value firstly, then
restore the original receiveQueue such that avoiding the message resending
operations.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira