giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wang Xu (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GIRAPH-652) Not support only with edge input data in some algorithms.
Date Thu, 02 May 2013 09:48:16 GMT
Wang Xu created GIRAPH-652:
------------------------------

             Summary: Not support only with edge input data in some algorithms.
                 Key: GIRAPH-652
                 URL: https://issues.apache.org/jira/browse/GIRAPH-652
             Project: Giraph
          Issue Type: Wish
          Components: graph
    Affects Versions: 1.0.0
            Reporter: Wang Xu
            Priority: Minor


There are two types of input vertex-centric and edge-centric. Some algorithms need vertex
centric data, such as pairs of vertex ids and initial page ranks. Some algorithms only look
at edges. For example, connected components can be run without any vertex values.

In some conditions , we have only edge-centric data , have not vertex data .  Convert edge-centric
data to vertex-centrice data is not bad, but is better.

In my job , I modify EdgeInputSplitsCallable.java to support load vertex auto when loading
edge。

My mainly modify is:

{code:java} 
      graphState.getWorkerClientRequestProcessor().sendEdgeRequest(
          sourceId, readerEdge);
      context.progress(); // do this before potential data transfer
      ++inputSplitEdgesLoaded;
      
      //modify begin
      Vertex<I, V, E, M> vertex = this.configuration.createVertex();      
      if (vertex.getValue() == null) {
    	  vertex.setValue(configuration.createVertexValue());
        }
      vertex.setConf(configuration);
      vertex.setGraphState(graphState);      
      vertex.initialize(edgeReader.getCurrentEdge().getTargetVertexId(), vertex.getValue());
      
      PartitionOwner partitionOwner = 
          bspServiceWorker.getVertexPartitionOwner(vertex.getId());
      graphState.getWorkerClientRequestProcessor().sendVertexRequest(
          partitionOwner, vertex);      
      // modify end

      // Update status every VERTICES_UPDATE_PERIOD edges
      if (inputSplitEdgesLoaded % VERTICES_UPDATE_PERIOD == 0) {
        totalEdgesMeter.mark(VERTICES_UPDATE_PERIOD); 
{code} 

After do it , my giraph job can only load edge data in any examples。


I wish a similar features can be add into in future version。

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

Mime
View raw message