Thomas Jungblut created HAMA-737:
------------------------------------

             Summary: Add graph output writer
                 Key: HAMA-737
                 URL: https://issues.apache.org/jira/browse/HAMA-737
             Project: Hama
          Issue Type: New Feature
          Components: graph
    Affects Versions: 0.6.0
            Reporter: Thomas Jungblut
             Fix For: 0.6.1, 0.7.0


Currently only VertexID\tVertexValue can be written to the output.
If someone want to write anything else (e.G. the edge values) he can not.

Analogously to the VertexInputReader, it would be nice to have a 
VertexOutputWriter.

It should have the following abilities:

- setup (Configuration)
- write(Vertex<>, Peer)

The current state would be mimicked by a DefaultVertexOutputWriter that writes 
the vertex key and value to the peer.

The current writing happens in cleanup of the GraphJobRunner. 
Following things must be added:
- A reflection based instantiation process that reads a class from 
Configuration and makes it available through the VertexOutputWriter interface 
in the GraphJobRunner.
- cleanup must be calling the #write method for each vertex
- GraphJob should have another method called setVertexOutputWriterClass(class)
- GraphJob must ensure in submit override that the DefaultVertexOutputWriter is 
set if nothing was configured yet.

Usecase: 

Actually every algorithm that changes edge values and use it for further post 
processing. Also algorithms that need to hold state in the vertex that is not 
the value, currently this can only be solved by a multiple valued Writable 
Vertex value. (Bipartite Matching could be simplified in that regard). 


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