Antimodèle : stocker les données supérieures à 256 ko dans le cache

Vous consultez la documentation d'Apigee et d'Apigee hybrid.
Consultez la documentation d'Apigee Edge.

Apigee permet de stocker des données dans un cache au moment de l'exécution pour assurer leur persistance et les récupérer plus rapidement.

  • Les données sont d'abord stockées dans le cache en mémoire du processeur de messages, appelé cache L1.
  • Le cache L1 est limité par la quantité de mémoire qui lui est réservée. Il s'agit d'un pourcentage de la mémoire JVM.
  • Les entrées mises en cache sont conservées dans un cache L2 accessible à tous les processeurs de message. Vous trouverez plus d'informations dans la section ci-dessous.
  • Le cache L2 n'a pas de limite stricte pour le nombre d'entrées de cache. Cependant, la taille maximale de chaque entrée est limitée à 256 ko. Cette limite de 256 ko est la taille recommandée pour des performances optimales.

Antimodèle

Cet antimodèle particulier traite des conséquences du dépassement des restrictions de taille de cache actuelles dans Apigee.

Lorsque des données de plus de 256 ko sont mises en cache, les conséquences sont les suivantes :

  • Les requêtes d'API exécutées pour la première fois sur chacun des processeurs de messages doivent obtenir les données indépendamment de la source d'origine (règle ou serveur cible), car les entrées supérieures à 256 ko ne sont pas disponibles dans le cache L2.
  • Le stockage de données plus volumineuses (plus de 256 ko) dans le cache L1 a tendance à mettre davantage de contraintes sur les ressources de la plate-forme. La mémoire de cache L1 est remplie plus rapidement, ce qui réduit l'espace disponible pour d'autres données. Par conséquent, il n'est pas possible de mettre en cache les données de manière aussi dynamique que ce qui serait souhaitable.
  • Lorsque le nombre d'entrées est atteint, les entrées en cache des processeurs de message sont supprimées. Les données sont alors extraites à nouveau depuis la source d'origine sur les processeurs de message respectifs.

Deux schémas de flux.
  L'un correspond au cas où la taille est inférieure ou égale à 512 ko. Il illustre les flux entre le proxy d'API et les processeurs de messages, ainsi que les flux entre les processeurs de messages et le cache L2 pour le stockage persistant. L'un correspond au cas où la taille est supérieure à 512 ko. Il illustre les flux entre le proxy d'API et les processeurs de messages, ainsi que les flux entre les processeurs de messages et les données/réponses non stockés dans le cache L2.

Impact

  • Les données d'une taille supérieure à 256 ko ne sont pas stockées dans le cache persistant L2.
  • Les appels plus fréquents à la source d'origine (règle ou serveur cible) augmentent la latence pour les requêtes d'API.

Bonne pratique

  • Il est préférable de stocker des données d'une taille inférieure à 256 ko dans le cache pour obtenir des performances optimales.
  • Si vous avez besoin de stocker des données supérieures à 256 ko, pensez à :
    • Utiliser une base de données adaptée au stockage de données volumineuses

      OU

    • Compresser les données

Documentation complémentaire