[ 
https://issues.apache.org/jira/browse/HADOOP-1986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538882
 ] 

Doug Cutting commented on HADOOP-1986:
--------------------------------------

> I said that wouldn't work because you will likely want a singleton 
> deserializer object to handle deserializing more than one class [...]

I was with you to that point.  Why must you have a singleton serializer 
instance that handles more than one class?  If the deserializer does not need 
to know the class (e.g., Java serialization) then a singleton factory can be 
used.  But if the deserializer does need to know the class, either to create an 
instance or for deserialization itself, then a different factory instance would 
need to be created per class.  These could be cached by the framework, so no 
per-deserialized-object allocations need happen.  The client (e.g., 
SequenceFile) can reuse serializers, so they need not be allocated per object 
either.

> But it adds to my argument that you want to have separate deserialize methods 
> and let the client call the right one.

So would clients like SequenceFile and the mapreduce shuffle require different 
code to deserialize different classes?  We need to have generic client code.

> Again, my point is that deserializers for Thrift and Record I/O cannot create 
> objects themselves and will always require the client to pass in the object 
> [...]

Again, I don't see why Record I/O, where we control the code generation from an 
IDL, cannot generate a no-arg ctor.  Similarly for Thrift.  The ctor does not 
have to be public.  We already bypass protections when we create instances.

> Add support for a general serialization mechanism for Map Reduce
> ----------------------------------------------------------------
>
>                 Key: HADOOP-1986
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1986
>             Project: Hadoop
>          Issue Type: New Feature
>          Components: mapred
>            Reporter: Tom White
>            Assignee: Tom White
>             Fix For: 0.16.0
>
>         Attachments: SerializableWritable.java, serializer-v1.patch
>
>
> Currently Map Reduce programs have to use WritableComparable-Writable 
> key-value pairs. While it's possible to write Writable wrappers for other 
> serialization frameworks (such as Thrift), this is not very convenient: it 
> would be nicer to be able to use arbitrary types directly, without explicit 
> wrapping and unwrapping.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to