Microsoft continues to add Azure Cosmos DB features, including a capability to provision database throughput that...
creates new pricing considerations for users of the multimodel distributed cloud database.
Azure Cosmos DB was built out from DocumentDB, a Microsoft predecessor in the competition to produce the global database of the future. The intention is to support development of new styles of big data applications -- personalized e-commerce, mobile back ends and the like -- by businesses and to spur their move to cloud computing.
How that future will be priced is still a matter of conjecture, though. That's because there are complications when it comes to costing out the multimodel approach. In this case, multimodel means support for all the popular flavors of the NoSQL architecture that arose as cloud computing gained prominence. Microsoft developers can take advantage of Azure Cosmos DB features to build in many ways of processing many types of data in many amounts.
With such opportunity comes challenge. Provisioning use of such varied data models can be a capacity planning headache. Developers build it, then someone -- usually the DBA -- must price it out.
They must plan not just for data storage, but for RUs, too -- that standing variously for request units or request units per second. RUs are the currency that Microsoft uses to charge for throughput for read, write and query requests placed on Azure Cosmos DB databases. Tracking data this way is pretty much uncharted territory, at least outside of the big cloud operations of Google, Amazon and such.
Granularities of Cosmos DB
Last week at Microsoft's Build 2018 developer conference in Seattle, on Azure Cosmos DB's first birthday, the company showed previews that take Azure Cosmos DB deeper into the distributed future. These included multimaster write replication, and collectively provisioned data throughput for sets of Cosmos DB containers -- i.e., the tables, graphs and JSON document collections in a database.
The latter trait is intended to improve the way workloads map to charges across multiple models. That is important because Azure Cosmos DB features developer access to APIs for handling data in the form of tables, graphs or collections, all with measured data throughput requirements.
Now, buyers can "configure provisioned throughput at different granularities," to use Microsoft's jargon. The new provisioning feature has a minimum requirement of 50,000 RUs, which comes with a price tag of $3,000 per month.
That minimum requirement did not go unnoticed in blogs and on Twitter.
While he has seen instances where there is both a need for such performance and a budget to pay for it, James Randall, a U.K.-based independent consultant, said this type of Azure Cosmos DB pricing creates obstacles for some cost-conscious customers. In a blog post, he marked the existence of customers that can use, for example, Cosmos DB's graph capabilities, but who don't need the overhead of global data distribution, and who may for this reason balk at the cost.
Thomas LaRock, who serves as "head geek" at technology infrastructure management software provider SolarWinds, based in Austin, Texas, has a somewhat different take on the updated Cosmos DB pricing. While agreeing that it will likely price out some customers, he has blogged that the new Cosmos DB provisioning allows greater flexibility in managing workloads, and compares favorably to alternatives fashioned at Amazon.
Both LaRock and Randall suggested that Microsoft's initial RU pricing for database-level Cosmos DB provisioning may come in for change over time.
Counting request units
The drive for predictability on Azure Cosmos DB pricing that in some part underlies Microsoft's pursuit of the RU model is important. But it's complicated by the diversity of the data types required in the big data cloud era.
"Azure Cosmos DB is a solid multimodel database. It's predictable, and achieves low latencies," Randall said, adding that its support of document-oriented data is particularly mature. Randall gives Microsoft's distributed cloud database high marks for its use of "change feed" -- that is, an event handling architecture for Azure that "makes it easy to drive the scale up and down at runtime" in response to query types and workloads.
Looking toward that future may mean thinking outside the box, not just in terms of database design, but also in terms of database pricing. Counting request units in Azure Cosmos DB may eventually become someone's full-time job.