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

Hudson commented on GIRAPH-277:
-------------------------------

Integrated in Giraph-trunk-Commit #201 (See 
[https://builds.apache.org/job/Giraph-trunk-Commit/201/])
    Part of GIRAPH-277. (Revision 1388268)
GIRAPH-277: Text Vertex Input/Output Format base classes overhaul.
(nitayj via aching) (Revision 1388258)

     Result = SUCCESS
aching : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1388268
Files : 
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/AdjacencyListVertexReader.java

aching : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1388258
Files : 
* /giraph/trunk/CHANGELOG
* /giraph/trunk/checkstyle.xml
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/LongDoubleFloatDoubleTextInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/NormalizingLongDoubleFloatDoubleTextInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimplePageRankVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleSuperstepVertex.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/SimpleTextVertexOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/examples/VertexWithDoubleValueFloatEdgeTextOutputFormat.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/VertexReader.java
* /giraph/trunk/src/main/java/org/apache/giraph/graph/VertexWriter.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/AdjacencyListTextVertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/AdjacencyListTextVertexOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/IdWithValueTextOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/IntIntNullIntTextInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/JsonBase64VertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/JsonBase64VertexOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/JsonLongDoubleFloatDoubleVertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/JsonLongDoubleFloatDoubleVertexOutputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/LongDoubleDoubleAdjacencyListVertexInputFormat.java
* 
/giraph/trunk/src/main/java/org/apache/giraph/io/TextDoubleDoubleAdjacencyListVertexInputFormat.java
* /giraph/trunk/src/main/java/org/apache/giraph/io/TextVertexInputFormat.java
* /giraph/trunk/src/main/java/org/apache/giraph/io/TextVertexOutputFormat.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/io/TestAdjacencyListTextVertexOutputFormat.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/io/TestIdWithValueTextOutputFormat.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/io/TestLongDoubleDoubleAdjacencyListVertexInputFormat.java
* 
/giraph/trunk/src/test/java/org/apache/giraph/io/TestTextDoubleDoubleAdjacencyListVertexInputFormat.java

                
> Text Vertex Input/Output Format base classes overhaul
> -----------------------------------------------------
>
>                 Key: GIRAPH-277
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-277
>             Project: Giraph
>          Issue Type: Improvement
>          Components: examples, lib
>            Reporter: Jaeho Shin
>            Assignee: Nitay Joffe
>         Attachments: GIRAPH-227-4.patch, GIRAPH-277-2.patch, 
> GIRAPH-277-3.patch, GIRAPH-277-5.patch, GIRAPH-277.patch
>
>
> 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.
> Please comment if you see my proposed change have any impact on other 
> aspects.  I'm unsure of how these additional layers of abstraction could 
> affect performance.

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