Nitay Joffe created GIRAPH-494:
----------------------------------

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


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.

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