Skip to content

Commit 184cd39

Browse files
committed
dedicated gateway ga updates
1 parent 2217001 commit 184cd39

File tree

5 files changed

+48
-47
lines changed

5 files changed

+48
-47
lines changed

articles/cosmos-db/dedicated-gateway.md

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ author: seesharprun
55
ms.service: cosmos-db
66
ms.subservice: cosmosdb-sql
77
ms.topic: conceptual
8-
ms.date: 11/08/2021
8+
ms.date: 07/25/2022
99
ms.author: sidandrews
1010
ms.reviewer: jucocchi
1111
---
1212

13-
# Azure Cosmos DB dedicated gateway - Overview (Preview)
13+
# Azure Cosmos DB dedicated gateway - Overview
1414
[!INCLUDE[appliesto-sql-api](includes/appliesto-sql-api.md)]
1515

1616
A dedicated gateway is server-side compute that is a front-end to your Azure Cosmos DB account. When you connect to the dedicated gateway, it both routes requests and caches data. Like provisioned throughput, the dedicated gateway is billed hourly.
@@ -68,8 +68,6 @@ Dedicated gateway nodes are independent from one another. When you provision mul
6868

6969
For development, we recommend starting with one node but for production, you should provision three or more nodes for high availability. [Learn how to provision a dedicated gateway cluster with an integrated cache](how-to-configure-integrated-cache.md). Provisioning multiple dedicated gateway nodes allows the dedicated gateway cluster to continue to route requests and serve cached data, even when one of the dedicated gateway nodes is unavailable.
7070

71-
Because it is in public preview, the dedicated gateway does not have an availability SLA. However, you should generally expect comparable availability to the rest of your Azure Cosmos DB account.
72-
7371
The dedicated gateway is available in the following sizes:
7472

7573
| **Sku Name** | **vCPU** | **Memory** |
@@ -79,7 +77,7 @@ The dedicated gateway is available in the following sizes:
7977
| **D16s** | **16** | **64 GB** |
8078

8179
> [!NOTE]
82-
> Once created, you can't modify the size of the dedicated gateway nodes. However, you can add or remove nodes.
80+
> Once created, you can add or remove dedicated gateway nodes, but you can't modify the size of the nodes. To change the size of your dedicated gateway nodes you can deprovision the cluster and provision it again in a different size.
8381
8482
There are many different ways to provision a dedicated gateway:
8583

@@ -93,42 +91,40 @@ There are many different ways to provision a dedicated gateway:
9391

9492
When you provision a dedicated gateway cluster in multi-region accounts, identical dedicated gateway clusters are provisioned in each region. For example, consider an Azure Cosmos DB account in East US and North Europe. If you provision a dedicated gateway cluster with two D8 nodes in this account, you'd have four D8 nodes in total - two in East US and two in North Europe. You don't need to explicitly configure dedicated gateways in each region and your connection string remains the same. There are also no changes to best practices for performing failovers.
9593

96-
> [!NOTE]
97-
> You cannot provision a dedicated gateway cluster in accounts with availability zones enabled
98-
9994
Like nodes within a cluster, dedicated gateway nodes across regions are independent. It's possible that the cached data in each region will be different, depending on the recent reads or writes to that region.
10095

10196
## Limitations
10297

103-
The dedicated gateway has the following limitations during the public preview:
98+
The dedicated gateway has the following limitations:
10499

105-
- Dedicated gateways are only supported on SQL API accounts.
106-
- You can't provision a dedicated gateway in Azure Cosmos DB accounts with [IP firewalls](how-to-configure-firewall.md) or [Private Link](how-to-configure-private-endpoints.md) configured.
107-
- You can't provision a dedicated gateway in an Azure Cosmos DB account in a [Virtual Network (Vnet)](how-to-configure-vnet-service-endpoint.md)
108-
- You can't provision a dedicated gateway in Azure Cosmos DB accounts with [availability zones](../availability-zones/az-region.md).
100+
- Dedicated gateways are only supported on SQL API accounts
109101
- You can't use [role-based access control (RBAC)](how-to-setup-rbac.md) to authenticate data plane requests routed through the dedicated gateway
110102

