[
https://issues.apache.org/jira/browse/HAMA-380?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13021534#comment-13021534
]
Thomas Jungblut commented on HAMA-380:
--------------------------------------
Hi,
actually I have a few things:
* You're just sending the first class of the element in messagequeue. What if a
user is using several message classes and want to sync them? E.g. sending the
size of an message as an integermessage and afterwards a list of vertices as a
vertexmessage?
{noformat}
BSPMessage element = messages.get(0);
Class<? extends BSPMessage> clazz = element.getClass();
{noformat}
* Lot's of overhead with searching classes and instantiating.
I targeted it and added a class cache and structured the data a bit more to fit
with the multiple classes.
It's ~ 20% faster than the version you've provided.
Would be great to see a benchmark for it. I mean randbench is not meaningful at
all, because of the random component.
> Send messages in batches to reduce RPC overhead.
> ------------------------------------------------
>
> Key: HAMA-380
> URL: https://issues.apache.org/jira/browse/HAMA-380
> Project: Hama
> Issue Type: Improvement
> Components: bsp
> Affects Versions: 0.3.0
> Reporter: Miklos Erdelyi
> Assignee: Miklos Erdelyi
> Fix For: 0.3.0
>
> Attachments: bspmsgbundle.patch, bspmsgbundle.v2.patch
>
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> When profiling graph computations running on HAMA it turned out that huge
> amount of time is spent in RPC calls.
> To reduce this overhead I propose extending the GroomServer's API with a
> put(BSPMessageBundle) method so that a group of messages can be transferred
> from the caller to the callee at once. Also, the sync() operation should be
> improved by sending messages in batches rather than one-by-one.
> Using BSPMessageBundle makes it easier to add support for compression of
> messages later.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira