Almacenamiento en memoria caché e invalidación en la HCL Commerce Search

La memoria caché de fragmentos JSP y la memoria caché de objetos de datos pueden utilizarse con el servidor de búsqueda para el almacenamiento en memoria caché y la invalidación. La memoria caché de fragmentos JSP se utiliza en el servidor de HCL Commerce para almacenar en memoria caché partes de la interfaz de usuario del escaparate para su reutilización en el futuro. La memoria caché de objetos de datos se utiliza en el servidor de búsqueda para almacenar propiedades de tiempo de ejecución internas utilizadas por determinadas características de búsqueda para mejorar el rendimiento general.

Para evitar un exceso de almacenamiento en memoria caché y de contenido en memoria caché, las operaciones de búsqueda no suelen almacenarse en la memoria caché. Por lo general se recomienda no almacenar en la memoria caché respuestas de toda una página cuando se especifica una palabra clave en la solicitud original. Este enfoque también se utiliza para manejar la navegación por facetas en el escaparate.

Dado que el contenido personalizado o los datos volátiles, como los precios o el nivel de inventario, pueden aparecer en determinadas páginas de la memoria caché, puede determinar que un determinado fragmento de la página no se almacene en la memoria caché. Para lograr este resultado, utilice el almacenamiento en memoria caché de fragmentos. Para obtener más información, consulte Almacenamiento en memoria caché de HCL Commerce Search.

Después de definir una política de memoria caché en el archivo cachespec.xml para una página JSP, se utilizan las propiedades de DynaCache invalidation for storefront cached content en el archivo de configuración de componentes de catálogo (wc-component.xml). Para más información, consulte Propiedades de búsqueda en el archivo de configuración de componente (wc-component.xml).

Invalidación de memoria caché

Dado que existe un ligero retardo cuando el índice de búsqueda se sincroniza por completo con los últimos cambios de la base de datos, se deben tener en cuenta varias cuestiones al invalidar el contenido almacenado en caché para la navegación de catálogo basada en búsquedas. Estos retardos pueden producirse como resultado de la propagación de transición o la publicación rápida cuando se aplica un arreglo de emergencia.

invalidación de memoria caché de escaparate se realiza automáticamente cuando se utiliza la propagación de transición y la publicación rápida para arreglos de emergencia. Cuando se ha completado la réplica de índice, se emite una instrucción de invalidación de memoria caché insertando una entrada de tipo restart en la tabla CACHEIVL. La entrada utiliza el parámetro de hora de inicio proporcionado como la hora en que empezar a realizar la invalidación de memoria caché. El mandato de planificador DynaCacheInvalidation realiza la misma invalidación, empezando en el parámetro de hora de inicio. Esta planificación impide la invalidación precoz, lo que haría que se volviera a almacenar en memoria caché contenido obsoleto ante de que estén disponibles los últimos cambios de índice. Las entradas de invalidación de la tabla CACHEIVL pueden ser los ID de dependencia utilizados para la invalidación de memoria caché de fragmentos JSP o la invalidación de memoria caché de objetos de datos.

Estas consideraciones se basan en los escenarios siguientes:Donde se utiliza un repetidor de índice para capturar el contenido de índice desplegado más reciente y sirve como copia de seguridad para los destinos de producción.

El repetidor tarda un tiempo en replicar los cambios de índice en todos los servidores subordinados. Toda la navegación de catálogo basada en búsqueda la recuperan los servidores subordinados en el entorno de producción, no el repetidor. Por consiguiente, si la invalidación de la memoria caché tiene lugar inmediatamente después de haber realizado los cambios, y mientras está teniendo lugar la réplica del índice de búsqueda, es posible que el nuevo contenido de la memoria caché no sea preciso. El índice de búsqueda todavía contiene los datos antiguos. Si se vuelve a crear inmediatamente la nueva memoria caché, es posible que se vuelvan a utilizar los datos antiguos.

Se deben tener en cuenta los elementos siguientes para determinar un retardo apropiado, en milisegundos, antes de que se produzca la invalidación de memoria caché después de cada reindexación de búsqueda:
  • La hora en que se inicia el siguiente mandato de planificador de reindexación.
  • La cantidad aproximada de tiempo que la reindexación puede tardar en completarse.
  • El siguiente tiempo de réplica entre el índice de búsqueda de producción y el repetidor.
  • La cantidad aproximada de tiempo que la réplica de índice puede tardar en completarse.
Donde la suma de las estimaciones de tiempo es igual al tiempo de demora necesario aproximado antes de que se produzca la invalidación de la memoria caché.