La API de memoria caché dinámica está disponible para las aplicaciones Java EE desplegadas en WebSphere Application Server. Puede utilizar el proveedor de memoria caché dinámica para almacenar en la memoria caché los datos empresariales, el HTML generado o para sincronizar los datos de la memoria caché en la célula utilizando el servicio de réplica de datos (DRS).
Previamente, el único proveedor de servicios para la API de memoria caché dinámica era el motor de la memoria caché dinámica incorporada en WebSphere Application Server. Los clientes pueden utilizar la interfaz del proveedor de servicios de memoria caché dinámica en WebSphere Application Server para conectarse a la memoria caché dinámica de eXtreme Scale. Configurando esta prestación, podrá habilitar aplicaciones escritas con la API de memoria caché dinámica o aplicaciones que utilizan la memoria caché de nivel de contenedor (como, por ejemplo, servlets) para utilizar las características y capacidades de rendimiento de WebSphere eXtreme Scale.
Puede instalar y configurar el proveedor de memoria caché dinámico tal como se describe en Configuración del proveedor de memoria caché dinámica para WebSphere eXtreme Scale.
Las características disponibles en WebSphere eXtreme Scale aumentan de forma significativa las capacidades distribuidas de la API de memoria caché dinámica más allá de lo que ofrece el motor de memoria caché dinámica predeterminado y el servicio de duplicación de datos. Con eXtreme Scale, puede crear memorias caché que se distribuyen verdaderamente entre varios servidores, en lugar de sólo duplicarlas y sincronizarlas entre los servidores. Además, las memorias caché de eXtreme Scale son transaccionales y están disponibles, lo que asegura que cada servidor ve los mismos contenidos para el servicio de memoria caché dinámica. WebSphere eXtreme Scale ofrece una mayor calidad de servicio para la réplica de memoria caché que DRS.
Sin embargo, estas ventajas no implican que el proveedor de memoria caché dinámica de eXtreme Scale sea la opción correcta para cada aplicación. Utilice los árboles de decisiones y la matriz de comparaciones de característica siguiente para determinar qué tecnología se adapta mejora a la aplicación.
Características de memoria caché | Proveedor predeterminado | Proveedor de eXtreme Scale | API de eXtreme Scale |
---|---|---|---|
Memoria caché local en memoria |
x |
x |
x |
Memoria caché distribuida |
Incorporado |
Incorporado, particionado-incorporado y particionado-remoto |
Varios |
Ampliable de forma lineal |
x |
x |
|
Réplica fiable (síncrona) |
ORB |
ORB |
|
Desbordamiento de disco |
x |
||
Desalojo |
LRU/TTL/basado en almacenamiento dinámico |
LRU/TTL (por partición) |
Varios |
Invalidación |
x |
x |
x |
Relaciones |
ID de dependencia, plantillas, |
ID de dependencia, plantillas, |
x |
Búsquedas sin clave |
Consulte e índice |
||
Integración de fondo |
Cargadores |
||
Transaccional |
Implícita |
x |
|
Almacenamiento basado en clave |
x |
x |
x |
Sucesos y receptores |
x |
x |
x |
Integración de WebSphere Application Server |
Sólo una única célula |
Varias células |
Célula independiente |
Soporte de Java Standard Edition |
x |
x |
|
Supervisión y estadísticas |
x |
x |
x |
Seguridad |
x |
x |
x |
Características de memoria caché | Proveedor predeterminado | Proveedor de eXtreme Scale | API de eXtreme Scale |
Colocación en memoria caché de los resultados del servlet/JSP de WebSphere Application Server |
V5.1+ |
V6.1.0.25+ |
|
Colocación en memoria caché del resultado de WebSphere Application Server Web Services (JAX-RPC) |
V5.1+ |
V6.1.0.25+ |
|
Colocación en memoria caché de la sesión HTTP |
x |
||
Proveedor de memoria caché para OpenJPA e Hibernate |
x |
||
Sincronización de la base de datos utilizando OpenJPA e Hibernate |
x |
Características de memoria caché | Proveedor predeterminado | Proveedor de eXtreme Scale | API de eXtreme Scale |
---|---|---|---|
API basada en mandato |
API de infraestructura de mandatos |
API de infraestructura de mandatos |
API de DataGrid |
API basada en correlación |
API DistributedMap |
API DistributedMap |
API ObjectMap |
API EntityManager |
x |
Para ver una descripción más detallada sobre cómo funcionan las memorias caché distribuidas de eXtreme Scale, consulte Planificación de la topología .
Un servicio de memoria caché dinámica creado con el proveedor eXtreme Scale se puede desplegar en cualquiera de las tres topologías disponibles, lo que le permite adaptar la memoria caché específicamente al rendimiento, los recursos y las necesidades administrativas. Estas topologías son: incorporado, particionado incorporado y remoto.
Topología incorporada
La topología incorporada es similar a la memoria caché dinámica predeterminada y al proveedor DRS. Las instancias de memoria caché distribuida creadas con la topología incorporada conservan una copia de la memoria caché dentro de cada proceso eXtreme Scale que accede al servicio de memoria caché dinámica, lo que permite que todas las operaciones de lectura se produzcan de forma local. Todas las operaciones de escritura pasan por un proceso de único servidor, en el que se gestionan los bloqueos transaccionales, antes de duplicarse el resto de los servidores. Consecuentemente, esta topología es mejor para las cargas de trabajo donde las operaciones de memoria caché-lectura superan en número a las operaciones de memoria caché-escritura.
Con la topología incorporada, las entradas de memoria caché nuevas o actualizadas no son visibles de forma inmediata en cada proceso de servidor único. Una entrada de caché no será visible, incluso para el servidor que lo ha generado, hasta que se propague a través de los servicios de duplicación asíncrona de WebSphere eXtreme Scale. Estos servicios funcionan tan rápido como lo permita el hardware, pero sigue habiendo un pequeño retardo. La topología incorporada se muestra en la siguiente imagen:
Topología incorporada con particiones
Para las cargas de trabajo donde se producen las escrituras de memoria caché tan a menudo o con más frecuencia que las lecturas, se recomiendan las topologías incorporadas con particiones o las remotas. La topología incorporada con particiones conserva todos los datos de la memoria caché dentro de los procesos WebSphere Application Server que acceden a la memoria caché. Sin embargo, cada proceso sólo almacena una parte de los datos de la memoria caché. Todas las lecturas y escrituras de los datos situados en esta “partición” pasan por el proceso, lo que significa que la mayoría de las solicitudes para la memoria caché se cumplirán con una llamada a procedimiento remoto. Esto genera una mayor latencia para las operaciones de lectura que la topología incorporada, pero la capacidad de la memoria caché distribuida para manejar las operaciones de lectura y escritura se ampliará de forma lineal con el número de procesos WebSphere Application Server que acceden a la memoria caché. Además, con esta topología, el tamaño máximo de la memoria caché no está vinculado al tamaño de un único proceso WebSphere. Puesto que cada proceso sólo alberga una parte de la memoria caché, el tamaño máximo de la memoria caché pasa a ser el tamaño agregado de todos los procesos, menos la sobrecarga del proceso. La topología incorporada con particiones se muestra en la siguiente imagen:
Por ejemplo, suponga que tiene una cuadrícula de procesos de servidor con 256 megabytes de almacenamiento dinámico libre para alojar el servicio de memoria caché dinámica. El proveedor de la memoria caché dinámica predeterminada y el proveedor eXtreme Scale que utiliza la topología incorporada se deben limitar ambos a un tamaño de memoria caché en memoria de 256 megabytes menos la sobrecarga. Consulte la sección Planificación de capacidad y Alta disponibilidad más adelante en este documento. El proveedor eXtreme Scale que utiliza la topología incorporada con particiones se limitará a un tamaño de memoria caché de un gigabyte menos la sobrecarga. De esta forma, el proveedor WebSphere eXtreme Scale posibilita tener servicios de memoria caché dinámica en memoria mayores que el tamaño de un proceso de servidor único. El proveedor de la memoria caché dinámica predeterminada se basa en el uso de una memoria caché de disco para permitir a las instancias de memoria caché crecer más allá del tamaño de un proceso único. En muchas situaciones, el proveedor WebSphere eXtreme Scale puede eliminar la necesidad de una memoria caché de disco y los caros sistemas de almacenamiento en disco que hacen que funcione.
Topología remota
La topología remota también se puede utilizar para eliminar la necesidad de una memoria caché de disco. La única diferencia entre las topologías remota e incorporada con particiones es que todos los datos de la memoria caché se almacenan fuera de los procesos WebSphere Application Server cuando se utiliza la topología remota. WebSphere eXtreme Scale soporta los procesos de contenedor autónomo para los datos de memoria caché. Estos procesos de contenedor tienen una sobrecarga menor que un proceso WebSphere Application Server y, además, no están limitados a utilizar una máquina virtual Java (JVM) determinada. Por ejemplo, un proceso WebSphere Application Server de 32 bits que está accediendo a los datos de un servicio de memoria caché dinámica podría estar situado en un proceso de contenedor eXtreme Scale que se ejecuta en una JVM de 64 bits. Esto permite a los usuarios utilizar la capacidad de memoria aumentada de los procesos de 64 bits para la colocación en memoria caché, sin generar la sobrecarga adicional de 64 bits para los procesos de servidor de aplicaciones. La topología remota se muestra en la siguiente imagen:
Compresión de datos
La compresión es otra característica de rendimiento ofrecida por el proveedor de memoria caché dinámica WebSphere eXtreme Scale que puede ayudar a los usuarios a gestionar la sobrecarga de la memoria caché. El proveedor de la memoria caché dinámica predeterminada no permite la compresión de los datos almacenados en la memoria caché. Con el proveedor eXtreme Scale, esto ahora es posible. La compresión de memoria caché mediante el algoritmo de deflate se puede habilitar en cualquiera de las tres topologías distribuidas. Habilitar la compresión aumentará la sobrecarga para las operaciones de lectura y escritura, pero aumentará drásticamente la densidad de la memoria caché para las aplicaciones, como la colocación en memoria caché de servlet y JSP.
Almacenamiento local de memoria caché en memoria
El proveedor de memoria caché dinámica de WebSphere eXtreme Scale se puede utilizar también para recuperar las instancias de memoria caché dinámica que tienen la réplica inhabilitada. Al igual que el proveedor de memoria caché dinámica predeterminado, estas memorias caché pueden almacenar datos no serializables. También pueden ofrecer un mejor rendimiento que el proveedor de memoria caché dinámica en grandes servidores de varios procesadores porque la vía de acceso del código eXtreme Scale está diseñado para maximizar la concurrencia de la memoria caché en memoria.
En el caso de las memorias de caché en memoria donde la réplica está inhabilitada, no debería haber ninguna diferencia funcional apreciable entre las memorias caché respaldadas por el proveedor de la memoria caché dinámica predeterminada y WebSphere eXtreme Scale. Los usuarios no deberían advertir ninguna diferencia funcional entre las dos memorias caché, excepto que las memorias caché respaldadas por WebSphere eXtreme Scale no soportan las estadísticas ni la descarga de disco, ni las operaciones relacionadas con el tamaño de la memoria caché en memoria.
En el caso de las memorias caché donde está habilita la réplica, no habrá ninguna diferencia apreciable en los resultados devueltos por las mayoría de las llamadas de la API de memoria caché dinámica, independientemente de si el cliente está utilizando el proveedor de memoria caché dinámica o el proveedor de memoria caché dinámica eXtreme Scale. Para algunas operaciones, no podrá emular el comportamiento del motor de memoria caché dinámica utilizando eXtreme Scale.
Se informa de las estadísticas de memoria caché dinámica a través de la aplicación CacheMonitor o el MBean de memoria caché dinámica. Cuando se utiliza el proveedor de memoria caché dinámica eXtreme Scale, se informará de las estadísticas a través de estas interfaces, pero el contexto de los valores estadísticos serán diferentes.
Si se comparte una instancia de memoria caché dinámica entre tres servidores llamados A, B y C, el objeto de las estadísticas de memoria caché dinámica sólo devuelve las estadísticas para la copia de la memoria caché en el servidor que realizó la llamada. Si se recuperan las estadísticas en el servidor A, sólo reflejan la actividad en el servidor A.
Con eXtreme Scale, sólo hay una memoria caché distribuida compartida entre todos los servidores, de forma que no es posible rastrear las mayoría de las estadísticas en una base de servidor-por-servidor, como lo hace el proveedor de la memoria caché dinámica predeterminada. A continuación, aparece una lista de las estadísticas generadas por la API de estadísticas de memoria caché y lo que representan cuando se utiliza el proveedor de memoria caché dinámica WebSphere eXtreme Scale. Del mismo modo que el proveedor predeterminado, estas estadísticas no se sincronizan y, por lo tanto, pueden variar hasta el 10% para las cargas de trabajo concurrentes.
El proveedor de memoria caché dinámica le permite restablecer las estadísticas de memoria caché. Con el proveedor predeterminado, la operación restablecer sólo borra las estadísticas en el servidor afectado. El proveedor de memoria caché dinámica eXtreme Scale rastrea la mayoría de sus datos estadísticos en los contenedores de la memoria caché remota. Estos datos no se borran ni modifican cuando se restablecen las estadísticas. En lugar de esto, el comportamiento de la memoria caché dinámica predeterminada se simula en el cliente informando de la diferencia entre el valor actual de una estadística determinada y el valor de dicha estadística la última que se llamó a la operación restablecer en dicho servidor.
Por ejemplo, si el tráfico en el servidor A genera 10 supresiones de memoria caché, las estadísticas en el servidor A y en el servidor B informarán de 10 supresiones. Ahora, si las estadísticas en el servidor B se restablecen y el tráfico en el servidor A genera 10 supresiones adicionales, las estadísticas en el servidor A informarán de 20 supresiones y los stats en el servidor B informarán de 10 supresiones.
La API de memoria caché dinámica permite a los usuarios registrar escuchas de sucesos. Cuando se utiliza eXtreme Scale como el proveedor de memoria caché dinámica, los escuchas de sucesos funcionan como se esperaba para las memorias caché locales.
Para las memorias caché distribuidas, el comportamiento del sucesos dependerá de la topología que se utiliza. Para las memorias caché que utilizan la topología incorporada, los sucesos se generarán en el servidor que maneja las operaciones de escritura, también conocidas como el fragmento primario. Esto significa que sólo un servidor recibirá notificaciones de suceso, pero tendrá todas las notificaciones de suceso esperadas normalmente del proveedor de memoria caché dinámica. Puesto que WebSphere eXtreme Scale elige el fragmento primario en el tiempo de ejecución, no es posible garantizar que un proceso de servidor determinado reciba siempre estos sucesos.
Las memorias caché incorporadas con particiones generarán sucesos en cualquier servidor que aloje una partición de la memoria caché. Si una memoria caché tiene 11 particiones y cada servidor de una cuadrícula de 11 servidores de WebSphere Application Server Network Deployment aloja una de estas particiones, cada servidor recibirá los sucesos de la memoria caché dinámica para las entradas de memoria caché que aloja. Ningún proceso de servidor único verá toda la información de todos los sucesos, a menos que las 11 particiones estuvieran alojadas en dicho proceso de servidor. Del mismo modo que la topología incorporada, no es posible garantizar que un proceso de servidor determinado vaya a recibir un conjunto determinado de sucesos o cualquier suceso.
Las memorias caché que utilizan la topología remota no soportan los sucesos de memoria caché dinámica.
El proveedor de la memoria caché dinámica WebSphere eXtreme Scale no soporta la memoria caché de disco. Cualquier llamada de MBean relacionadas con la memoria caché de disco no funcionará.
El proveedor de memoria caché dinámica incorporada de WebSphere Application Server soporta varias políticas de duplicación de memoria caché. Estas políticas se pueden configurar de forma global o en cada entrada de memoria caché. Consulte la documentación de la memoria caché dinámica si desea una descripción de de estas políticas de duplicación.
El proveedor de memoria caché dinámica eXtreme Scale no permite estas políticas directamente. Las características de duplicación de una memoria caché se determinan a través del tipo de topología distribuida de eXtreme Scale configurado y se aplica a todos los valores colocados en dicha memoria caché, independientemente de la política de duplicación establecida por el servicio de memoria caché dinámica en la entrada. A continuación, aparece una lista de todas las políticas de duplicación soportadas por el servicio de memoria caché dinámica e ilustra que topología eXtreme Scale proporciona características de duplicación similares.
Tenga en cuenta que el proveedor de memoria caché dinámica eXtreme Scale ignora los valores de la política de duplicación DRS en una memoria caché o en una entrada de memoria caché. Los usuarios deben elegir la topología que sea apropiada para sus necesidades de duplicación.
Esta información se proporciona principalmente para que pueda garantizar que la topología cumple con sus necesidades de coherencia distribuida. Por ejemplo, si la topología incorporada es una mejor opción para sus necesidades de despliegue y rendimiento, pero necesita el nivel de coherencia de memoria caché proporcionado por SHARED_PUSH_PULL, considere utilizar la topología incorporada con particiones, aunque el rendimiento pueda disminuir ligeramente.
Puede proteger las instancias de memoria caché dinámica que se ejecutan en las topologías incorporada e incorporada con particiones con las funciones de seguridad incorporadas en WebSphere Application Server. Consulte la documentación en Protección de servidores de aplicaciones en el centro de información de WebSphere Application Server.
Cuando se ejecuta una memoria caché en la topología remota, es posible para un cliente autónomo de eXtreme Scale para conectarse a la memoria caché y afecta a los contenidos de la instancia de la memoria caché dinámica. El proveedor de la memoria caché dinámica eXtreme Scale tiene una característica de cifrado de sobrecarga baja que puede impedir que los clientes no WebSphere Application Server lean o modifiquen los datos de la memoria caché. Para habilitar esta característica, establezca el parámetro opcional com.ibm.websphere.xs.dynacache.encryption_password en el mismo valor en todas las instancias de WebSphere Application Server que accedan al proveedor de memoria caché dinámica. Así se cifrará el valor y los metadatos de usuario para la CacheEntry que utiliza el cifrado AES de 128 bits. Es muy importante que se establezca el mismo valor en todos los servidores. Los servidores no podrán leer los datos colocados en la memoria caché por los servidores con un valor diferente para este parámetro.
Si el proveedor eXtreme Scale detecta que se han establecido distintos valores para esta variable en la misma memoria caché, genera un aviso en el registro del proceso del contenedor eXtreme Scale.
Consulte la documentación de eXtreme Scale sobre Visión general de seguridad si se requiere autenticación SSL o de cliente.