Geode Data Serialization (DataSerializable and DataSerializer)
Geode’s DataSerializable
interface gives you quick serialization of your objects.
Data Serialization with the DataSerializable Interface
Geode’s DataSerializable
interface gives you faster and more compact data serialization than the standard Java serialization or Geode PDX serialization. However, while Geode DataSerializable
interface is generally more performant than Geode’s PdxSerializable
, it requires full deserialization on the server and then reserialization to send the data back to the client.
You can further speed serialization by registering the instantiator for your DataSerializable
class through Instantiator
, eliminating the need for reflection to find the right serializer. You can provide your own serialization through the API.
The recommended way to register your custom Instantiator
is by specifying it in the serialization-registration
element of cache.xml.
For more information, see the online Java documentation for DataSerializable
and DataSerializer
.
Example cache.xml:
The following provides an example of how to register an instantiator using cache.xml.
<serialization-registration>
<instantiator id="30">
<class-name>com.package.MyClass</class-name>
</instantiator>
</serialization-registration>
In addition to speeding standard object serialization, you can use the DataSerializable
interface to serialize any custom objects you store in the cache.
Serializing Your Domain Object with DataSerializer
You can also use DataSerializer
to serialize domain objects. It serializes data in the same way as DataSerializable
but allows you to serialize classes without modifying the domain class code.
See the JavaDocs on DataSerializable and DataSerializer for more information.