CosmosDB is a globally distributed, consistent, schema-less, multi-model document database that provides high-throughput and availability across various geographical regions. It started as an internal project called "Florence" at Microsoft and then later expanded to Document DB and then finally to Cosmos DB. It is used to solve data storage problems of large-scale distributed Internet-scale applications. Most of the Microsoft internal services such as Bing, Office 365, Ads, etc. and many other external services use Cosmos DB for their storage needs. It provides 99.99% availability regardless of a number of regions associated with data.
As soon as the data is ingested into the system, all of the data is synchronously indexed and made durable and highly available. The internal Meta-data service, which is part of Cosmos maintains file extent locations similar to HDFS name node. It indexes all of the meta-data by using Hekaton, an in-memory database. Updates to the meta-data state is done using SQL transactions on Hekaton with the help of lock-free indexes such as Bw-Trees. The updates are propogated to other nodes by using RSL-HK rings.
https://azure.microsoft.com/en-us/services/cosmos-db/
https://docs.microsoft.com/en-us/azure/cosmos-db/
Microsoft
2015
DocumentDB
C#, Go, Java, JavaScript, Python