'Cause I'm Strong Enough: Reasoning about Consistency Choices in Distributed Systems

被引:66
|
作者
Gotsman, Alexey [1 ]
Yang, Hongseok [2 ]
Ferreira, Carla [3 ]
Najafzadeh, Mahsa [4 ]
Shapiro, Marc [4 ]
机构
[1] IMDEA Software Inst, Madrid, Spain
[2] Univ Oxford, Oxford OX1 2JD, England
[3] Univ Nova Lisboa, NOVA LINCS, DI, FCT, P-1200 Lisbon, Portugal
[4] Univ Paris 06, Univ Sorbonne, Inria, F-75252 Paris 05, France
基金
英国工程与自然科学研究理事会;
关键词
Replication; causal consistency; integrity invariants;
D O I
10.1145/2914770.2837625
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Large-scale distributed systems often rely on replicated databases that allow a programmer to request different data consistency guarantees for different operations, and thereby control their performance. Using such databases is far from trivial: requesting stronger consistency in too many places may hurt performance, and requesting it in too few places may violate correctness. To help programmers in this task, we propose the first proof rule for establishing that a particular choice of consistency guarantees for various operations on a replicated database is enough to ensure the preservation of a given data integrity invariant. Our rule is modular: it allows reasoning about the behaviour of every operation separately under some assumption on the behaviour of other operations. This leads to simple reasoning, which we have automated in an SMT-based tool. We present a nontrivial proof of soundness of our rule and illustrate its use on several examples.
引用
收藏
页码:371 / 384
页数:14
相关论文
共 23 条
  • [1] Reasoning about Consistency Choices in Modern Distributed Systems
    Gotsman, Alexey
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2018, (279): : 3 - 3
  • [2] Tutorial: Consistency Choices in Modern Distributed Systems
    Gotsman, Alexey
    [J]. PODC'18: PROCEEDINGS OF THE 2018 ACM SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING, 2018, : 491 - 491
  • [3] Reasoning about Distributed Reconfigurable Systems
    Ahrens, Emma
    Bozga, Marius
    Iosif, Radu
    Katoen, Joost-Pieter
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA):
  • [4] A Framework for Prototyping and Reasoning about Distributed Systems
    Aldinucci, Marco
    Danelutto, Marco
    Kilpatrick, Peter
    [J]. PARALLEL COMPUTING: ARCHITECTURES, ALGORITHMS AND APPLICATIONS, 2008, 15 : 235 - +
  • [5] Reasoning about asynchronous behaviour in distributed systems
    Henderson, P
    [J]. EIGHTH IEEE INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS, PROCEEDINGS, 2002, : 17 - 24
  • [6] Reasoning about knowledge in asynchronous distributed systems
    Costa, Vania
    Benevides, Mario
    [J]. LOGIC JOURNAL OF THE IGPL, 2005, 13 (01) : 5 - 28
  • [7] REASONING ABOUT KNOWLEDGE TO UNDERSTAND DISTRIBUTED AI SYSTEMS
    MAZER, MS
    [J]. IEEE TRANSACTIONS ON SYSTEMS MAN AND CYBERNETICS, 1991, 21 (06): : 1333 - 1346
  • [8] USING REASONING ABOUT KNOWLEDGE TO ANALYZE DISTRIBUTED SYSTEMS
    HALPERN, JY
    [J]. ANNUAL REVIEW OF COMPUTER SCIENCE, 1987, 2 : 37 - 68
  • [9] Decision Problems in a Logic for Reasoning About Reconfigurable Distributed Systems
    Bozga, Marius
    Bueri, Lucas
    Iosif, Radu
    [J]. AUTOMATED REASONING, IJCAR 2022, 2022, 13385 : 691 - 711
  • [10] Aneris: A Mechanised Logic for Modular Reasoning about Distributed Systems
    Krogh-Jespersen, Morten
    Timany, Amin
    Ohlenbusch, Marit Edna
    Gregersen, Simon Oddershede
    Birkedal, Lars
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS ( ESOP 2020): 29TH EUROPEAN SYMPOSIUM ON PROGRAMMING, 2020, 12075 : 336 - 365