Cosmos DB

Azure Cosmos DBDocument DBMicrosoft Cosmos DB
Azure Cosmos DB is Microsoft’s proprietary globally-distributed, multi-model database service "for managing data at planet-scale" launched in May 2017.wikipedia
32 Related Articles

NoSQL

structured storagekey/value storenon-relational
It is schema-agnostic, horizontally scalable and generally classified as a NoSQL database.
Document: Apache CouchDB, ArangoDB, BaseX, Clusterpoint, Couchbase, Cosmos DB, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB

Gremlin (programming language)

Gremlin
4 different compatibility APIs, exposing endpoints that are partially compatible with the wire protocols of MongoDB, Gremlin, Cassandra and Azure Table Storage; these compatibility APIs make it possible for any compatible application to connect to and use Cosmos DB through standard drivers or SDKs, while also benefiting from Cosmos DB's core features like partitioning and global distribution.

Multi-model database

multi-modelMulti-Model DBMS
Cosmos DB – document (JSON), key-value, SQL

TLA+

TLA + TLA+ specification language
All 5 consistency levels have been specified and verified using the TLA+ specification language, with the TLA+ model being open-sourced on GitHub.
Microsoft Azure used TLA + to design Cosmos DB, a globally-distributed database with five different consistency models.

Time to live

TTLtime-to-livehop limit
A "Time to Live" (or TTL) can be specified at the container level to let Cosmos DB automatically delete items after a certain amount of time expressed in seconds.

Range query (database)

range queryrange queriesrange
Range, supporting range and ORDER BY queries,

Spatial query

spatial queries
Spatial, supporting spatial queries from points, polygons and line strings encoded in standard GeoJSON fragments.

GeoJSON

Spatial, supporting spatial queries from points, polygons and line strings encoded in standard GeoJSON fragments.

MongoDB

4 different compatibility APIs, exposing endpoints that are partially compatible with the wire protocols of MongoDB, Gremlin, Cassandra and Azure Table Storage; these compatibility APIs make it possible for any compatible application to connect to and use Cosmos DB through standard drivers or SDKs, while also benefiting from Cosmos DB's core features like partitioning and global distribution.

Apache Cassandra

Cassandra
4 different compatibility APIs, exposing endpoints that are partially compatible with the wire protocols of MongoDB, Gremlin, Cassandra and Azure Table Storage; these compatibility APIs make it possible for any compatible application to connect to and use Cosmos DB through standard drivers or SDKs, while also benefiting from Cosmos DB's core features like partitioning and global distribution.

JSON

JavaScript Object Notation (JSON)JSON-likedictionary
Items can be queried with a read-only, JSON-friendly SQL dialect.

JavaScript engine

JavaScriptJavaScript Enginesdedicated engine
As Cosmos DB embeds a JavaScript engine, the SQL API also enables:

Representational state transfer

RESTRESTfulREST API
The SQL API is exposed as a REST API, which itself is implemented in various SDKs that are officially supported by Microsoft and available for .NET, .NET Core, Node.js (Javascript), Java and Python.

ACID (computer science)

ACIDACID transactionsAtomicity, consistency, isolation, durability
Stored procedures. Functions that bundle an arbitrarily complex set of operations and logic into an ACID-compliant transaction. They are isolated from changes made while the stored procedure is executing and either all write operations succeed or they all fail, leaving the database in a consistent state. Stored procedures are executed in a single partition. Therefore, the caller must provide a partition key when calling into a partitioned collection. Stored procedures can be used to make up for the lack of certain functionality. For instance, the lack of aggregation capability is made up for by the implementation of an OLAP cube as a stored procedure in the open sourced documentdb-lumenize project.

IOPS

input/output operations per secondI/O operations per secondI/Os-per-second (IOPS)
Cosmos DB reserves resources (memory, CPU and IOPS) to guarantee the requested throughput while maintaining request latency below 10ms for both reads and writes at the 99.999th percentile.

Percentile

percentiles50th percentile85th percentile speed
Cosmos DB reserves resources (memory, CPU and IOPS) to guarantee the requested throughput while maintaining request latency below 10ms for both reads and writes at the 99.999th percentile.

Consistency (database systems)

Consistencyinconsistentconsistent
Data consistency is configurable on Cosmos DB, letting application developers choose among 5 different levels:

Linearizability

atomicatomic operationatomicity
Strong consistency (or linearizable) ensures that clients always read the latest globally committed write

Language Integrated Query

LINQLINQ to SQLLanguage Integrated Query (LINQ)
.NET LINQ language integrated queries are not fully supported. More and more LINQ support has been added over time, but developers are often confused when the LINQ code that they use on other systems fails to work as expected on Cosmos DB as evidenced by the large number of StackOverflow questions containing both tags.

Microsoft Azure

AzureMicrosoft Azure Service BusWindows Azure
Cosmos DB is a NoSQL database service that implements a subset of the SQL SELECT statement on JSON documents.

PACELC theorem

The default versions of DynamoDB, Cassandra, Riak and Cosmos DB are PA/EL systems: if a partition occurs, they give up consistency for availability, and under normal operation they give up consistency for lower latency.

NewSQL

NewSQL databases
Example systems in this category are Amazon Aurora, Google Spanner, TiDB, CockroachDB, Altibase, Apache Ignite, Microsoft Cosmos DB, GridGain, Clustrix, VoltDB, MemSQL, NuoDB, HarperDB