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

Alessandro Presta commented on GIRAPH-141:
------------------------------------------

As I see it, the edge ids are only known to the respective source vertices. 
When sending a request to add an edge, the requester is unaware of the internal 
representation in the source vertex.
Having global edge ids instead of per-vertex would also lead to additional race 
conditions to be handled at each superstep.

In other words, I think even for multigraphs we want to adhere to the principle 
of a vertex-centric API where edges are second class citizens.

Perhaps it would be even clearer if we didn't even expose J as a type argument, 
and just used integer edge ids.

I can start putting together an implementation that works so we highlight 
potential limitations of this approach.
                
> multigraph support in giraph
> ----------------------------
>
>                 Key: GIRAPH-141
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-141
>             Project: Giraph
>          Issue Type: Improvement
>          Components: graph
>            Reporter: André Kelpe
>            Assignee: Alessandro Presta
>
> The current vertex API only supports simple graphs, meaning that there can 
> only ever be one edge between two vertices. Many graphs like the road network 
> are in fact multigraphs, where many edges can connect two vertices at the 
> same time.
> Support for this could be added by introducing an Iterator<EdgeWritable> 
> getEdgeValue() or a similar construct. Maybe introducing a slim object like a 
> Connector between the edge and the vertex is also a good idea, so that you 
> could do something like:
> {code} 
> for (final Connector<EdgeWritable, VertexWritable> conn: getEdgeValues(){
>      final EdgeWritable edge = conn.getEdge();
>      final VertexWritable otherVertex = conn.getOther();
>      doInterestingStuff(otherVertex);
>      doMoreInterestingStuff(edge);
> }
> {code} 

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