giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eli Reisman (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GIRAPH-141) multigraph support in giraph
Date Fri, 29 Jun 2012 06:12:44 GMT

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

Eli Reisman commented on GIRAPH-141:
------------------------------------

No need to change anything. A multigraph has multiple edges to the same place. If the "same
edge" goes to more than one place, its not the same edge any more. So all you need for each
Edge<I,E> is an ArrayWritable of differnt edge values as the <E> param and the
same old <I> vertex Id's. This corresponds to a roadmap multigraph where many roads
from one vertex to another vertex (many roads from Boston to NYC -> single <I> value
for NYC) might differ in miles or scenic qualities only (several <E> values for different
roads, but only one <I> value -- they all end up the same place, from boston to NYC,
just different roads.)

I think if edges have different <E> values and different <I> values (point to
differnt places) then its not really a multigraph any more (they are not the same edges any
more, each has again become unique)



                
> 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

       

Mime
View raw message