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

Nitay Joffe commented on GIRAPH-684:
------------------------------------

Also this will potentially reduce the number of objects we create as using 
Vertex<Long,Long,Double> can be more efficient when we know how to serialize 
Longs/Doubles instead of having to wrap them in LongWritable / DoubleWritable 
all the time
                
> Improve Writable API
> --------------------
>
>                 Key: GIRAPH-684
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-684
>             Project: Giraph
>          Issue Type: Bug
>            Reporter: Nitay Joffe
>            Assignee: Nitay Joffe
>
> While working on GIRAPH-683 I realized something: The python code the user 
> has to write is fairly cumbersome, because they cant just say setValue(4), 
> they have to say setValue(IntWritable(4)). This is incredibly ugly in my 
> opinion.
> The problem is that we have a tight coupling between user types and their 
> serialization, so the "everything must be Writable" spreads throughout the 
> codebase.
> I think we need to change e.g. Vertex<I extends WritableComparable, V extends 
> Writable, E extends Writable> to just Vertex<I extends Comparable, V, E>.
> We keep a Map<Class, Serializer> that tells us how to serialize classes. This 
> map can be initialized with things we know how to serialize, e.g. Long, 
> Double, and String.
> So then the I,V,E,M parameters, in order to get serialized, would need to 
> adhere to one of the following:
> 1) Be a type we know how to serialize, e.g. Long.
> 2) Be Writable. The key is we don't _require_ it on the generic parameter, 
> but we check if it is and if so we use their code. This makes everything 
> backwards compatible.
> 3) The user has registered his own serializer. This lets them serialize 
> completely new types, for example a fastutil map, without having to subclass 
> that type to make it Writable.
> With this improved API in place, all computation code (and user code in 
> general) would be much cleaner and simpler. It will also make things like 
> Jython much more intuitive.

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