I read through the Hazelcast docs to see how they do it. They basically require 
each type to implement Serializable, but it can also implement DataSerializable 
instead, which provides a more efficient way of serializing by giving direct 
access to DataOutput and DataInput types. This provides methods to write/read 
literal types directly instead of converting an entire object into a 
byte-array. These makes a lot of sense since data classes are typically an 
aggregation of strings, collections, numbers. These can be handled directly by 
the toolkit without using byte array serialization.

I think we could keep this in the back of our heads as a possible solution for 
a future version and detect also on the interface that the data implements that 
is stored into a toolkit collection.

Thoughts?

On 26 May 2010, at 08:28, Alex Snaps wrote:

> Don't mean to hi-jack this thread, but I wanted to continue on custom
> Serialization mechanism to go beyond Java Serialization capabilities,
> that we discussed in this meeting:
> I didn't like the decorated data structure approach so much, for the
> same reasons as Chris mentioned.
> Thinking slightly more about it, I'd much rather like some JCE kinda
> mechanism, where one could register Serialization mechanism
> cluster-wide. When data get serialized it would also be signed so that
> the proper strategy to deserialize the stream can be automatically
> selected.
> Now that raised the question about the default mechanism to use and
> possibilities to override it depending on the data structure's
> instance or even usage.
> So I guess instance-wise, a constructor argument could register the
> strategy with the mechanism and with the global registry (unique
> identifier).
> If there is a requirement for usage-based strategy (different
> strategies in the same instance), we could fall back to decorating
> e.g. the Map, so that all entries added through that decorated
> instance would use another serialization mechanism... Now, would we
> need to track (instance- or, for maps, key-based) what strategy to use
> overtime?
> This all of course doesn't answer the question when this Serialization
> is to happen.
> Something in that direction could then also probably ease version
> transitions on stored Object.
> 
> Just wanted to get this out of my head and shared, even though I think
> this is less relevant now, given how I understood the discussion
> ended.
> Alex

--
Geert Bevin
Terracotta - http://www.terracotta.org

_______________________________________________
tc-dev mailing list
tc-dev@lists.terracotta.org
http://lists.terracotta.org/mailman/listinfo/tc-dev

Reply via email to