En el caso más sencillo, WebSphere eXtreme
Scale se puede utilizar como una memoria caché de cuadrícula de datos en memoria local (no distribuida). El caso local beneficia especialmente a las
aplicaciones de simultaneidad alta donde varias hebras necesitan acceder y
modificar los datos transitorios. Los datos que se mantienen en una cuadrícula de datos local se pueden indexar y recuperar mediante consultas. Las consultas le ayudan a utilizar conjuntos de datos en memoria grandes. El soporte proporcionado con Máquina virtual Java (JVM), aunque está listo para su uso, tiene una estructura de datos limitada.
La topología de la memoria caché en memoria local para WebSphere eXtreme
Scale se utiliza para proporcionar un acceso coherente y transaccional a los datos temporales de una única máquina virtual Java.
Figura 1. Escenario de memoria caché en memoria local
Ventajas
- Fácil configuración: se puede crear un ObjectGrid a través de un programa o de forma declarativa con el archivo XML descriptor de ObjectGrid o con otras infraestructuras como, por ejemplo, Spring.
- Rápido: cada BackingMap puede adaptarse de forma independiente de modo que
la utilización de la memoria y la simultaneidad sean óptimas.
- Es ideal para las topologías de máquina virtual Java única con conjuntos de datos pequeños o para almacenar en memoria caché los datos de acceso frecuente.
- Es transaccional. Las actualizaciones de BackingMap se pueden agrupar en una única unidad de trabajo y se pueden integrar como último participante en transacciones de 2 fases como, por ejemplo, transacciones JTA (Java Transaction
Architecture).
Desventajas
- No es tolerante a errores.
- Los datos no se replican. Las memorias caché en memoria son la mejor solución para los datos de referencia de sólo lectura.
- No es escalable. La cantidad de memoria necesaria para la base de datos podría desbordar la máquina virtual Java.
- Se producen problemas al añadir máquinas virtuales Java:
- Los datos no se pueden particionar fácilmente.
- Se debe replicar manualmente el estado entre las máquinas virtuales Java o cada instancia podría tener distintas versiones de los mismos datos.
- La operación de invalidación es muy costosa.
- Cada memoria caché se debe calentar de forma independientemente. El calentamiento es el periodo de carga de un conjunto de datos, de forma que la memoria caché se rellena con datos válidos.
Cuándo se debe utilizar
La topología de despliegue de la memoria caché en memoria local sólo se debe utilizar cuando la cantidad de datos que se deben almacenar en memoria caché es pequeña (cabe en una única máquina virtual Java) y es relativamente estable. Los datos
obsoletos deben tolerarse con este acercamiento. El uso de desalojadores para
mantener en la memoria caché los datos usados con más frecuencia o los más
recientes puede ayudar a mantener pequeño el tamaño de la memoria caché y a
aumentar la relevancia de los datos.