Serialization

Peter Levart peter.levart at marand.si
Wed Dec 16 04:19:03 PST 2009


On Wednesday 16 December 2009 12:55:10 Rémi Forax wrote:
> Peter Levart a écrit :
> > You don't need to bury that into closure's default serialization logic. You can achieve the same by custom serialization of a class that is a container for a closure. The only service you need from closure is obtaining it's code identification (class name?) and stable serialization of closure's fields. Bytecode can be obtained from closure's class' classloader.
> >
> > Peter
> >   
> 
> Yes, but how to have a stable class name ?

By specifying it (see my previous mail). You won't be referring to closure's class name in code anywhere statically, but serialization logic could, dynamically.

Peter

> 
> Rémi
> 
> > On Wednesday 16 December 2009 11:43:35 Rémi Forax wrote:
> >   
> >> I am affraid that the only solution is to serialize the bytecode of the 
> >> lambda expression/statement.
> >>
> >> Rémi
> >>
> >> Joshua Bloch a écrit :
> >>     
> >>> Mark,
> >>>
> >>> I'm sorry to say, I don't know.  It's a hard problem.  One possibility is to
> >>> provide a concise syntax for named singleton subclasses of functional types.
> >>>  That would finesse the problem rather than solving it.
> >>>
> >>>              Josh
> >>>
> >>> On Tue, Dec 15, 2009 at 10:38 PM, Mark Reinhold <mr at sun.com> wrote:
> >>>
> >>>   
> >>>       
> >>>>> Date: Tue, 15 Dec 2009 22:17:41 -0800
> >>>>> From: Joshua Bloch <jjb at google.com>
> >>>>>       
> >>>>> This is a moderately important decision. In Google's Java MapReduce API,
> >>>>>       
> >>>>>           
> >>>> we use
> >>>>     
> >>>>         
> >>>>> SAM interfaces to represent Mapper and Reducer. Instances must be
> >>>>>       
> >>>>>           
> >>>> serializable,
> >>>>     
> >>>>         
> >>>>> as they're serialized to pass them from the node that starts the
> >>>>>       
> >>>>>           
> >>>> MapReduce to
> >>>>     
> >>>>         
> >>>>> the worker nodes (which do the actual mapping and reduction). That means
> >>>>>       
> >>>>>           
> >>>> we
> >>>>     
> >>>>         
> >>>>> won't be able to use closure syntax for MapReduce, which seems like a
> >>>>>       
> >>>>>           
> >>>> shame.
> >>>>     
> >>>>         
> >>>>> This is no worse than what we do with SAM types today, but it's no
> >>>>>       
> >>>>>           
> >>>> better,
> >>>>     
> >>>>         
> >>>>> either. Can we do better?
> >>>>>       
> >>>>>           
> >>>> Maybe.  How would you suggest we address the concerns which Peter raised?
> >>>>
> >>>> - Mark
> >>>>
> >>>>     
> >>>>         
> >>>   
> >>>       
> >>
> >>     
> 
> 


More information about the lambda-dev mailing list