Antipattern: impacto de KVMs não existentes na latência

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

As políticas de mapa de chave-valor (KVM) são um componente fundamental no gerenciamento de configurações e valores dinâmicos no sistema. No entanto, a presença e a pesquisa de chaves inexistentes nesses KVMs podem afetar significativamente o desempenho e aumentar as latências.

Antipadrão

Quando uma política de KVM tenta recuperar um valor para uma chave que não existe no mapa de chave-valor, isso resulta em chamadas adicionais ao banco de dados do Cassandra. Essa comunicação aumentada com o banco de dados de back-end, principalmente para chaves inexistentes, consome mais recursos e tempo, aumentando a latência geral da solicitação.

Impacto

O principal efeito desse antipadrão é o aumento das latências de tempo de execução e erros de repositório de dados. A velocidade de processamento e o acesso a dados do sistema são afetados negativamente, já que a alta porcentagem de pesquisas de chaves inexistentes é o principal motivo das latências observadas. Essa é uma característica de tempo de execução que depende diretamente da natureza das solicitações recebidas.

Sintomas

  • O sistema apresenta latências de execução elevadas.
  • Erros de armazenamento de dados, indicando problemas com a velocidade de processamento e o acesso a dados.

Mensagens de erro

A análise do arquivo system.log indica a presença de erros recorrentes relacionados ao Cassandra, especificamente em relação à recuperação de dados e ao status do pool de hosts. As principais mensagens de erro observadas incluem:
  • 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

A análise do arquivo system.log do processador de mensagens revela valores L1MissL2Miss elevados nos relatórios de métricas do KVM de cinco minutos.

Por exemplo: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]

Prática recomendada

Para reduzir esse problema, recomendamos adicionar valores fictícios para chaves inexistentes nas KVMs. Essa abordagem reduz o número de chamadas ao Cassandra para chaves inexistentes, melhorando a performance e reduzindo a latência.

Leitura adicional