Cosmos DB

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.

History

CosmosDB started as a successor to DocumentDB in 2006

System Architecture

Shared-Nothing

Indexes

Bw-Tree

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.

Stored Procedures

Not Supported

Checkpoints

Non-Blocking

Cosmos DB Logo
Website

https://azure.microsoft.com/en-us/services/cosmos-db/

Tech Docs

https://docs.microsoft.com/en-us/azure/cosmos-db/

Developer

Microsoft

Country of Origin

US

Start Year

2015

Former Name

DocumentDB

Project Type

Commercial

Written in

C++

Supported languages

C#, Go, Java, JavaScript, Python

Operating Systems

Windows

Licenses

Proprietary