111103
The dedicated gateway blade is hidden on Azure Cosmos DB accounts with IP firewalls, Vnet, Private Link, or availability zones.
112104

113105
## Supported regions
114106

115-
The dedicated gateway is in public preview and isn't supported in every Azure region yet. Throughout the public preview, we'll be adding new capacity. We won't have region restrictions when the dedicated gateway is generally available.
107+
The dedicated gateway isn't supported in every Azure region yet.
116108

117109
Current list of supported Azure regions:
118110

119111
| **Americas** | **Europe and Africa** | **Asia Pacific** |
120112
| ------------ | -------- | ----------- |
121113
| Brazil South | France Central | Australia Central |
122114
| Canada Central | France South | Australia Central 2 |
123-
| Canada East | Germany North | Australia Southeast |
124-
| Central US | Germany West Central | Central India |
125-
| East US | North Europe | East Asia |
126-
| East US 2 | Switzerland North | Japan West |
127-
| North Central US | UK South | Korea Central |
128-
| South Central US | UK West | Korea South |
129-
| West Central US | West Europe | Southeast Asia |
130-
| West US | | UAE Central |
131-
| West US 2 | | West India |
115+
| Canada East | Germany North | Australia East |
116+
| Central US | Germany West Central | Australia Southeast |
117+
| Central US EUAP | North Europe | Central India |
118+
| East US | Norway East | East Asia |
119+
| East US 2 | Norway West | Japan West |
120+
| East US 2 EUAP | South Africa North | Japan East |
121+
| North Central US | Switzerland North | Korea Central |
122+
| South Central US | Switzerland West | Korea South |
123+
| West Central US | UAE Central | Southeast Asia |
124+
| West US | UAE North | West India |
125+
| West US 2 | UK South | |
126+
| | UK West | |
127+
| | West Europe | |
132128

133129

134130
## Next steps

articles/cosmos-db/how-to-configure-integrated-cache.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ author: seesharprun
55
ms.service: cosmos-db
66
ms.subservice: cosmosdb-sql
77
ms.topic: conceptual
8-
ms.date: 09/28/2021
8+
ms.date: 07/25/2022
99
ms.author: sidandrews
1010
ms.reviewer: jucocchi
1111
---
1212

13-
# How to configure the Azure Cosmos DB integrated cache (Preview)
13+
# How to configure the Azure Cosmos DB integrated cache
1414
[!INCLUDE[appliesto-sql-api](includes/appliesto-sql-api.md)]
1515

1616
This article describes how to provision a dedicated gateway, configure the integrated cache, and connect your application.
@@ -58,7 +58,7 @@ This article describes how to provision a dedicated gateway, configure the integ
5858
> [!NOTE]
5959
> If you are using the latest .NET or Java SDK version, the default connection mode is direct mode. In order to use the integrated cache, you must override this default.
6060
61-
If you're using the Java SDK, you must also manually set [contentResponseOnWriteEnabled](/java/api/com.azure.cosmos.cosmosclientbuilder.contentresponseonwriteenabled?view=azure-java-stable&preserve-view=true) to `true` within the `CosmosClientBuilder`. If you're using any other SDK, this value already defaults to `true`, so you don't need to make any changes.
61+
4. If you're using the Java SDK, you must also manually set [contentResponseOnWriteEnabled](/java/api/com.azure.cosmos.cosmosclientbuilder.contentresponseonwriteenabled?view=azure-java-stable&preserve-view=true) to `true` within the `CosmosClientBuilder`. If you're using any other SDK, this value already defaults to `true`, so you don't need to make any changes.
6262

6363
## Adjust request consistency
6464

