Esaminare i carichi di lavoro che traggono vantaggio dalla cache
Le query usano unità richiesta (UR/sec) quando vengono eseguite. In alcuni casi, le query possono essere complesse e avere un costo elevato delle UR. In uno scenario con un carico di lavoro di lettura elevato, è possibile trovare l'applicazione che esegue le stesse query con filtri identici più volte. In genere, il costo normalizzato delle UR di ogni query viene moltiplicato in base al numero di volte che vengono eseguite. Con un carico di lavoro di lettura con dimensioni elevate, i costi possono aggregare rapidamente a un livello elevato.
Per gli sviluppatori può risultare utile scrivere nel codice un client di cache personalizzato, ma è necessario considerare molteplici aspetti:
- Prima di tutto, è necessario inoltrare tutte le richieste tramite la cache personalizzata. L'utente sarà responsabile dell'aumento del numero di istanze di calcolo della cache a livelli che riescono tenere il passo con la scalabilità di Azure Cosmos DB
- È necessario gestire l'invalidazione della cache quando gli elementi vengono aggiornati o eliminati
- Sarà anche necessario aumentare la complessità delle operazioni che creano uno o più nuovi elementi
Per tutti questi motivi, una cache integrata in memoria in Azure Cosmos DB è una soluzione valida. Gli sviluppatori ottengono i vantaggi della memorizzazione nella cache senza le complessità dell'implementazione manuale della cache.
Per alcuni carichi di lavoro in Azure Cosmos DB, una cache integrata rappresenta un grande vantaggio. Questi carichi di lavoro includono, tra gli altri:
- Carichi di lavoro con operazioni di lettura e query molto maggiori rispetto alle operazioni di scrittura
- Carichi di lavoro che leggono più volte singoli elementi di grandi dimensioni
- Carichi di lavoro che eseguono più volte query con una grande quantità di UR/sec
- Carichi di lavoro con chiave[i] di partizione ad accesso frequente per operazioni di lettura e query
I carichi di lavoro che eseguono in modo coerente le stesse operazioni di query sono ideali per essere usati con la cache integrata. Quando si usa la cache integrata, si utilizzano solo le unità richiesta nella prima operazione o query. Le richieste successive non utilizzano unità richiesta se i dati vengono recuperati dalla cache, purché l'elemento non sia obsoleto.