HCL Commerce Version 9.1.10.0 or later

Almacenamiento en memoria caché local y remota en HCL Cache

HCL Cache amplía las prestaciones de DynaCache habilitando el uso del almacenamiento en memoria caché remota soportado por Redis.

Almacenamiento en memoria caché local

El comportamiento del almacenamiento en memoria caché local es similar al de las memorias caché DynaCache tradicionales, con algunas diferencias importantes:

Replicación de mensajes de invalidación
El uso del almacenamiento en memoria caché local requiere la réplica de mensajes de borrado e invalidación de memoria caché para garantizar que el contenido obsoleto o antiguo se elimina de las memorias caché en otros contenedores. En HCL Commerce Version 9.0 esto se logra con el uso de Kafka. Cuando HCL Cache se habilita con Redis, la infraestructura maneja automáticamente las invalidaciones. Consulte Invalidaciones para obtener detalles.
Ajuste automático de huella de memoria
HCL Cache framework simplifica el ajuste de tamaños de memoria caché local con el ajuste de huella de memoria automática que puede cambiar automáticamente el tamaño de las memorias caché locales en función de la cantidad de memoria libre.
Funciones de monitorización
HCL Cache implementa un conjunto completo de métricas para las memorias caché locales para dar soporte a la monitorización, depuración y ajuste. Las métricas permiten el seguimiento de tamaños de memoria caché (por número de entradas y espacio de memoria en MB), proporciones de coincidencias, operaciones de memoria caché y eliminaciones internas por segundo (caducidad, inactividad, eliminación explícita y expulsión de LRU). Se puede realizar un seguimiento de las métricas de memoria caché local con los paneles "HCL Cache - Detalles de memoria caché local" y "HCL Cache - Resumen de memoria caché local". Consulte monitorizar para obtener detalles.

HCL Cache: Detalles de memoria caché local - panel:

Uso de la descarga de disco
HCL Cache las memorias caché no admiten la descarga de disco. Las configuraciones de descarga de disco en WebSphere DynaCache se ignoran. Para escalar más allá de los límites de memoria JVM local, las memorias caché locales están diseñadas para utilizarse junto con las memorias caché remotas de Redis.
Supervisor de memoria caché ampliada de WebSphere
Para obtener más información sobre el supervisor de memoria caché ampliada de WebSphere, consulte Supervisor de memoria caché de WebSphere.

Almacenamiento en memoria caché remota

La ampliación de la infraestructura de almacenamiento en memoria caché con el uso de una memoria caché remota en Redis puede mejorar el rendimiento y la escalabilidad:

  • Las memorias caché remotas no están enlazadas por los límites de JVM locales: Las memorias caché remotas pueden escalar a cientos de gigabytes. Las memorias caché grandes pueden representar tasas de aciertos más altas, lo que mejora el rendimiento y reduce la necesidad de regenerar contenido, reduciendo así la sobrecarga en otros servicios y bases de datos.

  • Se ha mejorado la escalabilidad: Con el uso de memorias caché locales, cada servidor debe mantener su propia memoria caché. Es posible que sea necesario generar entradas de memoria caché una vez por pod. Por ejemplo, cada pod debe generar y mantener su propia copia del página de inicio. Cuando solo se utiliza el almacenamiento en memoria caché local, el aumento del número de contenedores aumenta el número general de fallos de memoria caché, lo que da como resultado un aumento de la carga en los servicios de fondo, como la base de datos primaria para HCL Commerce o la base de datos de búsqueda (Solr o Elasticsearch). Pero cuando se utiliza el almacenamiento en memoria caché remota, cada entrada de memoria caché remota solo debe crearse a partir de servicios de fondo una vez. Los servidores que utilizan el almacenamiento en memoria caché local y remota (QueryApp, TsApp, Search) se pueden escalar y consumir la memoria caché existente de la memoria caché remota en lugar de volver a generar la suya propia de los servicios de fondo. Los contenedores recién iniciados tienen acceso inmediato a la memoria caché existente y el impacto del periodo de inicialización se reduce considerablemente. Esta ventaja también se aplica a escenarios de borrado de memoria caché.

Para utilizar el almacenamiento en memoria caché remota, las entradas de memoria caché deben ser serializables. De forma predeterminada, las memorias caché remotas que encuentran errores de serialización están inhabilitadas: El almacenamiento en memoria caché remota está inhabilitado para esta memoria caché debido a errores de serialización anteriores. Asegúrese de que todas las entradas de memoria caché son serializables. Si las entradas no se pueden serializar, considere la posibilidad de inhabilitar el almacenamiento en memoria caché remota para esta memoria caché. La configuración stopRemoteCachingOnSerializationErrors:false se puede utilizar para seguir permitiendo el almacenamiento en memoria caché remota después de errores de serialización.
Note: Utilice esta configuración con cautela, ya que podría dar lugar a fugas en la memoria.

Elección de una opción de despliegue

Almacenamiento en memoria caché local y remota
Esta es la configuración predeterminada. Las memorias caché locales actúan como una memoria caché casi caché para memorias caché remotas, manteniendo copias de las entradas de memoria caché a las que se ha accedido más recientemente. Estas entradas de memoria caché se pueden servir directamente desde el contenedor local, sin realizar llamadas remotas a los servidores de Redis, mejorando el rendimiento y reduciendo la sobrecarga en los servidores remotos.

Flujos de almacenamiento en memoria caché local y remota:

Cuando las memorias caché locales y remotas se utilizan juntas, el flujo de almacenamiento en memoria caché es el siguiente:
Falta de memoria caché Existente en local Existente en remoto
1- Fallo local 1- Acierto local 1- Fallo local
2- Fallo remoto 2- Acierto remoto
3- PUT local 3- PUT local (interno)
4- PUT remoto
Memoria caché solo local
La razón principal para inhabilitar el almacenamiento en memoria caché remota es si los objetos almacenados en la memoria caché no son serializables. Si las memorias caché personalizadas almacenan objetos que no son serializables, el almacenamiento en memoria caché remota debe inhabilitarse para la memoria caché en la configuración. Para obtener detalles, consulte Memoria caché personalizada. Las memorias caché solo local deben seguir utilizando Redis para la replicación de invalidaciones.
Memoria caché solo remota
El almacenamiento en memoria caché solo remota puede ser conveniente para las memorias caché que almacenan objetos actualizados con frecuencia, cuando los cambios deben estar inmediatamente disponibles para todos los contenedores. Por ejemplo, los cambios en los datos de sesión de usuario deben estar inmediatamente disponibles para todos los contenedores. La inhabilitación de memorias caché locales elimina el riesgo de leer datos obsoletos debido a problemas de temporización con invalidaciones. Ejemplos de memorias caché predeterminadas que están configuradas como solo remotas incluyen memorias caché para la integración de Precision Marketing y Punch-out.