HCL Commerce Version 9.1.13.0 or later

Configuración del servidor de consulta prohibitConcurrentCacheMiss

El nuevo prohibitConcurrentCacheMiss tiene el valor de configuración true y está habilitado de forma predeterminada. Se puede inhabilitar estableciéndolo en false en la sección CrossTransactionCache del archivo de configuración wc-component.json del servidor de consulta. Cuando se configura como true, el resultado es una disminución de la carga impuesta en los servidores de ElasticSearch, debido a que no se ejecuta la misma consulta de forma repetida desde el mismo servidor de consulta.

Cuando el valor de configuración CrossTransactionCache/ avoidConcurrentCacheMiss o CrossTransactionCache/ prohibitConcurrentCacheMiss es true, se adquiere CacheEntryLock (exclusivo para una ID de memoria caché determinada) antes de que se procese una falta de memoria caché. Esto provoca que haya pérdidas simultáneas en la memoria caché para la misma ID de memoria caché en la misma JVM del servidor de consultas en espera hasta que el subproceso que mantiene el bloqueo haya terminado de procesar la falta de memoria caché. Cuando se reanuda el subproceso en espera, busca en la memoria caché la entrada de memoria caché que acaba de colocar el subproceso que anteriormente retenía el bloqueo allí. El efecto consiste en evitar emitir la misma consulta desde el mismo servidor de consultas más veces de las necesarias, reduciendo así la carga que soportan los servidores de ElasticSearch.

CacheEntryLock se puede configurar con un número máximo de subprocesos que pueden estar en espera del bloqueo en cualquier momento, así como con un número máximo de segundos que un subproceso puede esperar para adquirir el bloqueo. Cuando se supera cualquiera de estos dos límites, un subproceso continuará con ello y procesará la falta de memoria caché (cuando prohibitConcurrentCacheMiss sea false) o finalizará la solicitud del servidor de consulta actual (cuando prohibitConcurrentCacheMiss sea true). Se devolverá un código de respuesta HTTP de 429 si el subproceso termina.

CacheEntryLock se configura en la sección com.ibm.commerce.datatype.CacheEntryLock del archivo de configuración wc-component.json.

La configuración del umbral especifica el número máximo de subprocesos en espera en cualquier momento.

La configuración maxWaitSeconds especifica el número máximo de segundos que un subproceso puede esperar para adquirir el bloqueo.

Para obtener más información sobre el archivo de configuración wc-component.json para el servidor de consulta de Elasticsearch, vea Configuración de servicios de consulta en ZooKeeper.