Anti-pattern: archivia dati di dimensioni superiori a 256 kB nella cache

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Apigee Edge offre la possibilità di archiviare i dati in una cache in fase di runtime per garantire la persistenza e un recupero più rapido.

  • I dati vengono inizialmente archiviati nella cache in memoria del processore di messaggi, detta cache L1.
  • La cache L1 è limitata dalla quantità di memoria riservata sotto forma di percentuale della memoria JVM.
  • Le voci memorizzate nella cache vengono successivamente salvate nella cache L2, accessibile a tutti i processori di messaggi. Per ulteriori dettagli, consulta la sezione di seguito.
  • La cache L2 non ha alcun limite fisso al numero di voci della cache, tuttavia la dimensione massima della voce che può essere memorizzata nella cache è limitata a 256 kB. La dimensione consigliata di 256 kB è quella consigliata per ottenere prestazioni ottimali.

Antipattern

Questo particolare anti-pattern spiega le implicazioni del superamento delle attuali limitazioni delle dimensioni della cache all'interno della piattaforma Apigee Edge.

Quando i dati > 256 kB vengono memorizzati nella cache, le conseguenze sono le seguenti:

  • Le richieste API eseguite per la prima volta su ciascuno dei processori di messaggi devono ottenere i dati indipendentemente dall'origine originale (criteri o server di destinazione), poiché le voci > 256 kB non sono disponibili nella cache L2.
  • L'archiviazione di dati di dimensioni maggiori (> 256 kB) nella cache L1 tende a sovraccaricare maggiormente le risorse della piattaforma. In questo modo, la memoria cache L1 si riempie più velocemente e, di conseguenza, diventa disponibile meno spazio per altri dati. Di conseguenza, non sarà possibile memorizzare i dati nella cache con la frequenza desiderata.
  • Le voci memorizzate nella cache dei processori di messaggi verranno rimosse quando verrà raggiunto il limite di voci. In questo modo i dati vengono nuovamente recuperati dalla sorgente originale sui rispettivi processori di messaggi.

Due diagrammi di flusso.
  Una per dimensione <=256 kB che mostra i flussi tra proxy API e processori di messaggi e tra i processori di messaggi e la cache L2 dell&#39;archiviazione permanente. Una per dimensione> 256 kB che mostra i flussi tra proxy API e processori di messaggi e i flussi tra i processori di messaggi e i dati/risposta non archiviati nella cache L2.

Impatto

  • I dati di dimensioni superiori a 256 kB non verranno archiviati nella cache L2 o persistente.
  • Chiamate più frequenti all'origine originale (un criterio o un server di destinazione) comporta un aumento delle latenze per le richieste API.

Best practice

  • Per ottenere prestazioni ottimali, è preferibile archiviare nella cache dati di dimensioni < 256 kB.
  • Se è necessario archiviare dati > 256 kB, considera:
    • Utilizzare qualsiasi database appropriato per l'archiviazione di dati di grandi dimensioni

      OPPURE

    • Compressione dei dati

Per approfondire