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

Maja Kabiljo edited comment on GIRAPH-613 at 4/9/13 6:41 PM:
-------------------------------------------------------------

Probably I'm missing something here - why is this better than the current 
state? Especially if we still allow user to create his own VertexWritable. And 
I don't see how this makes it clearer to the user that he shouldn't add fields 
to vertex. 

Ultimately we might want to remove Vertex completely, and have user implement 
some Computation interface, which would have a method like: 
compute(vertexId, vertexValue, edges, messages)
This will really prevent user from adding additional fields directly to the 
vertex.
Also, in many applications we have different kind of computation going on 
during different supersteps - have a lot of 
{code} if (superstep == ..) { ... } else if (superstep == ..) ... {code}
We use different messages during different supersteps too, and we have to hack 
it by putting a message type inside of MessageWritable. Having something like 
Computation instead of Vertex, and providing an option to switch Computation 
during application would make all of this much easier. But definitely not for 
the next release :-)
                
      was (Author: majakabiljo):
    Probably I'm missing something here - why is this better than the current 
state? Especially if we still allow user to create his own VertexWritable. And 
I don't see how this makes it clearer to the user that he shouldn't add fields 
to vertex. 

Ultimately we might want to remove Vertex completely, and have user implement 
some Computation interface, which would have a method like: 
compute(vertexId, vertexValue, edges, messages)
This will really prevent user from adding additional fields directly to the 
vertex.
Also, in many applications we have different kind of computation going on 
during different supersteps (have a lot of "if (superstep == ..) { ... } else 
if (superstep == ..) ... ). We use different messages during different 
supersteps too, and we have to hack it by putting a message type inside of 
MessageWritable. Having something like Computation instead of Vertex, and 
providing an option to switch Computation during application would make all of 
this much easier. But definitely not for the next release :-)
                  
> Remove Writable from the interfaces implemented by Vertex
> ---------------------------------------------------------
>
>                 Key: GIRAPH-613
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-613
>             Project: Giraph
>          Issue Type: Improvement
>            Reporter: Claudio Martella
>            Priority: Minor
>         Attachments: NonWritable.diff
>
>
> Currently, Vertex implements Writable, meaning that we depend on the user 
> (except for the default implementation) on the way the graph is serialised 
> and deserialized. This means we cannot do certain optimisations, and the user 
> can actually add additional stuff to Vertex more than Value, Id, Edges and 
> halt state. By removing this possibility (or allowing them to extend a 
> default implementation) we take control of this.

--
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

Reply via email to