Share via


Domande frequenti sulla cache integrata di Azure Cosmos DB

SI APPLICA A: NoSQL

La cache integrata di Azure Cosmos DB è una cache in memoria incorporata in Azure Cosmos DB. Questo articolo presenta le risposte ad alcune domande comuni sulla cache integrata di Azure Cosmos DB.

Domande frequenti

Perché la cache integrata richiede un gateway dedicato?

Se si è connessi ad Azure Cosmos DB usando la modalità gateway, è stato usato il gateway standard. Mentre il back-end di Azure Cosmos DB (velocità effettiva e archiviazione con provisioning) ha capacità dedicata per ogni contenitore, il gateway standard viene condiviso tra molti clienti. È pratico per molti clienti condividere un gateway standard perché le risorse di calcolo utilizzate da ogni singolo cliente sono di entità contenuta. La cache integrata richiede nodi gateway dedicati perché è specifica dell'account Azure Cosmos DB e richiede CPU e memoria significative.

Che cos'è un gateway dedicato?

Un gateway dedicato è una risorsa di calcolo lato server che agisce da front-end per i dati in un account Azure Cosmos DB. Quando ci si connette all'endpoint del gateway dedicato mediante la modalità gateway, l'applicazione invia una richiesta al gateway dedicato, che instrada quindi la richiesta a partizioni back-end diverse. È supportato l'uso della modalità diretta con il gateway dedicato, ma queste richieste non useranno la cache integrata.

L'uso del gateway dedicato offre altri vantaggi in termini di prestazioni rispetto all'uso del gateway standard?

In generale, le richieste indirizzate dal gateway dedicato avranno una latenza leggermente inferiore e più coerente rispetto alle richieste indirizzate dal gateway standard. Anche le richieste che non usano la cache integrata avranno comunque una latenza leggermente inferiore rispetto al gateway standard.

Quale tipo di latenza è necessario aspettarsi dalla cache integrata?

Una richiesta gestita dalla cache integrata è veloce perché i dati memorizzati nella cache vengono archiviati in memoria nel gateway dedicato, anziché nel back-end.

Per le letture dei punti memorizzati nella cache, è consigliabile prevedere una latenza mediana di 2-4 ms. Per le query memorizzate nella cache, la latenza dipende dalla query. La cache delle query comporta la memorizzazione nella cache della risposta del motore di query per una determinata query. Questa risposta viene quindi inviata sul lato client all'SDK per l'elaborazione. Per le query semplici, il lavoro minimo nell'SDK è obbligatorio e si possono prevedere latenze mediane di 2-4 ms. Le query più complesse con GROUP BY o DISTINCT richiedono più elaborazione nell'SDK, in modo che la latenza possa essere superiore, anche con la cache delle query.

Se ci si connette ad Azure Cosmos DB con la modalità diretta e si passa alla connessione con il gateway dedicato, è possibile osservare un lieve aumento della latenza per alcune richieste. L'uso della modalità gateway richiede che una richiesta venga inviata al gateway (in questo caso il gateway dedicato) e quindi instradata in modo appropriato al back-end. La modalità diretta, come suggerisce il nome, consente al client di comunicare direttamente con il back-end, rimuovendo un hop aggiuntivo. Non esiste un contratto di servizio per la latenza per le richieste che usano il gateway dedicato.

Se in precedenza l'app usava la modalità diretta, i vantaggi della latenza della cache integrata saranno significativi solo negli scenari seguenti:

  • Latenza di lettura dei punti per elementi di grandi dimensioni (> 16 kB)
  • Query complesse o UR elevate

Se in precedenza l'app usava la modalità gateway con il gateway standard, la cache integrata offrirà riduzioni della latenza in quasi tutti gli scenari.

Il contratto di servizio per la disponibilità di Azure Cosmos DB si estende al gateway dedicato e alla cache integrata?

Per gli scenari che richiedono disponibilità elevata e per essere coperti dal contratto di servizio per la disponibilità di Azure Cosmos DB, è necessario effettuare il provisioning di almeno 3 nodi gateway dedicati. Ad esempio, se è necessario un nodo gateway dedicato nell'ambiente di produzione, è necessario effettuare il provisioning di due nodi gateway dedicati aggiuntivi per tenere conto di possibili tempi di inattività, interruzioni e aggiornamenti. Se viene effettuato il provisioning di un solo nodo gateway dedicato, si perderà temporaneamente la disponibilità in questi scenari. Assicurarsi inoltre che il gateway dedicato disponga di nodi sufficienti per gestire il carico di lavoro.

La cache integrata è ora disponibile solo per l'API per NoSQL. Si prevede di rilasciarla anche per altre API?

L'espansione della cache integrata oltre all'API per NoSQL è pianificata nella roadmap a lungo termine, ma non rientra nell'ambito iniziale della cache integrata.

Quale coerenza supporta la cache integrata?

La cache integrata supporta sia la coerenza della sessione che la coerenza finale. È anche possibile configurare il parametro facoltativo MaxIntegratedCacheStaleness, che applica un limite superiore ai dati memorizzati nella cache.

Passaggi successivi