Wissen von A bis Z

Azure Cosmos DB

Eine Datenbank, die schneller um den Planeten reist als Ihre Gedanken — das ist Azure Cosmos DB.

Azure Cosmos DB ist die global verteilte, multi-modellfähige NoSQL- und relationale Datenbank von Microsoft Azure. Sie ist von Grund auf für horizontale Skalierung über Partitionen (Logical Partitions, gruppiert in Physical Partitions), globale Replikation in mehrere Azure-Regionen und einstellbare Konsistenzstufen ausgelegt. Cosmos DB unterstützt mehrere APIs auf demselben Storage-Engine: Core (SQL) für JSON-Dokumente, MongoDB-API, Cassandra-API, Gremlin-API für Graphen, Table-API als Nachfolger der Azure Storage Table sowie eine PostgreSQL-API auf Basis von Citus.

Eingesetzt wird Cosmos DB für globale, latenzkritische Anwendungen, IoT-Datenströme, Personalisierungs- und Empfehlungssysteme, Game-Backends, Katalog-Datenbanken großer SaaS-Plattformen sowie als Ziel von Change-Feeds für Materialized Views. Skalierung und Abrechnung erfolgen über Request Units pro Sekunde (RU/s) im Provisioned- oder Serverless-Modus; Autoscale passt RUs in einem definierten Bereich automatisch an.

Cosmos DB adressiert das klassische CAP-Trilemma. Cosmos DB bietet fünf wohldefinierte Konsistenzstufen — Strong, Bounded Staleness, Session, Consistent Prefix, Eventual — und überlässt Anwendungsteams die Wahl des Trade-offs zwischen Latenz, Verfügbarkeit und Konsistenz pro Anwendungsfall. Multi-Master-Schreibvorgänge über mehrere Regionen, garantierte Latenzen unter zehn Millisekunden bei P99 und finanzielle SLAs für Verfügbarkeit, Latenz, Durchsatz und Konsistenz sind Alleinstellungsmerkmale gegenüber klassischen NoSQL-Diensten.

Historisch hat Cosmos DB seinen Ursprung im Microsoft-internen Projekt "Florence" und wurde zunächst als "DocumentDB" im April 2014 als Preview veröffentlicht und im August 2015 allgemein verfügbar. Im Mai 2017 wurde DocumentDB zu Azure Cosmos DB umbenannt und um die Multi-Modell-Unterstützung (MongoDB, Cassandra, Gremlin, Table) sowie um globale Multi-Master-Schreibvorgänge erweitert. Mit der Vector-Search-Erweiterung in der Core-API und der Cosmos-DB-for-PostgreSQL-Variante (basierend auf der Übernahme von Citus Data 2019) wurde der Funktionsumfang in Richtung Vektordatenbanken und horizontal skalierender Postgres-Cluster erweitert.

Eingeführt wurde Cosmos DB federführend von Dharma Shukla als Technical Fellow. Cosmos DB ist eine der wenigen Cloud-Datenbanken, die ihr Konsistenzmodell formal mit der TLA+-Spezifikationssprache verifiziert hat — Leslie Lamport, der Erfinder von TLA+, hat als Berater an dieser Verifikation mitgewirkt. Die Spezifikationen wurden teilweise öffentlich gemacht und gelten als wertvolles Beispiel dafür, wie formale Methoden in einem produktiven Cloud-Dienst tatsächlich angewendet werden — und nicht nur in akademischen Lehrbüchern.

Zurück