MMS • RSS
Microsoft has announced multiple updates to Azure Cosmos DB, their globally distributed, massively scalable, multi-model database service. The announcements include features around support for globally scaled multi-master, the addition of a Cassandra API, and price-lowering options with reserved capacity.
Cosmos DB offers a NoSQL database service, much like AWS DynamoDB and Google Cloud Datastore. Moreover, Cosmos DB is a foundational service of Azure, meaning it is available in all Azure regions, including specialized clouds like government, sovereign, and DoD. According to Dharma Shukla, founder of Azure Cosmos DB and Technical Fellow at Microsoft, Cosmos DB was created as a cloud-native database service and incorporates three fundamental characteristics that come with it.
Since its conception in 2010, as a cloud-born database, we have carefully designed and engineered Azure Cosmos DB to exploit the three fundamental properties of the cloud:
- Global distribution by virtue of transparent multi-master replication.
- Elastic scalability of throughput and storage worldwide by virtue of horizontal partitioning.
- Fine grained multi-tenancy by virtue of highly resource-governed system stack all the way from the database engine to the replication protocol.
The new features, announced at Microsoft Ignite, further enhance the capabilities of Cosmos DB. For instance, support for multi-master at a global scale is now generally available and allows every region where the service runs to become a master for writing data. Cosmos DB will then handle replication of the data while handling any conflicts according to the resolution scheme the owner decided on. Three resolution modes are available for when conflicts occur on inserts, updates or deletes, each with its traits.
- Last-Writer-Wins, the default mode, which uses a property with a numeric value from the document. The document with the highest value gets persisted, except in case of deletes, as then the delete always wins.
- Custom – User-Defined Procedure, where a user creates a User Defined Procedure (UDP according to a specific signature. Hence, this allows the implementation of custom logic for handling conflicts.
- Custom – Asynchronous, where the service writes all conflicts to a read-only feed. Subsequently, the application can then implement logic to handle these conflicts, using any external data available.
As the announcement of multi-master data allows to write data globally, it is also essential to decide on consistency. Therefore, Cosmos DB provides five consistency levels, ranging from strong consistency where reading data always return the most recent version of a document, all the way to eventual, giving very fast reads and writes, but which may lead to out of order data.
Another announced feature is the general availability of Cassandra as a supported API. Cosmos DB provides several models to communicate with the underlying database service, including SQL, Gremlin, and MongoDB, and so now Cassandra as well. As Anne Pilon, freelance writer, mentions this allows to switch existing Cassandra applications to use Azure Cosmos DB with minimal to no changes.
This lets you continue using your existing applications and open source software tools without the need for changing code. It also lets you fully manage Cassandra apps without the need for a vendor lock-in.
Finally, the reserved capacity model allows to bring down the costs, particularly in cases where the required computing power, also known as Request Units, is known beforehand. By pre-paying for these resources for one or three years, costs can go down significantly, according to Rimma Nehme, product manager and architect on Azure Cosmos DB.
Reserved capacity enables you to reserve provisioned throughput in Cosmos DB on a one-or three-year term and provide up to 65% cost savings versus pay-as-you-go prices.
Anyone can get started with Cosmos DB through the Try Cosmos DB for free program. With this program Microsoft offers a free 30-day trial, allowing to create a globally distributed container over three regions while providing all the features of the product.