VMware GemFire® PDX Serialization

VMware GemFire®’s Portable Data eXchange (PDX) is a cross-language data format that can reduce the cost of distributing and serializing your objects.

VMware GemFire® .NET PDX serialization:

The simplest option is to use automatic serialization by registering the VMware GemFire® .NET PDX reflection-based autoserializer in your application. When you have an autoserializer, VMware GemFire® uses it for all domain objects that are not separately treated under the IPDXSerializable interface.

For greater control, you can specify individual treatment for domain objects using the IPdxSerializable interface. Objects derived from the IPdxSerializable interface are not subject to autoserialization.

Portability of PDX Serializable Objects

When you create an IPdxSerializable object, VMware GemFire® stores the object’s type information in a central registry. The information is passed between peers, between clients and servers, and between distributed systems.

This offers a notable advantage to the .NET client, which shares data with Java cache servers. When using PDX serialization, clients automatically pass registry information to servers when they store an IPdxSerializable object. Clients can run queries and functions against the data in the servers without the servers needing to know anything about the stored objects. One client can store data on the server to be retrieved by another client, with the server never needing to know the object type. This means you can code your .NET clients to manage data using Java servers without having to create Java implementations of your .NET domain objects.

Reduced Deserialization of Serialized Objects

The access methods for IPdxSerializable objects allow you to examine specific fields of your domain object without deserializing the entire object. This can reduce deserialization costs significantly. Client .NET apps can run queries and execute functions against the objects in the server caches without deserializing the entire object on the server side. The query engine automatically recognizes PDX objects and uses only the fields it needs.

Clients can execute Java functions on server data that only access parts of the domain objects by using PdxInstance.

Likewise, peers can access just the fields needed from the serialized object, keeping the object stored in the cache in serialized form.

Delta Propagation with PDX Serialization

You can use VMware GemFire® delta propagation with PDX serialization.

PDX Serialization Details

See the following sections for details on implementing PDX serialization and autoserialization: