What is it about?
This paper is about building applications atop of distributed databases, especially when the goal is to achieve both high performance and correctness. While strong consistency is easy to reason about, it is often slow in practice. Eventual consistency is fast, but notoriously difficult to use correctly. Testing methods can only take us so far in resolving this conundrum. Many of the read-write anomalies of weaker consistency levels tend to only occur under heavy production loads, making them elusive during testing. By using modeling, we can design correct applications even when leveraging the weakest consistency levels for the sake of performance -- we can have the cake and eat it too.
Featured Image
Photo by Maria Teneva on Unsplash
Why is it important?
This paper presents a formal specification of Azure Cosmos DB's five consistency levels, offering a tool for practitioners to model database applications. Consistency is a problem in distributed systems, in that distribution requires different servers to reconcile differences between multiple versions of the same information. It allows users to assess how well their applications handle read and write anomalies in weaker consistency levels. We also showcase our model by thoroughly explaining a Microsoft Azure outage. Additionally, we establish a formal hierarchy among Cosmos DB's consistency levels.
Perspectives
We hope that software engineers building applications on top of distributed databases find our model useful for enhancing their skills and designing accurate and efficient database applications.
Markus Kuppe
Microsoft Corp
Read the Original
This page is a summary of: Understanding Inconsistency in Azure Cosmos DB with TLA+, May 2023, Institute of Electrical & Electronics Engineers (IEEE),
DOI: 10.1109/icse-seip58684.2023.00006.
You can read the full text:
Contributors
The following have contributed to this page







