A Lightweight Method for Automated Design of Convergence

Design and verification of Self-Stabilizing (SS) network protocols are difficult tasks in part because of the requirement that a SS protocol must recover to a set of legitimate states from {\em any} state in its state space (when perturbed by transient faults). Moreover, distribution issues exacerbate the design complexity of SS protocols as processes should take local actions that result in global recovery/convergence of a network protocol. As such, most existing design techniques focus on protocols that are locally-correctable. To facilitate the design of finite-state SS protocols (that may not necessarily be locally-correctable), this paper presents a lightweight formal method supported by a software tool that automatically adds convergence to non-stabilizing protocols. We have used our method/tool to automatically generate several SS protocols with up to 40 processes (and $3^{40}$ states) in a few minutes on a regular PC. Surprisingly, our tool has automatically synthesized both protocols that are the same as their manually-designed versions as well as new solutions for well-known problems in the literature (e.g., Dijkstra's token ring~\cite{dij}). Moreover, the proposed method has helped us reveal flaws in a manually designed SS protocol.

[1]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[2]  Orna Kupferman,et al.  Synthesizing Distributed Systems , 2001, LICS.

[3]  Anish Arora,et al.  Closure and Convergence: A Foundation of Fault-Tolerant Computing , 1993, IEEE Trans. Software Eng..

[4]  Vijay K. Garg,et al.  Parallel and distributed algorithms for supervisory control of discrete event systems , 1993, Proceedings of 32nd IEEE Conference on Decision and Control.

[5]  Wolfgang Thomas,et al.  Symbolic Synthesis of Finite-State Controllers for Request-Response Specifications , 2003, CIAA.

[6]  Paul C. Attie,et al.  Synthesis of concurrent systems with many similar processes , 1998, TOPL.

[7]  Mohamed G. Gouda Multiphase Stabilization , 2002, IEEE Trans. Software Eng..

[8]  Borzoo Bonakdarpour,et al.  Exploiting Symbolic Techniques in Automated Synthesis of Distributed Programs with Large State Space , 2007, 27th International Conference on Distributed Computing Systems (ICDCS '07).

[9]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[10]  Mohamed G. Gouda,et al.  The Triumph and Tribulation of System Stabilization , 1995, WDAG.

[11]  A. Prasad Sistla,et al.  Symmetry and model checking , 1993, Formal Methods Syst. Des..

[12]  Tzilla Elrad,et al.  Motorola WEAVR: Aspect and model-Driven Engineering , 2007, J. Object Technol..

[13]  Anish Arora,et al.  Distributed Reset , 1994, IEEE Trans. Computers.

[14]  Krishnendu Chatterjee,et al.  Robustness in the Presence of Liveness , 2010, CAV.

[15]  Carla Piazza,et al.  Computing strongly connected components in a linear number of symbolic steps , 2003, SODA '03.

[16]  Borzoo Bonakdarpour,et al.  Revising Distributed UNITY Programs Is NP-Complete , 2008, OPODIS.

[17]  Wolfgang Thomas,et al.  Infinite Games and Verification (Extended Abstract of a Tutorial) , 2002, CAV.

[18]  Ali Ebnenasir,et al.  Automatic synthesis of fault-tolerance , 2005 .

[19]  Frank A. Stomp Structured design of self-stabilizing programs , 1993, [1993] The 2nd Israel Symposium on Theory and Computing Systems.

[20]  W. Murray Wonham,et al.  Think Globally, Act Locally: Decentralized Supervisory Control , 1991, 1991 American Control Conference.

[21]  Stéphane Lafortune,et al.  On tolerable and desirable behaviors in supervisory control of discrete event systems , 1991, Discret. Event Dyn. Syst..

[22]  Pierre Wolper,et al.  Synthesis of Communicating Processes from Temporal Logic Specifications , 1981, TOPL.

[23]  Anish Arora,et al.  Scalable self-stabilization via composition , 2004, 24th International Conference on Distributed Computing Systems, 2004. Proceedings..

[24]  Jana Kosecka,et al.  Control of Discrete Event Systems , 1992 .

[25]  Anish Arora,et al.  Stabilization-Preserving Atomicity Refinement , 2002, J. Parallel Distributed Comput..

[26]  W. M. Wonham,et al.  Decentralized control and coordination of discrete-event systems with partial observation , 1990 .

[27]  I-Ling Yen A Highly Safe Self-Stabilizing Mutual Exclusion Algorithm , 1996, Inf. Process. Lett..

[28]  Amir Pnueli,et al.  On the synthesis of a reactive module , 1989, POPL '89.

[29]  Shing-Tsaan Huang,et al.  Leader election in uniform rings , 1993, TOPL.

[30]  Wolfgang Thomas,et al.  On the Synthesis of Strategies in Infinite Games , 1995, STACS.

[31]  Edsger W. Dijkstra,et al.  Self-stabilizing systems in spite of distributed control , 1974, CACM.

[32]  Mohamed G. Gouda,et al.  Token Systems that Self-Stabilize , 1989, IEEE Trans. Computers.

[33]  Fuad Abujarad,et al.  Multicore Constraint-Based Automated Stabilization , 2009, SSS.

[34]  O. Kupermann,et al.  Synthesizing distributed systems , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[35]  Roderick Bloem,et al.  Finding and Fixing Faults , 2005, CHARME.

[36]  George Varghese Self-stabilization by counter flushing , 1994, PODC '94.

[37]  Jennifer L. Welch,et al.  Self-Stabilizing Clock Synchronization in the Presence of ByzantineFaults ( Preliminary Version ) Shlomi Dolevy , 1995 .

[38]  Hrishikesh B. Acharya,et al.  Nash equilibria in stabilizing systems , 2009, Theor. Comput. Sci..

[39]  Anish Arora,et al.  FTSyn: a framework for automatic synthesis of fault-tolerance , 2008, International Journal on Software Tools for Technology Transfer.

[40]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[41]  Anish Arora,et al.  Synthesis of fault-tolerant concurrent programs , 2004 .

[42]  Murat Demirbas,et al.  Convergence refinement , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[43]  Anish Arora,et al.  Synthesis of fault-tolerant concurrent programs , 2004, TOPL.

[44]  Fabio Somenzi,et al.  CUDD: CU Decision Diagram Package Release 2.2.0 , 1998 .

[45]  Edmund M. Clarke,et al.  Using Branching Time Temporal Logic to Synthesize Synchronization Skeletons , 1982, Sci. Comput. Program..

[46]  Mathai Joseph,et al.  Transformation of programs for fault-tolerance , 2005, Formal Aspects of Computing.

[47]  Amir Pnueli,et al.  Distributed reactive systems are hard to synthesize , 1990, Proceedings [1990] 31st Annual Symposium on Foundations of Computer Science.

[48]  Mohamed G. Gouda,et al.  Stabilizing Communication Protocols , 1991, IEEE Trans. Computers.

[49]  Paul C. Attie,et al.  Synthesis of concurrent programs for an atomic read/write model of computation , 2001, TOPL.

[50]  Stéphane Lafortune,et al.  Minimal communication in a distributed discrete-event system , 2003, IEEE Trans. Autom. Control..

[51]  Boaz Patt-Shamir,et al.  Self-stabilization by local checking and correction , 1991, [1991] Proceedings 32nd Annual Symposium of Foundations of Computer Science.

[52]  Thomas A. Henzinger,et al.  Synthesizing robust systems , 2009, FMCAD.

[53]  Ali Ebnenasir,et al.  A Lightweight Method for Automated Design of Convergence , 2011, IPDPS.

[54]  Mohamed G. Gouda The Theory of Weak Stabilization , 2001, WSS.

[55]  Moti Yung,et al.  The Local Detection Paradigm and Its Application to Self-Stabilization , 1997, Theor. Comput. Sci..

[56]  Jong-Tae Lim,et al.  Synthesis of fault-tolerant supervisor for automated manufacturing systems: a case study on photolithographic process , 1998, IEEE Trans. Robotics Autom..

[57]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[58]  Shlomi Dolev,et al.  SuperStabilizing protocols for dynamic distributed systems , 1995, PODC '95.

[59]  Ali Ebnenasir,et al.  Towards an Extensible Framework for Automated Design of Self-Stabilization , 2010 .

[60]  W. M. Wonham,et al.  The control of discrete event systems , 1989 .

[61]  A. Prasad Sistla,et al.  Symmetry and model checking , 1996, Formal Methods Syst. Des..

[62]  Shmuel Katz,et al.  Self-stabilizing extensions for message-passing systems , 1990, PODC '90.

[63]  Ajoy Kumar Datta,et al.  Self-stabilizing census with cut-through constraint , 1999, Proceedings 19th IEEE International Conference on Distributed Computing Systems.

[64]  Anish Arora,et al.  Automating the Addition of Fault-Tolerance , 2000, FTRTFT.

[65]  George Varghese,et al.  Constraint satisfaction as a basis for designing nonmasking fault-tolerance , 1996, J. High Speed Networks.

[66]  K. Rohloff,et al.  Computations on distributed discrete -event systems , 2004 .