[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3123569.3123571acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Construction and formal verification of a fault-tolerant distributed mutual exclusion algorithm

Published: 08 September 2017 Publication History

Abstract

Distributed fault-tolerant control algorithms are in great demand nowadays due to their practical importance in cloud computing, Internet of Things (IoT) technology, swarm robotics, and other areas. It is usually hard to make a distributed algorithm fault-tolerant. It is even harder to ensure that such algorithm behaves correctly in the presence of faults of some kind.
In this work, we construct a reliable, adaptive, fault-tolerant distributed mutual exclusion algorithm based on the well-known Ricart-Agrawala algorithm. In order to formally verify it, we use a hybrid approach of deductive reasoning and bounded model-checking.
First, a safety property of the Ricart-Agrawala algorithm is proved in Calculus of Inductive Constructions of Coq proof assistant using assertional reasoning. Then, an extension of that algorithm turning it into fault-tolerant and adaptive to participants set change, is formalized in TLA and checked on a bounded model.
Besides constructing and verifying the algorithm, this work aims to familiarize those interested in constructing highly reliable components with well established verification methods that were used to verify the proposed algorithm.

References

[1]
Joe Armstrong. 2007. Programming Erlang: software for a concurrent world. Pragmatic Bookshelf.
[2]
Thomas Arts and Mads Dam. 1999. Verifying a distributed database lookup manager written in Erlang. In International Symposium on Formal Methods. Springer, 682–700.
[3]
Yves Bertot and Pierre Castéran. 2013. Interactive theorem proving and program development: Coq’Art: the calculus of inductive constructions . Springer Science & Business Media.
[4]
Tim Carsten. 2013. Verlang repository. "https://github.com/tcarstens/verlang" . (2013). Accessed: 2017-05-26.
[5]
Tushar Deepak Chandra and Sam Toueg. 1996. Unreliable failure detectors for reliable distributed systems. Journal of the ACM (JACM) 43, 2 (1996), 225–267.
[6]
Mouna Chaouch-Saad, Bernadette Charron-Bost, and Stephan Merz. 2009. A reduction theorem for the verification of round-based distributed algorithms. Reachability problems (2009), 93–106.
[7]
Bernadette Charron-Bost and Stephan Merz. 2009. Formal Verification of a Consensus Algorithm in the Heard-Of Model. Int. J. Software and Informatics 3, 2-3 (2009), 273–303.
[8]
Bernadette Charron-Bost and André Schiper. 2009. The heard-of model: computing in distributed systems with benign faults. Distributed Computing 22, 1 (2009), 49–71.
[9]
Flaviu Cristian, Houtan Aghili, Ray Strong, and Danny Dolev. 1995. Atomic broadcast: From simple message diffusion to Byzantine agreement. Information and Computation 118, 1 (1995), 158–179.
[10]
Cezara Drăgoi, Thomas A Henzinger, and Damien Zufferey. 2016. PSync: a partially synchronous language for fault-tolerant distributed algorithms. ACM SIGPLAN Notices 51, 1 (2016), 400–415.
[11]
Clara Benac Earle, Lars-Åke Fredlund, and John Derrick. 2005. Verifying faulttolerant erlang programs. In Proceedings of the 2005 ACM SIGPLAN workshop on Erlang . ACM, 26–34.
[12]
Tzilla Elrad and Nissim Francez. 1982. Decomposition of distributed programs into communication-closed layers. Science of Computer Programming 2, 3 (1982), 155–173.
[13]
Lars-Åke Fredlund and Hans Svensson. 2007. McErlang: a model checker for a distributed functional programming language. In ACM SIGPLAN Notices, Vol. 42. ACM, 125–136.
[14]
Qiang Guo. 2007. Verifying Erlang/OTP components in µCRL. In International Conference on Formal Techniques for Networked and Distributed Systems . Springer, 227–246.
[15]
Chris Hawblitzel, Jon Howell, Manos Kapritsos, Jacob R Lorch, Bryan Parno, Michael L Roberts, Srinath Setty, and Brian Zill. 2015. IronFleet: proving practical distributed systems correct. In Proceedings of the 25th Symposium on Operating Systems Principles . ACM, 1–17.
[16]
Mauro Jaskelioff and Stephan Merz. 2005. Proving the correctness of Disk Paxos. The Archive of Formal Proofs (June 2005). http://isa-afp.org/entries/DiskPaxos. shtml, Formal proof development.
[17]
Leslie Lamport. 2002. Specifying systems: the TLA+ language and tools for hardware and software engineers . Addison-Wesley Longman Publishing Co., Inc.
[18]
Thomas Noll, Lars-ake Fredlund, and Dilian Gurov. 2001. The Erlang verification tool. In TACAS. Springer, 582–586.
[19]
Diego Ongaro and John K Ousterhout. 2014. In search of an understandable consensus algorithm. In USENIX Annual Technical Conference. 305–319.
[20]
Vincent Rahli, David Guaspari, Mark Bickford, and Robert L Constable. 2015. Formal specification, verification, and implementation of fault-tolerant systems using EventML. Electronic Communications of the EASST 72 (2015).
[21]
Glenn Ricart and Ashok K Agrawala. 1981. An optimal algorithm for mutual exclusion in computer networks. Commun. ACM 24, 1 (1981), 9–17.
[22]
Aleta M Ricciardi and Kenneth P Birman. 1993. Process membership in asynchronous environments . Technical Report. Cornell University.
[23]
Ekaterina Sedletsky, Amir Pnueli, and Mordechai Ben-Ari. 2000. Formal verification of the Ricart-Agrawala algorithm. In International Conference on Foundations of Software Technology and Theoretical Computer Science . Springer, 325–335.
[24]
Evgeniy Shishkin. 2017. RAPlus repository. "https://bitbucket.org/unboxed_ type/ra_mutex" . (2017). Accessed:2017-05-26.
[25]
Ulf Wiger and Thomas Arts. 2013. The locks application. "https://github.com/ uwiger/locks" . (2013). Accessed: 2017-05-26.
[26]
James R Wilcox, Doug Woos, Pavel Panchekha, Zachary Tatlock, Xi Wang, Michael D Ernst, and Thomas Anderson. 2015. Verdi: a framework for implementing and formally verifying distributed systems. In ACM SIGPLAN Notices, Vol. 50. ACM, 357–368.

Cited By

View all
  • (2024)An efficient failure-resilient mutual exclusion algorithm for distributed systems leveraging a novel zero-message overlay structureComputer Communications10.1016/j.comcom.2024.02.007218(1-13)Online publication date: Mar-2024
  • (2024)Distributed intelligence for IoT-based smart cities: a surveyNeural Computing and Applications10.1007/s00521-024-10136-y36:27(16621-16656)Online publication date: 22-Jul-2024
  • (2018)Formal Specification and Model Checking of the Walter-Welch-Vaidya Mutual Exclusion Protocol for Ad Hoc Mobile Networks2018 25th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC.2018.00023(89-98)Online publication date: Dec-2018

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
Erlang 2017: Proceedings of the 16th ACM SIGPLAN International Workshop on Erlang
September 2017
65 pages
ISBN:9781450351799
DOI:10.1145/3123569
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 September 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Fault-tolerant distributed algorithms
  2. deductive verification
  3. model-checking
  4. mutual exclusion

Qualifiers

  • Research-article

Conference

ICFP '17
Sponsor:

Acceptance Rates

Overall Acceptance Rate 51 of 68 submissions, 75%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 04 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)An efficient failure-resilient mutual exclusion algorithm for distributed systems leveraging a novel zero-message overlay structureComputer Communications10.1016/j.comcom.2024.02.007218(1-13)Online publication date: Mar-2024
  • (2024)Distributed intelligence for IoT-based smart cities: a surveyNeural Computing and Applications10.1007/s00521-024-10136-y36:27(16621-16656)Online publication date: 22-Jul-2024
  • (2018)Formal Specification and Model Checking of the Walter-Welch-Vaidya Mutual Exclusion Protocol for Ad Hoc Mobile Networks2018 25th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC.2018.00023(89-98)Online publication date: Dec-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media