Microsoft's globally distributed data shack Cosmos DB shoots for sky. Or at least 5 nines

Lower latency, better availability and Cassandra. What's not to like? Maybe the price

Ignite Microsoft today launched a wave of new features to lure punters onto its globally distributed database service, Cosmos DB.

Multi-Master is faster

Cosmos DB, released just over 18 months ago as an evolution of the Azure DocumentDB NoSQL service, has now gained multi-master functionality, promising a service-level agreement (SLA) backed write availability of 99.999 per cent across the world. This is in addition to 99.999 per cent read availability.

Latency is also improved, with single-digit millisecond write latency joining the single-digit latency enjoyed by reads. Again, Microsoft has put its money where its mouth is with financially backed SLAs.

The new replication model, which is leaving preview, will mean that every Azure region is now writeable, with the functionality being available globally by default.

Redmond also reckoned that the new master-master approach will deal with the conflict resolution headaches endured by developers in typical master-less replicated systems. The protocol used by Cosmos DB will handle conflicts automatically with a Last-Writer-Wins default. However, developers will be delighted to learn that lurking behind the scenes are options to handle conflicts with a user defined procedure or simply lobbing the problems into a feed for the user's application to deal with.

Microsoft is very proud of the replication protocol it has developed for the service, claiming "unlimited endpoint scalability" from hundreds of cloud regions to potentially billions of edge devices. And yes, if you're in the IoT world, the tech will treat your edge device and a cloud region as peers.

Cassandra and JavaScript

As a "multi-model" database service, Cosmos DB allows users to pick and choose from a number of APIs for how they want to talk to the thing. These have included the likes of MongoDB and Gremlin as well as SQL. After a little while in preview, Microsoft has now added support for Cassandra, the data store for apps written for Apache Cassandra.

Microsoft is keen to get developers to adopt its technology, and so has ensured wire protocol level compatibility with the Cassandra API, meaning that devs need change little more than a connection string in order to point their code and Microsoft's services and enjoy the delights of five-nines availability.

The love has also been extended to JavaScript, as version 2.0 of the Azure Cosmos DB JavaScript SDK also hit general availability, with a redesigned object model making it easier to interact with Cosmos DB.

Reserving capacity and reducing the entry point

While one of the selling points of Cosmo DB is its elastic scalability, those who like to plan can realise up to 65 per cent in savings over pay-as-you-go by signing up to a one- or three-year plan for reserved capacity. Securing such a commitment from customers rather than dealing with the uncertainties of elasticity will also bring a smile to the faces of Microsoft's beancounters.

Finally, Microsoft is attempting to lure developers with a 5x lower minimum entry point for database-level provisioned throughput, down from 50,000 request units per second (RU/s) to 10,000.

The price for all that distributed goodness still remains a little wince-inducing, and to achieve that 65 per cent in savings you will need to commit to a three-year reservation and over 3 million RU/s.

In addition, while reserving capacity will up the SLA beyond 99.999 per cent, you'll need a minimum of 100 RU/s to get it. So if that 5x reduction has tempted you, forget about reserving capacity. ®




Biting the hand that feeds IT © 1998–2018