Just-Right Consistency: reconciling availability and safety
La juste cohérence pour reconcilier disponibilité et sûreté
Résumé
By the CAP Theorem, a distributed data storage system can ensure either Consistency under Partition (CP) or Availability under Partition (AP), but not both. This has led to a split between CP databases, in which updates are synchronous, and AP databases, where they are asynchronous. However, there is no inherent reason to treat all updates identically: simply, the system should be as available as possible, and synchronised just enough for the application to be correct. We offer a principled \emph{Just-Right Consistency} approach to designing such applications, reconciling correctness with availability and performance, based on the following insights:(i) The Conflict-Free Replicated Data Type (CRDTs) data model supports asynchronous updates in an intuitive and principled way.(ii) Invariants involving joint or mutually-ordered updates are compatible with AP and can be guaranteed by Transactional Causal Consistency, the strongest consistency model that does not compromise availability. Regarding the remaining, ``CAP-sensitive'' invariants:(iii) For the common pattern of Bounded Counters, we provide encapsulated data type that is proven correct and is efficient; (iv) in the general case, static analysis can identify when synchronisation is not necessary for correctness.Our Antidote cloud database system supports CRDTs, Transactional Causal Consistency and the Bounded Counter data type. Support tools help design applications by static analysis and proof of CAP-sensitive invariants. This system supports industrial-grade applications and has been tested experimentally with hundreds of servers across several geo-distributed data centres.
Le théorème CAP, un système de stockage réparti peut être, en cas de partition, soit cohérent (CP), soit disponible (AP), mais pas les deux. Il y a donc des bases de données CP, où les mises à jour sont synchrones, et les bases AP, où elles sont asynchrones. Cependant, il n'y a pas de raison essentielle de traiter toutes les mises à jour de façon identique. L'objectif est que le système reste aussi disponible que possible, mais suffisamment synchronisé pour que l'application reste correcte. Nous proposons un nouveau principe, la juste cohérence, afin de concevoir de telles applications, réconciliant la sûreté avec la disponibilité et l'efficacité, à partir des constatations suivantes : (i) Le modèle de données des CRDT (Conict-Free Replicated Data Type) permet les mises à jour concurrentes de façon à la fois théoriquement fondée et intuitive. (ii) Les invariants basés sur la simultanéité ou l'ordre partiel des mises à jour sont compatibles avec AP, et peuvent être garanties par la Cohérence Causale Transactionelle (TCC), le modèle de cohérence le plus fort qui ne compromet pas la disponibilité.
En ce qui concerne les autres invariants, dits CAP-sensibles : (iii) Le cas courant du compteur borné peut être géré par un type de données encapsulé, correct et cohérent, appelé Bounded Counter ; et (iv) dans le cas général, une analyse statique permet d'indentifier les cas où la sûreté ne nécessite pas de synchronisation. Notre base de données \nuage" Antidote offre les CRDT, le modèle TCC, et le type de données Bounded Counter. Des outils d'analyse statique et de preuve des invariants CAP-sensibles aident à la conception des applications. Notre système est mûr
pour des applications d'échelle industrielle, et à été testé expérimentallement sur des centaines de serveurs répartis entre plusieurs centres de données géo-distribués.
Origine | Fichiers produits par l'(les) auteur(s) |
---|