Puede utilizar los plug-ins DataSerializer
para grabar serializadores optimizados a fin de almacenar objetos
Java y otros datos en formato binario
en la cuadrícula. El plug-in también proporciona métodos que puede utilizar para consultar
atributos en los datos binarios sin necesidad de que el objeto de datos entero se infle.
Los plug-ins DataSerializer incluyen tres plug-ins principales y
varias interfaces mixin opcionales. El plug-in MapSerializerPlugin
incluye metadatos acerca de la relación entre una correlación y
otras correlaciones. También incluye una referencia a un KeySerializerPlugin
y ValueSerializerPlugin. Los plug-ins de serializador de clave y valor
incluyen metadatos y código de serialización responsables de interactuar
con los respectivos datos de clave y valor para una correlación. Un plug-in
MapSerializerPlugin debe incluir uno o ambos serializadores de clave y valor.
El plug-in KeySerializerPlugin proporciona métodos y metadatos para serializar, inflar y examinar claves. El plug-in ValueSerializer proporciona métodos y metadatos para serializar, inflar y examinar claves. Ambas interfaces
tienen requisitos diferentes. Para obtener información detallada sobre
los métodos que están disponibles en los plug-ins DataSerializer, consulte
la documentación de API para el paquete com.ibm.websphere.objectgrid.plugins.io.
- Plug-in MapSerializerPlugin
- MapSerializerPlugin es el punto de plug-in principal en la interfaz BackingMap
e incluye dos plug-ins anidados: los plug-ins KeySerializerPlugin y
ValueSerializerPlugin. Puesto que eXtreme Scale no soporta
plug-ins anidados o conectados, el plug-in BasicMapSerializerPlugin accede de forma artificial a
estos plug-ins anidados. Cuando se utilizan estos plug-ins con
la infraestructura OSGi, el único proxy es el plug-in MapSerializerPlugin.
Ninguno de los plug-ins anidados se debe almacenar en memoria caché en otros plug-ins dependientes como, por ejemplo, cargadores, a menos que estos plug-ins también estén a la escucha de sucesos del ciclo de vida de BackingMap. Esto
es importante cuando se ejecuta en una infraestructura OSGi, porque
las referencias a esos plug-ins se pueden continuar renovándose.
- Plug-in KeySerializerPlugin
- El plug-in KeySerializerPlugin amplía la interfaz DataSerializer
e incluye otras interfaces mixin y metadatos que describen la clave. Utilice este plug-in para serializar e inflar objetos y atributos de datos de clave.
- Plug-in ValueSerializerPlugin
- El plug-in ValueSerializerPlugin amplía la interfaz DataSerializer, pero
no expone métodos adicionales. Utilice este plug-in para serializar e inflar objetos y atributos de datos de valores.
Interfaces mixin opcionales
Las interfaces mixin opcionales proporcionan prestaciones adicionales, por ejemplo:
- Mantenimiento de versiones optimista
- La interfaz versionable permite que el plug-in ValueSerializerPlugin
maneje la comprobación de versión y las actualizaciones de versión cuando
se utiliza el bloqueo optimista.
Si no se implementa el mantenimiento de versiones y se habilita el
bloqueo optimista, la versión es la forma serializada entera del
valor de objeto de datos.
- Direccionamiento no basado en hashCode
- La interfaz particionable permite que las implementaciones de KeySerializerPlugin
direccionen las solicitudes a particiones explícitas.
Esto es equivalente a la interfaz PartitionableKey, cuando se utiliza con la API ObjectMap
sin un KeySerializerPlugin. Sin esta característica, la clave se direcciona a
la partición en función del código hash resultante.
- Interfaz UserReadable
(toString)
- La interfaz UserReadable (toString) permite que todas las implementaciones de DataSerializer
proporcionen un método alternativo para visualizar datos en los
archivos de registro y los depuradores. Con esta posibilidad, se pueden ocultar los datos confidenciales como por ejemplo contraseñas. Si
las implementaciones de DataSerializer no implementan esta interfaz, es
posible que el entorno de ejecución llame directamente a toString()
en el objeto o incluya representaciones alternativas, si es apropiado.
- Soporte de la evolución
- La interfaz Mergeable se puede implementar en las implementaciones de plug-in
ValueSerializerPlugin para permitir la interoperatividad entre varias
versiones de objetos cuando hay diferentes versiones DataSerializer
actualizando datos en la cuadrícula durante su tiempo de vida. Los métodos Mergeable permiten que el plug-in DataSerializer retenga los datos que de otra manera no podría entender.