Serializable |
|
|
Externalizable |
|
|
DataSerializable |
|
|
IdentifiedDataSerializable |
-
More CPU and memory usage efficient than Serializable
-
Reflection is not used during deserialization
-
Supported by all Native Clients
|
|
Portable |
-
More CPU and memory usage efficient than Serializable
-
Reflection is not used during deserialization
-
Versioning is supported
-
Partial deserialization is supported during Queries
-
Supported by all Native Clients
|
-
Specific to Hazelcast
-
Serialization interface must be implemented
-
A Factory and configuration must be implemented
-
Class definition is also sent with data but stored only once per class
|
Custom Serialization |
|
|
Compact Serialization (BETA) |
-
More memory usage efficient than Portable
-
Convenient, flexible, and can be used with no configuration
-
Does not require class to implement an interface
-
Supports schema evolution
-
Partial deserialization is supported during queries and indexing
|
-
Specific to Hazelcast
-
Schema is not part of the data but schema distribution
may incur costs on short-lived use cases
-
The format is in the BETA state and no compatibility
guarantees are given yet
-
Currently, not supported by the Hazelcast SQL engine
|