SLA for Azure Cosmos DB

Updated: 12/2017

Azure Cosmos DB, operated by 21Vianet in China, is a distributed multi-model database service. It offers turnkey distribution across any number of Azure regions in China by transparently scaling and replicating your data wherever your users are. The service offers comprehensive 99.99% SLAs which covers the guarantees for throughput, consistency, availability and latency for the Cosmos DB Database Accounts scoped to a single Azure region configured with any of the five Consistency Levels or Database Accounts spanning multiple Azure regions, configured with any of the four relaxed Consistency Levels. Furthermore, independent of the choice of a Consistency Level, Cosmos DB offers 99.999% SLA for read availability for Database Accounts spanning two or more Azure regions.

Introduction

This Service Level Agreement for Azure (this "SLA") is made by 21Vianet in connection with, and is a part of, the agreement under which Customer has purchased Azure Services from 21Vianet (the "Agreement").

We provide financial backing to our commitment to achieve and maintain Service Levels for our Services. If we do not achieve and maintain the Service Levels for each Service as described in this SLA, then you may be eligible for a credit towards a portion of your monthly service fees. These terms will be fixed for term of your Agreement. If a subscription is renewed, the version of this SLA that is current at the time the renewal term commences will apply throughout the renewal term. We will provide at least 90 days' notice for adverse material changes to this SLA. You can review the most current version of this SLA at any time by visiting https://www.azure.cn/support/legal/sla/.

General Terms

1. Definitions

  1. "Claim" means a claim submitted by Customer to 21Vianet pursuant to this SLA that a Service Level has not been met and that a Service Credit may be due to Customer.

  2. "Customer" refers to the organization that has entered into the Agreement.

  3. "Customer Support" means the services by which 21Vianet may provide assistance to Customer to resolve issues with the Services.

  4. "Error Code" means an indication that an operation has failed, such as an HTTP status code in the 5xx range.

  5. "External Connectivity" is bi-directional network traffic over supported protocols such as HTTP and HTTPS that can be sent and received from a public IP address.

  6. "Incident" means any set of circumstances resulting in a failure to meet a Service Level.

  7. "Management Portal" means the web interface, provided by 21Vianet, through which customers may manage the Service.

  8. "21Vianet" means the 21Vianet entity that appears on Customer's Agreement.

  9. "Preview" refers to a preview, beta, or other pre-release version of a service or software offered to obtain customer feedback.

  10. "Service" or "Services" refers to a Azure service provided to Customer pursuant to the Agreement for which an SLA is provided below.

  11. "Service Credit" is the percentage of the monthly service fees for the affected Service or Service Resource that is credited to Customer for a validated Claim.

  12. "Service Level" means standards 21Vianet chooses to adhere to and by which it measures the level of service it provides for each Service as specifically set forth below.

  13. "Service Resource" means an individual resource available for use within a Service.

  14. "Success Code" means an indication that an operation has succeeded, such as an HTTP status code in the 2xx range.

  15. "Support Window" refers to the period of time during which a Service feature or compatibility with a separate product or service is supported.

  16. "Virtual Network" refers to a virtual private network that includes a collection of user-defined IP addresses and subnets that form a network boundary within Azure.

  17. "Virtual Network Gateway" refers to a gateway that facilitates cross-premises connectivity between a Virtual Network and a customer on-premises network.

2. Service Credit Claims

  1. In order for 21Vianet to consider a Claim, Customer must submit the Claim to Customer Support within two months of the end of the billing month in which the Incident that is the subject of the Claim occurs. Customer must provide to Customer Support all information necessary for 21Vianet to validate the Claim, including but not limited to detailed descriptions of the Incident, the time and duration of the Incident, the affected resources or operations, and any attempts made by Customer to resolve the Incident

  2. 21Vianet will use all information reasonably available to it to validate the Claim and to determine whether any Service Credits are due.

  3. In the event that more than one Service Level for a particular Service is not met because of the same Incident, Customer must choose only one Service Level under which a Claim may be made based on the Incident.

  4. Service Credits apply only to fees paid for the particular Service, Service Resource, or Service tier for which a Service Level has not been met. In cases where Service Levels apply to individual Service Resources or to separate Service tiers, Service Credits apply only to fees paid for the affected Service Resource or Service tier, as applicable.

3. SLA Exclusions

