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

Avery Ching commented on GIRAPH-277:
------------------------------------

Did you run 'mvn clean verify' with this patch?  I got 

There are 2 checkstyle errors.  We need to fix this before moving on.  Before 
this patch, everything is fine.
                
> 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.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