@@ -85,8 +85,13 @@ FeedIterator<Food> myQuery = container.GetItemQueryIterator<Food>(new QueryDefin
8585
);
8686
```
8787

88-
> [!NOTE]
89-
> Currently, you can only adjust the MaxIntegratedCacheStaleness using the latest [.NET](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.17.0-preview) and [Java](https://mvnrepository.com/artifact/com.azure/azure-cosmos/4.16.0-beta.1) preview SDK's.
88+
Adjusting the `MaxIntegratedCacheStaleness` is supported in these versions of each SDK:
89+
| SDK | Supported versions | Comment
90+
| --- | --- | --- |
91+
| **.NET SDK v3** | *>= 3.19.0-preview* | Currently supported in the preview SDK versions only. |
92+
| **Java SDK v4** | *>= 4.16.0-beta* | Currently supported in the preview SDK versions only. |
93+
| **Node.js SDK** | *>=3.16.0* | |
94+
| **Python SDK** | *>=4.3.0b3* | |
9095

9196
## Verify cache hits
9297

@@ -95,7 +100,7 @@ Finally, you can restart your application and verify integrated cache hits for r
95100
For a read request (point read or query) to utilize the integrated cache, **all** of the following criteria must be true:
96101

97102
- Your client connects to the dedicated gateway endpoint
98-
- Your client uses gateway mode (Python and Node.js SDK's always use gateway mode)
103+
- Your client uses gateway mode (Python and Node.js SDKs always use gateway mode)
99104
- The consistency for the request must be set to session or eventual
100105

101106
> [!NOTE]

articles/cosmos-db/how-to-configure-private-endpoints.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Use the following steps to create a private endpoint for an existing Azure Cosmo
5353
| Subscription| Select your subscription. |
5454
| Resource type | Select **Microsoft.AzureCosmosDB/databaseAccounts**. |
5555
| Resource |Select your Azure Cosmos account. |
56-
|Target sub-resource |Select the Azure Cosmos DB API type that you want to map. This defaults to only one choice for the SQL, MongoDB, and Cassandra APIs. For the Gremlin and Table APIs, you can also choose **Sql** because these APIs are interoperable with the SQL API. |
56+
|Target sub-resource |Select the Azure Cosmos DB API type that you want to map. This defaults to only one choice for the SQL, MongoDB, and Cassandra APIs. For the Gremlin and Table APIs, you can also choose **Sql** because these APIs are interoperable with the SQL API. If you have a [dedicated gateway](./dedicated-gateway.md) provisioned for a SQL API account, you will also see an option for **SqlDedicated**. |
5757
|||
5858

5959
1. Select **Next: Configuration**.
@@ -76,11 +76,12 @@ When you have approved Private Link for an Azure Cosmos account, in the Azure po
7676

7777
## <a id="private-zone-name-mapping"></a>API types and private zone names
7878

79-
The following table shows the mapping between different Azure Cosmos account API types, supported sub-resources, and the corresponding private zone names. You can also access the Gremlin and Table API accounts through the SQL API, so there are two entries for these APIs.
79+
The following table shows the mapping between different Azure Cosmos account API types, supported sub-resources, and the corresponding private zone names. You can also access the Gremlin and Table API accounts through the SQL API, so there are two entries for these APIs. There is also an extra entry for the SQL API for accounts using the [dedicated gateway](./dedicated-gateway.md).
8080

8181
|Azure Cosmos account API type |Supported sub-resources (or group IDs) |Private zone name |
8282
|---------|---------|---------|
8383
|Sql | Sql | privatelink.documents.azure.com |
84+
|Sql | SqlDedicated | privatelink.sqlx.cosmos.azure.com |
8485
|Cassandra | Cassandra | privatelink.cassandra.cosmos.azure.com |
8586
|Mongo | MongoDB | privatelink.mongo.cosmos.azure.com |
8687
|Gremlin | Gremlin | privatelink.gremlin.cosmos.azure.com |

articles/cosmos-db/integrated-cache-faq.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ author: seesharprun
55
ms.service: cosmos-db
66
ms.subservice: cosmosdb-sql
77
ms.topic: conceptual
8-
ms.date: 09/20/2021
8+
ms.date: 07/25/2022
99
ms.author: sidandrews
1010
ms.reviewer: jucocchi
1111
---
@@ -46,11 +46,11 @@ If your app previously used gateway mode with the standard gateway, the integrat
4646

4747
### Does the Azure Cosmos DB availability SLA extend to the dedicated gateway and integrated cache?
4848

49-
We will have an availability SLA/SLO on the dedicated gateway (and therefore the integrated cache) once the feature is generally available. For scenarios that require high availability, you should provision 3x the number of dedicated gateway instances needed. For example, if one dedicated gateway node is needed in production, you should provision two additional dedicated gateway nodes to account for possible downtime or outages.
49+
For scenarios that require high availability and in order to be covered by the Azure Cosmos DB availability SLA, you should provision 3x the number of dedicated gateway instances needed. For example, if one dedicated gateway node is needed in production, you should provision two additional dedicated gateway nodes to account for possible downtime or outages. Additionally, [ensure your dedicated gateway has enough nodes](./integrated-cache.md#i-want-to-understand-if-i-need-to-add-more-dedicated-gateway-nodes) to serve your workload.
5050

5151
### The integrated cache is only available for SQL (Core) API right now. Are you planning on releasing it for other APIs as well?
5252

53-
Expanding the integrated cache beyond SQL API is planned on the long-term roadmap but beyond the initial public preview of the integrated cache.
53+
Expanding the integrated cache beyond SQL API is planned on the long-term roadmap but beyond the initial scope of the integrated cache.
5454

5555
### What consistency does the integrated cache support?
5656

articles/cosmos-db/integrated-cache.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ author: seesharprun
55
ms.service: cosmos-db
66
ms.subservice: cosmosdb-sql
77
ms.topic: conceptual
8-
ms.date: 09/28/2021
8+
ms.date: 07/25/2022
99
ms.author: sidandrews
1010
ms.reviewer: jucocchi
1111
---
1212

13-
# Azure Cosmos DB integrated cache - Overview (Preview)
13+
# Azure Cosmos DB integrated cache - Overview
1414
[!INCLUDE[appliesto-sql-api](includes/appliesto-sql-api.md)]
1515

1616
The Azure Cosmos DB integrated cache is an in-memory cache that helps you ensure manageable costs and low latency as your request volume grows. The integrated cache is easy to set up and you don’t need to spend time writing custom code for cache invalidation or managing backend infrastructure. Your integrated cache uses a [dedicated gateway](dedicated-gateway.md) within your Azure Cosmos DB account. The integrated cache is the first of many Azure Cosmos DB features that will utilize a dedicated gateway for improved performance. You can choose from three possible dedicated gateway sizes based on the number of cores and memory needed for your workload.
@@ -120,22 +120,21 @@ To better understand the `MaxIntegratedCacheStaleness` parameter, consider the f
120120
| t = 40 sec | Run Query B with MaxIntegratedCacheStaleness = 60 seconds | Return results from integrated cache (0 RU charge) |
121121
| t = 50 sec | Run Query B with MaxIntegratedCacheStaleness = 20 seconds | Return results from backend database (normal RU charges) and refresh cache |
122122

123-
> [!NOTE]
124-
> Customizing `MaxIntegratedCacheStaleness` is only supported in the latest .NET and Java preview SDK's.
125-
126123
[Learn to configure the `MaxIntegratedCacheStaleness`.](how-to-configure-integrated-cache.md#adjust-maxintegratedcachestaleness)
127124

128125
## Metrics
129126

130127
When using the integrated cache, it is helpful to monitor some key metrics. The integrated cache metrics include:
131128

132-
- `DedicatedGatewayAverageCpuUsage` - Average CPU usage across dedicated gateway nodes.
133-
- `DedicatedGatewayMaxCpuUsage` - Maximum CPU usage across dedicated gateway nodes.
134-
- `DedicatedGatewayAverageMemoryUsage` - Average memory usage across dedicated gateway nodes, which are used for both routing requests and caching data.
135-
- `DedicatedGatewayRequests` - Total number of dedicated gateway requests across all dedicated gateway instances.
136-
- `IntegratedCacheEvictedEntriesSize` – The average amount of data evicted due to LRU from the integrated cache across dedicated gateway nodes. This value does not include data that expired due to exceeding the `MaxIntegratedCacheStaleness` time.
137-
- `IntegratedCacheItemExpirationCount` - The number of items that are evicted from the integrated cache due to cached point reads exceeding the `MaxIntegratedCacheStaleness` time. This value is an average of integrated cache instances across all dedicated gateway nodes.
138-
- `IntegratedCacheQueryExpirationCount` - The number of queries that are evicted from the integrated cache due to cached queries exceeding the `MaxIntegratedCacheStaleness` time. This value is an average of integrated cache instances across all dedicated gateway nodes.
129+
- `DedicatedGatewayCPUUsage` - CPU usage with Avg, Max, or Min Aggregation types for data across all dedicated gateway nodes.
130+
- `DedicatedGatewayAverageCPUUsage` - (Deprecated) Average CPU usage across all dedicated gateway nodes.
131+
- `DedicatedGatewayMaximumCPUUsage` - (Deprecated) Maximum CPU usage across all dedicated gateway nodes.
132+
- `DedicatedGatewayMemoryUsage` - Memory usage with Avg, Max, or Min Aggregation types for data across all dedicated gateway nodes.
133+
- `DedicatedGatewayAverageMemoryUsage` - (Deprecated) Average memory usage across all dedicated gateway nodes.
134+
- `DedicatedGatewayRequests` - Total number of dedicated gateway requests across all dedicated gateway nodes.
135+
- `IntegratedCacheEvictedEntriesSize` – The average amount of data evicted from the integrated cache due to LRU across all dedicated gateway nodes. This value does not include data that expired due to exceeding the `MaxIntegratedCacheStaleness` time.
136+
- `IntegratedCacheItemExpirationCount` - The average number of items that are evicted from the integrated cache due to cached point reads exceeding the `MaxIntegratedCacheStaleness` time across all dedicated gateway nodes.
137+
- `IntegratedCacheQueryExpirationCount` - The average number of queries that are evicted from the integrated cache due to cached queries exceeding the `MaxIntegratedCacheStaleness` time across all dedicated gateway nodes.
139138
- `IntegratedCacheItemHitRate` – The proportion of point reads that used the integrated cache (out of all point reads routed through the dedicated gateway with session or eventual consistency). This value is an average of integrated cache instances across all dedicated gateway nodes.
140139
- `IntegratedCacheQueryHitRate` – The proportion of queries that used the integrated cache (out of all queries routed through the dedicated gateway with session or eventual consistency). This value is an average of integrated cache instances across all dedicated gateway nodes.
141140

@@ -171,7 +170,7 @@ If most data is evicted from the cache due to exceeding the `MaxIntegratedCacheS
171170

172171
### I want to understand if I need to add more dedicated gateway nodes
173172

174-
In some cases, if latency is unexpectedly high, you may need more dedicated gateway nodes rather than bigger nodes. Check the `DedicatedGatewayMaxCpuUsage` and `DedicatedGatewayAverageMemoryUsage` to determine if adding more dedicated gateway nodes would reduce latency. It's good to keep in mind that since all instances of the integrated cache are independent from one another, adding more dedicated gateway nodes won't reduce the `IntegratedCacheEvictedEntriesSize`. Adding more nodes will improve the request volume that your dedicated gateway cluster can handle, though.
173+
In some cases, if latency is unexpectedly high, you may need more dedicated gateway nodes rather than bigger nodes. Check the `DedicatedGatewayCPUUsage` and `DedicatedGatewayMemoryUsage` to determine if adding more dedicated gateway nodes would reduce latency. It's good to keep in mind that since all instances of the integrated cache are independent from one another, adding more dedicated gateway nodes won't reduce the `IntegratedCacheEvictedEntriesSize`. Adding more nodes will improve the request volume that your dedicated gateway cluster can handle, though.
175174

176175
## Next steps
177176

0 commit comments

Comments
 (0)