This SLA and any applicable Service Levels do not apply to any performance or availability issues:

  1. Due to factors outside 21Vianet’s reasonable control (for example, a network or device failure external to 21Vianet’s data centers, including at Customer's site or between Customer's site and 21Vianet’s data center);

  2. That resulted from Customer's use of hardware, software, or services not provided by 21Vianet as part of the Services (for example, third-party software or services purchased from the Azure Store or other non-Azure services provided by 21Vianet);

  3. Due to Customer's use of the Service in a manner inconsistent with the features and functionality of the Service (for example, attempts to perform operations that are not supported) or inconsistent with published documentation or guidance;

  4. That resulted from faulty input, instructions, or arguments (for example, requests to access files that do not exist);

  5. Caused by Customer's use of the Service after 21Vianet advised Customer to modify its use of the Service, if Customer did not modify its use as advised;

  6. During or with respect to Previews or to purchases made using 21Vianet subscription credits;

  7. That resulted from Customer's attempts to perform operations that exceed prescribed quotas or that resulted from throttling of suspected abusive behavior;

  8. Due to Customer's use Service features that are outside of associated Support Windows; or

  9. Attributable to acts by persons gaining unauthorized access to 21Vianet’s Service by means of Customer's passwords or equipment or otherwise resulting from Customer's failure to follow appropriate security practices.

4. Service Credits

  1. The amount and method of calculation of Service Credits is described below in connection with each Service.

  2. Service Credits are Customer's sole and exclusive remedy for any failure to meet any Service Level.

  3. The Service Credits awarded in any billing month for a particular Service or Service Resource will not, under any circumstance, exceed Customer's monthly service fees that Service or Service Resource, as applicable, in the billing month.

  4. For Services purchased as part of a suite, the Service Credit will be based on the pro-rata portion of the cost of the Service, as determined by 21Vianet in its reasonable discretion. In cases where Customer has purchased Services from a reseller, the Service Credit will be based on the estimated retail price for the applicable Service, as determined by 21Vianet in its reasonable discretion.

SLA details

Additional Definitions

  1. "Collection" is a container of JSON documents, and a unit of scale for transactions and queries.

  2. "Consumed RUs" is the sum of the Request Units consumed by all the requests which are processed by the Azure Cosmos DB Collection in a given second.

  3. "Database Account" is the top-level resource of the Azure Cosmos DB resource model. An Azure Cosmos DB Database Account contains one or more databases.

  4. "Failed Requests" are requests within Total Requests that either return an Error Code or fail to return a Success Code within the maximum upper bounds documented in the table below.

  5. "Failed Read Requests" are requests within Total Read Requests that either return an Error Code or fail to return a Success Code within the maximum upper bounds documented in the table below.

  6. OPERATION MAXIMUM UPPER BOUND ON PROCESSING LATENCY
    All Database Account configuration operations 2 Minutes
    Add a new Region 60 Minutes
    Manual Failover 5 Minutes
    Resource Operations 5 Sec
    Media Operations 60 Sec
  7. "Provisioned RUs" is the total provisioned Request Units for a given Azure Cosmos DB Collection for a given second.

  8. "Rate Limited Requests" are requests which are throttled by the Azure Cosmos DB Collection after Consumed RUs have exceeded the Provisioned RUs for a partition in the Collection for a given second.

  9. "Request Unit (RU)" is a measure of throughput in Azure Cosmos DB.

  10. "Resource" is a set of URI addressable entities associated with a Database Account.

  11. "Successful Requests" are Total Requests minus Failed Requests.

  12. "Total Requests" is the set of all requests, including Rate Limited Requests and all Failed Requests, issued against Resources within a one-hour interval within a given Azure subscription during a billing month.

  13. "Total Read Requests" is the set of all the read requests, including Rate Limited Requests and all the Failed Read Requests, issued against Resources within a one-hour interval within a given Azure subscription during a billing month.

Availability SLA

  1. "Read Error Rate" is the total number of Failed Read Requests divided by Total Read Requests, across all Resources in a given Azure subscription, during a given one-hour interval. If the Total Read Requests in a given one-hour interval is zero, the Read Error Rate for that interval is 0%.

  2. "Error Rate" is the total number of Failed Requests divided by Total Requests, across all Resources in a given Azure subscription, during a given one-hour interval. If the Total Requests in a given one-hour interval is zero, the Error Rate for that interval is 0%.

  3. "Average Error Rate" for a billing month is the sum of Error Rates for each hour in the billing month divided by the total number of hours in the billing month.

  4. "Average Read Error Rate" for a billing month is the sum of Read Error Rates for each hour in the billing month divided by the total number of hours in the billing month.

  5. "Monthly Availability Percentage for the Azure Cosmos DB Service deployed via Database Accounts scoped to a single Azure region configured with any of the five Consistency Levels or Database Accounts spanning multiple regions, configured with any of the four relaxed Consistency Levels is calculated by subtracting from 100% the Average Error Rate for a given Azure subscription in a billing month. Monthly Availability Percentage is represented by the following formula:

    Monthly Uptime % = 100% - Average Error Rate

  6. Service Credit:

    MONTHLY AVAILABILITY PERCENTAGE SERVICE CREDIT
    <99.99% 10%
    <99% 25%
  7. "Monthly Read Availability Percentage" for the Azure Cosmos DB service deployed via Database Account configured to span two or more regions is calculated by subtracting from 100% the Average Read Error Rate for a given Azure subscription in a billing month. Monthly Read Availability Percentage is represented by the following formula:

    Monthly Read Availability Uptime % = 100% - Average Read Error Rate

  8. Service Credit:

    MONTHLY READ AVAILABILITY PERCENTAGE SERVICE CREDIT
    <99.999% 10%
    <99% 25%

