You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@giraph.apache.org by "Claudio Martella (JIRA)" <ji...@apache.org> on 2013/01/31 13:07:13 UTC

[jira] [Commented] (GIRAPH-494) Edge should be an interface

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

Claudio Martella commented on GIRAPH-494:
-----------------------------------------

Looks good to me. This IS going to have an impact on memory.

+1.
                
> Edge should be an interface
> ---------------------------
>
>                 Key: GIRAPH-494
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-494
>             Project: Giraph
>          Issue Type: Bug
>            Reporter: Nitay Joffe
>            Assignee: Nitay Joffe
>         Attachments: GIRAPH-494.patch
>
>
> In terms of architecture and for flexibility I think our Edge class should be an interface instead of a real class. In this diff I change it to an interface and add a sub interface called MutableEdge. The existing Edge class is now called DefaultEdge. Note that only one class in our codebase actually needs a MutableEdge - RepresentativeVertex. Everything else works perfectly fine using the immutable Edge interface.
> One nice thing this allowed me to do is to create a EdgeNoValue which we can use for algorithms whose edges have no value at all. Currently the same functionality is achieved by using NullWritable, however using EdgeNoValue means not storing a reference to the single NullWritable instance in every single edge. Working on a job that reads 1B+ edges per worker, a pointer per edge adds up.
> https://reviews.apache.org/r/9172/

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