Antipadrão: armazene dados com tamanho superior a 256 KB no cache

Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.

A Apigee permite armazenar dados em um cache no ambiente de execução para persistência e recuperação mais rápida.

  • Os dados são inicialmente armazenados no cache da memória do processador de mensagens, chamado de cache L1.
  • O cache L1 é limitado pela quantidade de memória reservada para ela como uma porcentagem da memória JVM.
  • As entradas em cache são mantidas mais tarde no cache de L2, que pode ser acessado por todos os processadores de mensagens. Veja mais detalhes na seção abaixo.
  • O cache L2 não tem limite absoluto sobre o número de entradas de cache, mas o tamanho máximo da entrada que pode ser armazenado em cache é restrito a 256 KB. O tamanho de cache de 256 KB é o tamanho recomendado para desempenho ideal.

Antipadrão

Este antipadrão específico fala sobre as implicações de exceder as restrições de tamanho de cache atuais na Apigee.

Quando dados maiores que 256 KB são armazenados em cache, as consequências são as seguintes:

  • As solicitações de API executadas pela primeira vez em cada um dos processadores de mensagens precisam receber os dados independentemente da origem (política ou servidor de destino), já que entradas maiores que 256 KB não estão disponíveis em no cache L2.
  • O armazenamento de dados maiores (maiores de 256 KB) no cache L1 tende a colocar mais estresse nos recursos da plataforma. Isso faz com que a memória do cache L1 seja preenchida mais rapidamente e, portanto, menos espaço está disponível para outros dados. Como consequência, não será possível armazenar os dados em cache da maneira mais agressiva que eles gostariam.
  • As entradas em cache dos Processadores de mensagens serão removidas quando o limite de entradas for atingido. Isso faz com que os dados sejam buscados novamente a partir da origem nos respectivos processadores de mensagem.

Dois diagramas de fluxo.
  Um para o tamanho inferior ou igual a 512KB, que mostra os fluxos entre o proxy de API e os processadores de mensagens
e os fluxos entre processadores de mensagens e o cache L2 de armazenamento permanente. Um para tamanhos superiores a 512 KB, que mostra
  os fluxos entre o proxy de API e os processadores de mensagens e os fluxos entre os processadores de mensagens e os dados/resposta
não armazenados no cache L2.

Impacto

  • Os dados de tamanho maiores que 256 KB não serão armazenados no cache L2/permanente.
  • Chamadas mais frequentes da origem (uma política ou um servidor de destino) levam a uma maior latência para as solicitações da API.

Prática recomendada

  • É preferível armazenar dados de tamanho inferior a 256 KB no cache para ter o desempenho ideal.
  • Se for necessário armazenar dados com tamanho superior a 256 KB, considere:
    • Usar qualquer banco de dados apropriado para armazenar dados grandes

      OU

    • Compactar os dados

Leitura adicional