Vous consultez la documentation Apigee Edge.
Accédez à la
documentation Apigee X. info
Les règles de mappage clé-valeur (KVM) sont un composant fondamental de la gestion des configurations et des valeurs dynamiques dans le système. Toutefois, la présence et la recherche de clés inexistantes dans ces KVM peuvent avoir un impact significatif sur les performances et entraîner une augmentation de la latence.
Antimodèle
Lorsqu'une règle KVM tente de récupérer une valeur pour une clé qui n'existe pas dans le mappage clé-valeur, elle génère des appels supplémentaires à la base de données Cassandra. Cette communication accrue avec la base de données backend, en particulier pour les clés inexistantes, consomme plus de ressources et de temps, ce qui augmente la latence globale des requêtes.
Impact
L'effet principal de cet antimodèle est l'augmentation de la latence d'exécution et des erreurs de datastore. La vitesse de traitement et l'accès aux données du système sont affectés négativement, car le pourcentage élevé de recherches de clés inexistantes est la principale raison des latences observées. Il s'agit d'une caractéristique d'exécution qui dépend directement de la nature des requêtes entrantes.
Symptômes
- Le système présente une latence d'exécution élevée.
- Erreurs de datastore, indiquant des problèmes de vitesse de traitement et d'accès aux données.
Messages d'erreur
L'analyse du fichiersystem.log indique la présence d'erreurs récurrentes liées à Cassandra, en particulier concernant la récupération de données et l'état du pool d'hôtes. Les principaux messages d'erreur observés sont les suivants :
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
Diagnostic
L'analyse du fichier system.log du processeur de messages révèle des valeurs L1MissL2Miss élevées dans les rapports de métriques KVM de cinq minutes.
Par exemple : CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]
Bonne pratique
Pour atténuer ce problème, nous vous recommandons d'ajouter des valeurs factices pour les clés inexistantes dans les KVM. Cette approche devrait réduire le nombre d'appels à Cassandra pour les clés inexistantes, ce qui améliorera les performances et réduira la latence.