You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
68
68
69
69
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.
70
70
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
-
73
71
The dedicated gateway is available in the following sizes:
74
72
75
73
|**Sku Name**|**vCPU**|**Memory**|
@@ -79,7 +77,7 @@ The dedicated gateway is available in the following sizes:
79
77
|**D16s**|**16**|**64 GB**|
80
78
81
79
> [!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 nodesyou can deprovision the cluster and provision it again in a different size.
83
81
84
82
There are many different ways to provision a dedicated gateway:
85
83
@@ -93,42 +91,40 @@ There are many different ways to provision a dedicated gateway:
93
91
94
92
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.
95
93
96
-
> [!NOTE]
97
-
> You cannot provision a dedicated gateway cluster in accounts with availability zones enabled
98
-
99
94
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.
100
95
101
96
## Limitations
102
97
103
-
The dedicated gateway has the following limitations during the public preview:
98
+
The dedicated gateway has the following limitations:
104
99
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
109
101
- You can't use [role-based access control (RBAC)](how-to-setup-rbac.md) to authenticate data plane requests routed through the dedicated gateway
110
102
111
103
The dedicated gateway blade is hidden on Azure Cosmos DB accounts with IP firewalls, Vnet, Private Link, or availability zones.
112
104
113
105
## Supported regions
114
106
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.
116
108
117
109
Current list of supported Azure regions:
118
110
119
111
|**Americas**|**Europe and Africa**|**Asia Pacific**|
120
112
| ------------ | -------- | ----------- |
121
113
| Brazil South | France Central | Australia Central |
122
114
| 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 |
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
58
58
> [!NOTE]
59
59
> 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.
60
60
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.
> 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*||
90
95
91
96
## Verify cache hits
92
97
@@ -95,7 +100,7 @@ Finally, you can restart your application and verify integrated cache hits for r
95
100
For a read request (point read or query) to utilize the integrated cache, **all** of the following criteria must be true:
96
101
97
102
- 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)
99
104
- The consistency for the request must be set to session or eventual
Copy file name to clipboardExpand all lines: articles/cosmos-db/how-to-configure-private-endpoints.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,7 +53,7 @@ Use the following steps to create a private endpoint for an existing Azure Cosmo
53
53
| Subscription| Select your subscription. |
54
54
| Resource type | Select **Microsoft.AzureCosmosDB/databaseAccounts**. |
55
55
| 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**. |
57
57
|||
58
58
59
59
1. Select **Next: Configuration**.
@@ -76,11 +76,12 @@ When you have approved Private Link for an Azure Cosmos account, in the Azure po
76
76
77
77
## <aid="private-zone-name-mapping"></a>API types and private zone names
78
78
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).
80
80
81
81
|Azure Cosmos account API type |Supported sub-resources (or group IDs) |Private zone name |
Copy file name to clipboardExpand all lines: articles/cosmos-db/integrated-cache-faq.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ author: seesharprun
5
5
ms.service: cosmos-db
6
6
ms.subservice: cosmosdb-sql
7
7
ms.topic: conceptual
8
-
ms.date: 09/20/2021
8
+
ms.date: 07/25/2022
9
9
ms.author: sidandrews
10
10
ms.reviewer: jucocchi
11
11
---
@@ -46,11 +46,11 @@ If your app previously used gateway mode with the standard gateway, the integrat
46
46
47
47
### Does the Azure Cosmos DB availability SLA extend to the dedicated gateway and integrated cache?
48
48
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.
50
50
51
51
### The integrated cache is only available for SQL (Core) API right now. Are you planning on releasing it for other APIs as well?
52
52
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.
54
54
55
55
### What consistency does the integrated cache support?
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
120
120
| t = 40 sec | Run Query B with MaxIntegratedCacheStaleness = 60 seconds | Return results from integrated cache (0 RU charge) |
121
121
| t = 50 sec | Run Query B with MaxIntegratedCacheStaleness = 20 seconds | Return results from backend database (normal RU charges) and refresh cache |
122
122
123
-
> [!NOTE]
124
-
> Customizing `MaxIntegratedCacheStaleness` is only supported in the latest .NET and Java preview SDK's.
125
-
126
123
[Learn to configure the `MaxIntegratedCacheStaleness`.](how-to-configure-integrated-cache.md#adjust-maxintegratedcachestaleness)
127
124
128
125
## Metrics
129
126
130
127
When using the integrated cache, it is helpful to monitor some key metrics. The integrated cache metrics include:
131
128
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.
139
138
-`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.
140
139
-`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.
141
140
@@ -171,7 +170,7 @@ If most data is evicted from the cache due to exceeding the `MaxIntegratedCacheS
171
170
172
171
### I want to understand if I need to add more dedicated gateway nodes
173
172
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.
0 commit comments