On 28 Jan 2013, at 09:14, Galder Zamarreño wrote:

> The reason we have storeAsBinary is due to lazyDeserialization. The latter 
> was a solution we designed to get around deserialization issues on app server 
> environments where JGroups would attempt to deserialize data with the wrong 
> classloader.
> 
> The idea at the time was that deserialization would be delayed until a thread 
> with the correct classloader in context would come and deserialize data, 
> hence the name: lazy deserialization. This was needed in AS4/5/6.
> 
> The design has always been the same, make sure data is kept in binary format 
> in the receiver and only deserialize when needed.
> 
> This lazy deserialization is no longer needed in AS7 cos a particular plugin 
> is set in JBoss Marshaller which adds modular classloader info to serialized 
> data. So, when data arrives in the receiver, it can be deserialized directly 
> cos the classloader info allows for the correct classloader to be found.
> 
> The naming change of lazyDeserialization to storeAsBinary was on purpouse and 
> precisely with the aim of it becoming a way to provide store-as-value 
> capabilities. The problem is that as you and Vladimir have spotted, this 
> doesn't really work like that.
Thanks for putting this in context.
Another reason for storing data in binary format is to reduce the number of 
times an object gets marshalled/unmarshalled. If the cluster is big enough and 
there's no key affinity, keeping data in binary format reduces the number of 
times it is marshalled/unmarshalelled.

Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)




_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to