Antipatrón: almacena datos de más de 256 KB en la memoria caché

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Apigee Edge proporciona la capacidad de almacenar datos en una caché en el entorno de ejecución para lograr persistencia y una recuperación más rápida.

  • Inicialmente, los datos se almacenan en la caché en la memoria del Message Processor, denominada caché L1.
  • La caché L1 está limitada por la cantidad de memoria reservada para ella como un porcentaje de la memoria JVM.
  • Las entradas almacenadas en caché se conservan más adelante en la caché L2, a la que todos los Message Processor pueden acceder. Encontrarás más detalles en la siguiente sección.
  • La caché L2 no tiene ningún límite estricto para la cantidad de entradas de caché. Sin embargo, el tamaño máximo para las entradas que se puede almacenar en caché está restringido a 256 KB. 256 KB es el tamaño de caché recomendado para un rendimiento óptimo.

Antipatrón

En este antipatrón en particular, se analizan las implicaciones de exceder las restricciones de tamaño de caché actuales dentro de la plataforma Apigee Edge.

Cuando se almacenan en caché datos superiores a 256 KB, las consecuencias se ven de la siguiente manera:

  • Las solicitudes a la API que se ejecuten por primera vez en cada uno de los procesadores de mensajes deben obtener los datos de manera independiente de la fuente original (política o servidor de destino), ya que las entradas mayores a 256 KB no están disponibles en L2 caché.
  • Almacenar datos de mayor tamaño (> 256 KB) en la caché L1 tiende a agregar más estrés a los recursos de la plataforma. Como resultado, la memoria caché L1 se llena más rápido y, por lo tanto, hay menos espacio disponible para otros datos. Como consecuencia, no se podrá almacenar en caché los datos de forma tan agresiva como lo haría.
  • Las entradas almacenadas en caché de los Message Processors se quitarán cuando se alcance el límite de entradas. Esto hace que los datos se recuperen desde la fuente original nuevamente en los respectivos Message Processors.

Dos diagramas de flujo.
  Uno para size<=256 KB que muestra los flujos entre el proxy de API y los procesadores de mensajes, y los flujos entre los procesadores de mensajes y la caché de almacenamiento persistente L2; Uno para size>256 KB que muestra flujos entre el proxy de API y los procesadores de mensajes, y los flujos entre procesadores de mensajes y datos/respuestas no almacenados en la caché L2.

Impacto

  • Los datos de tamaño > a 256 KB no se almacenarán en la caché L2/persistente.
  • Las llamadas más frecuentes a la fuente original (ya sea una política o un servidor de destino) generan mayores latencias para las solicitudes a la API.

Práctica recomendada

  • Es preferible almacenar datos de tamaño menor a 256 KB en caché para obtener un rendimiento óptimo.
  • Si es necesario almacenar datos superiores a 256 KB, considera lo siguiente:
    • Usar cualquier base de datos apropiada para almacenar datos grandes

      O

    • Comprime los datos

Lecturas adicionales