Azure Cosmos DB is a Microsoft cloud database that supports multiple methods of storing and processing data. As such, it is classified as a multi-model database.
In multi-model databases, various database engines are natively supported and accessible through common APIs. They are not limited to a single data model as is the case, for example, with dedicated graph, key-value or document stores.
Azure Cosmos DB vs. DocumentDB
Azure Cosmos DB was born in part from work undertaken by Microsoft Research to improve data development methods for large-scale applications. This work started as “Project Florence” in 2010 and Microsoft brought it to market in 2015 with the release of Azure DocumentDB.
Azure Cosmos DB, which became generally available in May 2017, is the next-generation version of DocumentDB and essentially replaces this NoSQL document-oriented data model. Cosmos DB adds support for key values, charts, and geospatial data, among other features.
Since the age of the web, these various data formats have found increasing use in computing stores that were once more strictly confined to SQL-oriented relational data models.
The great computer scientist Leslie Lamport
talks about distributed systems and data
on the cloud.
Available only as a cloud service, Azure Cosmos DB stands out for its support for global data distribution, i.e. partitioning of data across multiple regions or Azure cloud zones. Azure Cosmos DB uses containers, called “collections”, to store data. Without requiring explicit programming, Azure Cosmos DB’s global distribution style brings data closer to users’ physical locations. The database also implements an advanced consistency tuning model, which aims to avoid issues that force data architects to make difficult trade-offs on distributed systems between throughput, space, and consistency, as shown in the widely quoted CAP theorem.
As with Document DB, it allows data developers to work with flexible data schemas that are easier to create and maintain than the more common relational schemas.
Azure Cosmos DB pricing
At the time of publication, Azure Cosmos DB was priced on an hourly basis for the number of collections used and for the throughput of request units per second, and on a monthly basis for the amount of storage used.
A request unit, or RU, is the measure of throughput in Azure Cosmos DB. Every operation in Cosmos DB, including reads, writes, SQL queries, and stored procedures, has an RU value based on the throughput required by the request.
Technical support for Azure cloud services, including support for Cosmos DB, is available for an additional monthly fee. Microsoft’s SLA for Cosmos DB provides 99.99% availability, throughput, latency, and consistency guarantees.