-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/6402/
-----------------------------------------------------------

Review request for giraph.


Description
-------

(copied from GIRAPH-277)

The current way of implementing VertexInputFormat and VertexReader had bad 
smell. It required users to understand how these two classes are glued 
together, and forced similar codes to be duplicated in every new input format. 
(Similarly for the VertexOutputFormat and VertexWriter.) Anyone who wants to 
create a new format should create an underlying record reader or writer at the 
right moment and delegate some calls to it, which seemed unnecessary detail 
being exposed. Besides, type parameters had to appear all over every new format 
code, which was extremely annoying for both reading existing code and writing a 
new one. I was very frustrated writing my first format code especially when I 
compared it to writing a new vertex code. I thought writing a new input/output 
format should be as simple as vertex.
So, I have refactored TextVertexInputFormat and OutputFormat into new forms 
that have no difference in their interfaces, but remove a lot of burden for 
subclassing. Instead of providing static VertexReader base classes, I made it a 
non-static inner-class of its format class, which helps eliminate the repeated 
code for gluing these two, already tightly coupled classes. This has additional 
advantage of eliminating all the Generics type variables on the VertexReader 
side, which makes overall code much more concise. I added several useful 
TextVertexReader base classes that can save efforts for implementing 
line-oriented formats.


This addresses bug GIRAPH-277.
    https://issues.apache.org/jira/browse/GIRAPH-277


Diffs
-----

  trunk/checkstyle.xml 1369914 
  
trunk/src/main/java/org/apache/giraph/examples/IntIntNullIntTextInputFormat.java
 1369914 
  trunk/src/main/java/org/apache/giraph/examples/SimplePageRankVertex.java 
1369914 
  trunk/src/main/java/org/apache/giraph/examples/SimpleSuperstepVertex.java 
1369914 
  
trunk/src/main/java/org/apache/giraph/examples/SimpleTextVertexOutputFormat.java
 1369914 
  
trunk/src/main/java/org/apache/giraph/examples/VertexWithComponentTextOutputFormat.java
 1369914 
  trunk/src/main/java/org/apache/giraph/graph/VertexWriter.java 1369914 
  
trunk/src/main/java/org/apache/giraph/lib/AdjacencyListTextVertexInputFormat.java
 PRE-CREATION 
  
trunk/src/main/java/org/apache/giraph/lib/AdjacencyListTextVertexOutputFormat.java
 1369914 
  trunk/src/main/java/org/apache/giraph/lib/AdjacencyListVertexReader.java 
1369914 
  trunk/src/main/java/org/apache/giraph/lib/IdWithValueTextOutputFormat.java 
1369914 
  trunk/src/main/java/org/apache/giraph/lib/JsonBase64VertexInputFormat.java 
1369914 
  trunk/src/main/java/org/apache/giraph/lib/JsonBase64VertexOutputFormat.java 
1369914 
  
trunk/src/main/java/org/apache/giraph/lib/JsonLongDoubleFloatDoubleVertexInputFormat.java
 1369914 
  
trunk/src/main/java/org/apache/giraph/lib/JsonLongDoubleFloatDoubleVertexOutputFormat.java
 1369914 
  
trunk/src/main/java/org/apache/giraph/lib/LongDoubleDoubleAdjacencyListVertexInputFormat.java
 1369914 
  
trunk/src/main/java/org/apache/giraph/lib/TextDoubleDoubleAdjacencyListVertexInputFormat.java
 1369914 
  trunk/src/main/java/org/apache/giraph/lib/TextVertexInputFormat.java 1369914 
  trunk/src/main/java/org/apache/giraph/lib/TextVertexOutputFormat.java 1369914 
  
trunk/src/test/java/org/apache/giraph/lib/TestAdjacencyListTextVertexOutputFormat.java
 1369914 
  
trunk/src/test/java/org/apache/giraph/lib/TestIdWithValueTextOutputFormat.java 
1369914 
  
trunk/src/test/java/org/apache/giraph/lib/TestLongDoubleDoubleAdjacencyListVertexInputFormat.java
 1369914 
  
trunk/src/test/java/org/apache/giraph/lib/TestTextDoubleDoubleAdjacencyListVertexInputFormat.java
 1369914 

Diff: https://reviews.apache.org/r/6402/diff/


Testing
-------


Thanks,

Jaeho Shin

Reply via email to