Estás viendo la documentación de Apigee Edge.
Ir a la documentación de
Apigee X. info
Las políticas de Key-Value Map (KVM) son un componente fundamental para administrar la configuración y los valores dinámicos dentro del sistema. Sin embargo, la presencia y la búsqueda de claves inexistentes en estas KVM pueden afectar significativamente el rendimiento y generar mayores latencias.
Antipatrón
Cuando una política de KVM intenta recuperar un valor para una clave que no existe en el mapa de clave-valor, se generan llamadas adicionales a la base de datos de Cassandra. Esta mayor comunicación con la base de datos de backend, en especial para las claves inexistentes, consume más recursos y tiempo, lo que aumenta la latencia general de las solicitudes.
Impacto
El efecto principal de este antipatrón son las latencias de tiempo de ejecución elevadas y los errores del almacén de datos. La velocidad de procesamiento y el acceso a los datos del sistema se ven afectados de forma negativa, ya que el alto porcentaje de búsquedas de claves inexistentes es el motivo principal de las latencias observadas. Esta es una característica del tiempo de ejecución que depende directamente de la naturaleza de las solicitudes entrantes.
Síntomas
- El sistema presenta latencias de tiempo de ejecución elevadas.
- Errores del almacén de datos, que indican problemas con la velocidad de procesamiento y el acceso a los datos.
Mensajes de error
El análisis del archivosystem.log
indica la presencia de errores recurrentes relacionados con Cassandra, específicamente en lo que respecta a la recuperación de datos y el estado del grupo de hosts. Entre los mensajes de error clave que se observaron, se incluyen los siguientes:
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.get() : Exception while fetching rowKey : [7ccd1062-6e05-4d12-aa86-5c7bf944682d, app_credentials, kms] from column family:{} in keyspace:{}
ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.logHostPoolInCaseOfErrors() : Cassandra Host Pool under use - All Hosts: xx.xx.xx.102(xx.xx.xx.102):9160,xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.103(xx.xx.xx.103):9160. Active Hosts: xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.102(xx.xx.xx.102):9160
Diagnóstico
El análisis del archivo system.log
del procesador de mensajes revela valores elevados de L1MissL2Miss
en los informes de métricas de KVM de 5 minutos.
Por ejemplo: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
Práctica recomendada
Para mitigar este problema, te recomendamos que agregues valores ficticios para las claves no existentes en los KVM. Este enfoque debería reducir la cantidad de llamadas a Cassandra para las claves inexistentes, lo que mejorará el rendimiento y reducirá la latencia.