Requirements (circa 2010) • Turnkey global distribution • Low latency at the 99th percentile, worldwide • Guaranteed high availability • Programmable consistency • Elastically scale throughput and storage, globally, on demand • Operate at low cost
hosted managed database offerings cannot match this! Millions of trans/sec Petabytes of data Elastic and unlimited scalability Cost efficiencies with fine grained multi-tenancy
foundational Azure service – Available in all Azure regions by default, including sovereign/government clouds • Automatic multi-region replication – Associate any number of regions with your database account – Policy based geo-fencing • Multi-homing APIs – Apps don’t need to be redeployed during regional failover • Allows for dynamically setting priorities to regions – Simulate regional disaster via API – Test the end to end availability for the entire app (beyond just the database) • First to offer comprehensive SLA for latency, throughput, availability and consistency
region • Write optimized, latch-free database engine designed for SSDs and low latency access • Synchronous and automatic indexing at sustained ingestion rates Guaranteed low latency @ P99
Transparent server side partition management and routing • Automatically indexed SSD storage • Automatic global distribution of data across any number of Azure regions • Optionally evict old data using built-in support for TTL Elastically scalable storage
and synchronous indexing of all ingested content • No schemas or secondary indices ever needed • Resource governed, write optimized database engine with latch free and log structured techniques Schema agnostic indexing locations headquarter exports 0 1 country Germany city Berlin country France city Paris city Moscow city Athens Belgium 0 1 { "locations": [ { "country": "Germany", "city": "Berlin" }, { "country": "France", "city": "Paris" } ], "headquarter": "Belgium", "exports":[{"city":"Moscow"}, {"city":"Athens"}] }
• All data models are translated to ARS • API and wire protocols are supported via extensible modules • Instance of a given data model can be materialized as trees • Graph, documents, key-value, column-family, … more to come Native support for multiple data models SQL
worldwide • Quality gates • Chaos, component and functional test coverage • Automated performance, RG and consistency runs every 4 hours • 16+ hours of stress run every day • Full stack upgrades with customer workloads • Chaos tests • Automated linearizability checker and Jepsen tests • Invariant checks • All invariant violations are traced • SEV2 alerts on any invariant violation either pre or post production • Hot fix all invariant violation within 5 days • Transparently making all important metrics available to customers • SLA violations, workload metrics, PBS etc.
an afterthought while building a cloud database Schema agnostic database engine design is crucial for a globally distributed database Intermediate consistency models are extremely useful A globally distributed database must provide comprehensive SLAs beyond just high availability Throughput, latency at 99th percentile, consistency and high availability Summary