Throughput SLA

  1. "Throughput Failed Requests" are requests which are throttled by the Azure Cosmos DB Collection resulting in an Error Code, before Consumed RUs have exceeded the Provisioned RUs for a partition in the Collection for a given second.

  2. "Error Rate" is the total number of Throughput Failed Requests divided by Total Requests, across all Resources in a given Azure subscription, during a given one-hour interval. If the Total Requests in a given one-hour interval is zero, the Error Rate for that interval is 0%.

  3. "Average Error Rate" for a billing month is the sum of Error Rates for each hour in the billing month divided by the total number of hours in the billing month.

  4. "Monthly Throughput Percentage" for the Azure Cosmos DB Service is calculated by subtracting from 100% the Average Error Rate for a given Azure subscription in a billing month. Monthly Throughput Percentage is represented by the following formula:

    Monthly Throughput % = 100% - Average Error Rate

  5. Service Credit:

    MONTHLY THROUGHPUT PERCENTAGE SERVICE CREDIT
    <99.99% 10%
    <99% 25%

Consistency SLA

  1. "K" is the number of versions of a given document for which the reads lag behind the writes.

  2. "T" is a given time interval.

  3. "Consistency Level" is the setting for a particular read request that supports consistency guarantees. The following table captures the guarantees associated with the Consistency Levels.Note that Session, Bounded Staleness, Consistent Prefix and Eventual Consistency Levels are all referred to as “relaxed”.

  4. CONSISTENCY LEVEL CONSISTENCY GUARANTEES
    Strong Linearizability
    Session Read Your Own Write (Within Write Region)
    Monotonic Read
    Consistent Prefix
    Bounded Staleness Read Your Own Write (Within Write Region)
    Monotonic Read (Within a Region)
    Consistent Prefix
    Staleness Bound < K,T >
    Consistent Prefix Consistent Prefix
    Eventual Eventual
  5. "Consistency Violation Rate" is Successful Requests that could not be delivered when performing the consistency guarantees specified for the chosen Consistency Level divided by Total Requests, across all Resources in a given Azure subscription, during a given one-hour interval. If the Total Requests in a given one-hour interval is zero, the Consistency Violation Rate for that interval is 0%.。

  6. "Average Consistency Violation Rate" for a billing month is the sum of Consistency Violation Rates for each hour in the billing month divided by the total number of hours in the billing month.

  7. "Monthly Consistency Attainment Percentage" for the Azure Cosmos DB service is calculated by subtracting from 100% the Average Consistency Violation Rate for a given Azure Subscription in a billing month.

    Monthly Consistency % = 100% - Average Consistency Violation Rate

  8. Service Credit:

    MONTHLY CONSISTENCY ATTAINMENT PERCENTAGE SERVICE CREDIT
    <99.99% 10%
    <99% 25%

Latency SLA

  1. "Application" is an Azure Cosmos DB application deployed within a local Azure region using the Azure Cosmos DB client SDK configured with TCP direct connectivity for a given Azure subscription in a billing month.

  2. "N"is the number of Successful Requests for a given Application performing either document read or document write operations with a payload size less than or equal to 1 KB in a given hour.

  3. "S"is the latency-sorted set of Successful Request response times in ascending order for a given Application performing document read or document write operations with a payload size less than or equal to 1 KB in a given hour.

  4. "Ordinal Rank"is the 99th percentile using the nearest rank method represented by the following formula:

    Ordinal Rank = (99 / 100) * N

  5. "P99 Latency" is the value at the Ordinal Rank of S.

  6. "Excessive Latency Hours" is the total number of one-hour intervals during which Successful Requests submitted by an Application resulted in a P99 Latency greater than or equal to 10ms for document read or 15ms for document write operations. If the number of Successful Requests in a given one-hour interval is zero, the Excessive Latency Hours for that interval is 0.

  7. "Average Excessive Latency Rate" for a billing month is the sum of Excessive Latency Hours divided by the total number of hours in the billing month.

  8. "Monthly P99 Latency Attainment Percentage" for a given Azure Cosmos DB Application deployed via Database Accounts scoped to a single Azure region configured with any of the five Consistency Levels or Database Accounts spanning multiple regions, configured with any of the four relaxed Consistency Levels is calculated by subtracting from 100% the Average Excessive Latency Rate for a given Azure subscription in a billing month. Monthly P99 Latency Attainment Percentage is represented by the following formula:

    Monthly P99 Latency Attainment % = 100% - Average Excessive Latency Rate

  9. Service Credit:

    MONTHLY P99 LATENCY ATTAINMENT PERCENTAGE SERVICE CREDIT
    <99.99% 10%
    <99% 25%