[ 
https://issues.apache.org/jira/browse/GIRAPH-80?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13149876#comment-13149876
 ] 

Avery Ching commented on GIRAPH-80:
-----------------------------------

Since

public abstract void compute(Iterator<M> msgIterator) throws IOException;

already gives the msgIterator to the user, getMsgList() should be used to 
internally transfer the messages to the vertex and get the message iterator.

So instead of in BasicVertex

public abstract List<M> getMsgList();

do something like 

void abstract addMessages(Collection<M> messages);
Iterator<M> abstract getMessageIterator();

Thoughts?
                
> Don't expose the list holding the messages in BasicVertex
> ---------------------------------------------------------
>
>                 Key: GIRAPH-80
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-80
>             Project: Giraph
>          Issue Type: Improvement
>    Affects Versions: 0.70.0
>            Reporter: Sebastian Schelter
>
> I'm currently trying to implement my own memory efficient vertex (similar to 
> LongDoubleFloatDoubleVertex) and ran into problems with getMsgList()
> This method returns a list pointing to the messages of the vertex and it is 
> modified externally (BasicRPCCommunications calls clear() and addAll() e.g.). 
> This makes it very hard to use something else than a java.util.List 
> internally (LongDoubleFloatDoubleVertex "hacked" around this) and it is 
> generally dangerous to have the internal state of an object be modified 
> externally. It also makes the code harder to read and understand.
> I'd suggest to change the API to let a vertex handle the modifications itself 
> internally (e.g. add something like pushMessages(...))

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to