Communication-Closed Layers as Paradigm for Distributed Systems: A Manifesto

Distributed computations are characterized by a partial order over events: two concurrent events at different processes may be re-ordered without changing the outcome of the computation. For systems that are composed of so-called communication-closed layers, this partial-order argument has been used by Elrad and Francez [13] to reduce the reasoning about distributed systems to a specific sequential form. We discuss existing techniques for communicationclosed layers, and discuss applications to automated verification of state-of-the-art distributed systems.

[1]  Eli Gafni,et al.  Understanding and verifying distributed algorithms using stratified decomposition , 1988, PODC '88.

[2]  André Schiper,et al.  Distal: A framework for implementing fault-tolerant distributed algorithms , 2013, 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[3]  David G. Andersen,et al.  There is more consensus in Egalitarian parliaments , 2013, SOSP.

[4]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[5]  Leslie Lamport,et al.  The Byzantine Generals Problem , 1982, TOPL.

[6]  Mannes Poel,et al.  Layering of Real-Time Distributed Processes , 1994, FTRTFT.

[7]  David A. Basin,et al.  Cutoff Bounds for Consensus Algorithms , 2017, CAV.

[8]  Joost-Pieter Katoen,et al.  Layered Reduction for Abstract Probabilistic Automata , 2014, 2014 14th International Conference on Application of Concurrency to System Design.

[9]  Stephan Merz,et al.  Formal Verification of a Consensus Algorithm in the Heard-Of Model , 2009, Int. J. Softw. Informatics.

[10]  Andy Extance The future of cryptocurrencies: Bitcoin and beyond , 2015, Nature.

[11]  Joost-Pieter Katoen,et al.  Layered reasoning for randomized distributed algorithms , 2012, Formal Aspects of Computing.

[12]  Yoram Moses,et al.  Causing communication closure: safe program composition with reliable non-FIFO channels , 2009, Distributed Computing.

[13]  Brett D. Fleisch,et al.  The Chubby lock service for loosely-coupled distributed systems , 2006, OSDI '06.

[14]  Nicola Santoro,et al.  Time is Not a Healer , 1989, STACS.

[15]  Doron A. Peled,et al.  All from One, One for All: on Model Checking Using Representatives , 1993, CAV.

[16]  Richard J. Lipton,et al.  Reduction: a method of proving properties of parallel programs , 1975, CACM.

[17]  Helmut Veith,et al.  A short counterexample property for safety and liveness verification of fault-tolerant distributed algorithms , 2016, POPL.

[18]  Ramakrishna Kotla,et al.  Zyzzyva: speculative byzantine fault tolerance , 2007, TOCS.

[19]  André Schiper,et al.  Communication Predicates: A High-Level Abstraction for Coping with Transient and Dynamic Faults , 2007, 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'07).

[20]  André Schiper,et al.  The Heard-Of model: computing in distributed systems with benign faults , 2009, Distributed Computing.

[21]  André Schiper,et al.  Tolerating corrupted communication , 2007, PODC '07.

[22]  Antti Valmari,et al.  Stubborn sets for reduced state space generation , 1991, Applications and Theory of Petri Nets.

[23]  Thomas A. Henzinger,et al.  A Logic-Based Framework for Verifying Consensus Algorithms , 2014, VMCAI.

[24]  Thomas A. Henzinger,et al.  PSync: a partially synchronous language for fault-tolerant distributed algorithms , 2016, POPL.

[25]  Willem P. de Roever,et al.  A Principle for Sequential Reasoning about Distributed Algorithms , 1994, Formal Aspects of Computing.

[26]  Nancy A. Lynch,et al.  Impossibility of distributed consensus with one faulty process , 1985, JACM.

[27]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[28]  Yoram Moses,et al.  Safe Composition of Distributed Programs Communicating over Order-Preserving Imperfect Channels , 2005, IWDC.

[29]  Mannes Poel,et al.  Modular Completeness for Communication Closed Layers , 1993, CONCUR.

[30]  Tatsuhiro Tsuchiya,et al.  Using Bounded Model Checking to Verify Consensus Algorithms , 2008, DISC.

[31]  Nissim Francez,et al.  Decomposition of Distributed Programs into Communication-Closed Layers , 1982, Sci. Comput. Program..

[32]  Nancy A. Lynch,et al.  The Need for Headers: An Impossibility Result for Communication over Unreliable Channels , 1990, CONCUR.

[33]  Patrice Godefroid Using Partial Orders to Improve Automatic Verification Methods , 1990, CAV.

[34]  Mannes Poel,et al.  Layering Techniques for Development of Parallel Systems , 1992, CAV.

[35]  Nikolaj Bjørner,et al.  Cardinalities and universal quantifiers for verifying parameterized systems , 2016, PLDI.

[36]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[37]  Stephan Merz,et al.  Formal Verification of Consensus Algorithms Tolerating Malicious Faults , 2011, SSS.

[38]  Ethan Buchman,et al.  Tendermint: Byzantine Fault Tolerance in the Age of Blockchains , 2016 .

[39]  Liuba Shrira,et al.  On Proving Communication Closedness of Distributed Layers , 1986, FSTTCS.

[40]  Stephan Merz,et al.  A Reduction Theorem for the Verification of Round-Based Distributed Algorithms , 2009, RP.

[41]  Tatsuhiro Tsuchiya,et al.  Verification of consensus algorithms using satisfiability solving , 2011, Distributed Computing.

[42]  Helmut Veith,et al.  Para\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$^2$$\end{document}2: parameterized path reduction, acceleration, a , 2017, Formal Methods in System Design.

[43]  Benjamin Aminof,et al.  Parameterized Model Checking of Synchronous Distributed Algorithms by Abstraction , 2018, VMCAI.

[44]  Wil Janssen,et al.  Layers as Knowledge Transitions in the Design of Distributed Systems , 1995, TACAS.