giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roman K (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GIRAPH-141) mulitgraph support in giraph
Date Thu, 10 May 2012 08:17:44 GMT

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

Roman K commented on GIRAPH-141:
--------------------------------

I think the best thing to do is to implement multigraph separately from simple graph, make
some benchmarks to see the performance and memory usage impacts on processing (simple graph
as multigraph) vs (simple graph) . If the impact could be neglected, refactor the code and
leave the multigraph implementation only.

Another, more specific question, is what should be done with methods like
{quote}
  /**
   * Request to remove a vertex from the graph
   * (applied just prior to the next superstep).
   *
   * @param vertexId Id of the vertex to be removed.
   */
public void removeEdgeRequest(I sourceVertexId, I destVertexId)
{quote}
For multigraphs, behavior for this method is quiet undefined.
May be 
{quote}
public void removeEdgeRequest(I sourceVertexId, I destVertexId, E edgeValue)
{quote}
should be introduced?
                
> mulitgraph 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
>
> 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