Dela via


Vanliga frågor och svar om azure Cosmos DB-integrerad cache

GÄLLER FÖR: NoSQL

Azure Cosmos DB-integrerad cache är en minnesintern cache som är inbyggd i Azure Cosmos DB. Den här artikeln besvarar vanliga frågor om azure Cosmos DB-integrerad cache.

Vanliga frågor och svar

Varför kräver den integrerade cachen en dedikerad gateway?

Om du har anslutit till Azure Cosmos DB med gatewayläge har du använt standardgatewayen. Även om Azure Cosmos DB-serverdelen (ditt etablerade dataflöde och lagring) har dedikerad kapacitet per container delas standardgatewayen mellan många kunder. Det är praktiskt för många kunder att dela en standardgateway eftersom de beräkningsresurser som förbrukas av varje enskild kund är minimala. Eftersom den integrerade cachen är specifik för ditt Azure Cosmos DB-konto och kräver betydande cpu och minne, krävs dedikerade gatewaynoder.

Vad är en dedikerad gateway?

En dedikerad gateway är beräkning på serversidan som är en klientdel till data i ett Azure Cosmos DB-konto. När du ansluter till din dedikerade gatewayslutpunkt med gatewayläge skickar programmet en begäran till den dedikerade gatewayen, som sedan dirigerar begäran till olika serverdelspartitioner. Direktläge med den dedikerade gatewayen stöds, men dessa begäranden använder inte den integrerade cachen.

Erbjuder användning av den dedikerade gatewayen några andra prestandafördelar jämfört med att använda standardgatewayen?

I allmänhet har begäranden som dirigeras av den dedikerade gatewayen en något lägre och mer konsekvent svarstid än begäranden som dirigeras av standardgatewayen. Även begäranden som inte använder den integrerade cachen har fortfarande en något lägre svarstid än standardgatewayen.

Vilken typ av svarstid bör jag förvänta mig av den integrerade cachen?

En begäran som hanteras av den integrerade cachen är snabb eftersom cachelagrade data lagras i minnet på den dedikerade gatewayen i stället för på serverdelen.

För cachelagrade punktläsningar bör du förvänta dig en mediansvarstid på 2–4 ms. För cachelagrade frågor beror svarstiden på frågan. Frågecachen fungerar genom att cachelagra frågemotorns svar för en viss fråga. Det här svaret skickas sedan tillbaka på klientsidan till SDK:t för bearbetning. För enkla frågor krävs minimalt arbete i SDK och mediansvarstiderna på 2–4 ms är typiska. Mer komplexa frågor med GROUP BY eller DISTINCT kräver mer bearbetning i SDK så svarstiden kan vara högre, även med frågecachen.

Om du tidigare anslöt till Azure Cosmos DB med direktläge och växlade till att ansluta till den dedikerade gatewayen kan du observera en liten fördröjningsökning för vissa begäranden. Om du använder gatewayläge måste en begäran skickas till gatewayen (i det här fallet den dedikerade gatewayen) och sedan dirigeras korrekt till serverdelen. Direktläge, som namnet antyder, gör att klienten kan kommunicera direkt med serverdelen, vilket tar bort ett extra hopp. Det finns inget serviceavtal för svarstider för begäranden som använder den dedikerade gatewayen.

Om din app tidigare använde direktläge är svarstidsfördelarna med den integrerade cachen betydande i endast följande scenarier:

  • Svarstid för punktläsning för stora objekt (> 16 KB)
  • Höga RU-frågor eller komplexa frågor

Om din app tidigare använde gatewayläge med standardgatewayen kommer den integrerade cachen att ge kortare svarstider i nästan alla scenarier.

Utökas serviceavtalet för Azure Cosmos DB-tillgänglighet till den dedikerade gatewayen och den integrerade cachen?

För scenarier som kräver hög tillgänglighet och för att kunna omfattas av serviceavtalet för Azure Cosmos DB-tillgänglighet bör du etablera minst tre dedikerade gatewaynoder. Om till exempel en dedikerad gatewaynod behövs i produktionen bör du etablera ytterligare två dedikerade gatewaynoder för att ta hänsyn till möjliga driftstopp, avbrott och uppgraderingar. Om endast en dedikerad gatewaynod etableras förlorar du tillfälligt tillgängligheten i dessa scenarier. Se dessutom till att din dedikerade gateway har tillräckligt med noder för att hantera din arbetsbelastning.

Den integrerade cachen är bara tillgänglig för API för NoSQL just nu. Planerar du att släppa det även för andra API:er?

Att expandera den integrerade cachen bortom API:et för NoSQL planeras enligt den långsiktiga översikten, men ligger utanför den integrerade cachens ursprungliga omfång.

Vilken konsekvens stöder den integrerade cachen?

Den integrerade cachen stöder både sessionskonsekvens och slutlig konsekvens. Du kan också konfigurera den valfria MaxIntegratedCacheStaleness, som placerar en övre gräns på cachelagrade data.

Nästa steg