Understand how the reservation discount is applied to Azure Cosmos DB

After you buy an Azure Cosmos DB reserved capacity, the reservation discount is automatically applied to Azure Cosmos DB resources that match the attributes and quantity of the reservation. A reservation covers the throughput provisioned for Azure Cosmos DB resources. It doesn’t cover software, networking, storage, or predefined container charges.

How reservation discount is applied

A reservation discount is use-it-or-lose-it. So, if you don't have matching resources for any hour, then you lose a reservation quantity for that hour. You can't carry forward unused reserved hours.

When you shut down a resource, the reservation discount automatically applies to another matching resource in the specified scope. If no matching resources are found in the specified scope, then the reserved hours are lost.

Stopped resources are billed and continue to use reservation hours. To use your available reservation hours with other workloads, deallocate or delete resources or scale-in other resources.

Reservation discount applied to Azure Cosmos DB accounts

A reservation discount is applied to provisioned throughput in terms of request units per second (RU/s) on an hour-by-hour basis. For Azure Cosmos DB resources that don't run the full hour, the reservation discount is automatically applied to other Azure Cosmos DB resources that match the reservation attributes. The discount can apply to Azure Cosmos DB resources that are running concurrently. If your Azure Cosmos DB resources don't operate for the entire hour or don't align with the reservation attributes, you don't get the full benefit from the hourly reservation discount.

The discounts are tiered. Reservations with higher request units provide higher discounts.

The reservation purchase applies discounts to all regions in the ratio equivalent to the regional on-demand pricing. For reservation discount ratios in each region, see the Reservation discount per region section of this article.

Scenarios that show how the reservation discount is applied

Consider the following requirements for a reservation:

  • Required throughput: 50,000 RU/s
  • Regions used: 2

In this case, your total on-demand charges are for 500 quantity of 100 RU/s meter in these two regions. The total RU/s consumption is 100,000 every hour.

Scenario 1

For example, assume that you need Azure Cosmos DB deployments in the China North 3 and China East 2 regions. Each region has a throughput consumption of 50,000 RU/s. A reservation purchase of 100,000 RU/s would completely balance your on-demand charges.

The discount that a reservation covers is computed as: throughput consumption * reservation_discount_ratio_for_that_region. For the China North 3 and China East 2 regions, the reservation discount ratio is 1. So, the total discounted RU/s are 100,000. This value is computed as: 50,000 * 1 + 50,000 * 1 = 100,000 RU/s. You don't have to pay any other charges at the regular pay-as-you-go rates.

Meter description Region Throughput consumption (RU/s) Reservation discount applied to RU/s
Azure Cosmos DB - 100 RU/s/Hour - China North 3 China North 3 50,000 50,000
Azure Cosmos DB - 100 RU/s/Hour - China East 2 China East 2 50,000 50,000

Scenario 2

For example, assume that you need Azure Cosmos DB deployments in the China North 3 and China East 2 regions. Each region has a throughput consumption of 50,000 RU/s. A reservation purchase of 100,000 RU/s would be applicable as follows (assuming that China North 3 usage was discounted first):

Meter description Region Throughput consumption (RU/s) Reservation discount applied to RU/s
Azure Cosmos DB - 100 RU/s/Hour - China North 3 China North 3 50,000 50,000
Azure Cosmos DB - 100 RU/s/Hour - China East 2 China East 2 50,000 15,384
  • A usage of 50,000 units in the China North 3 region corresponds to 75,000 RU/s of billable reservation usage (or normalized usage). This value is computed as: throughput consumption * reservation_discount_ratio_for_that_region. The computation equals 75,000 RU/s of billable or normalized usage. This value is computed as: 50,000 * 1.5 = 75,000 RU/s.

  • A usage of 50,000 units in the China East 2 region corresponds to 50,000 * 1.625 = 81,250 RU/s reservation is needed.

  • Total reservation purchase is 100,000. Because China North 3 region uses 75,000 RU/s, which leaves 25,000 RU/s for the other region.

  • For China East 2 region, a 25,000 RU/s reservation purchase is used and it leaves 56,250 reservation RU/s (81,250 – 25,000 = 56,250 Ru/s).

  • 56,250 RU/s are required when using reservation. To pay for the RU/s with regular pricing, you need to convert it into regular RU/s by dividing with the reservation ratio 56,250 / 1.625 = 34,616 RU/s. Regular RU/s are charged at the normal pay-as-you-go rates.

The Azure billing system assigns the reservation billing benefit to the first instance that is processed and that matches the reservation configuration. For example, it's China North 3 in this case.

To understand and view the application of your Azure reservations in billing usage reports, see Understand Azure reservation usage.

Need help? Contact us.

If you have questions or need help, create a support request.

To learn more about Azure reservations, see the following articles: