skip to main content
10.1145/2767386.2767401acmconferencesArticle/Chapter ViewAbstractPublication PagespodcConference Proceedingsconference-collections
research-article

Safety-Liveness Exclusion in Distributed Computing

Published:21 July 2015Publication History

ABSTRACT

The history of distributed computing is full of trade-offs between safety and liveness. For instance, one of the most celebrated results in the field, namely the impossibility of consensus in an asynchronous system basically says that we cannot devise an algorithm that deterministically ensures consensus agreement and validity (i.e., safety) on the one hand, and consensus wait-freedom (i.e., liveness) on the other hand. The motivation of this work is to study the extent to which safety and liveness properties inherently exclude each other. More specifically, we ask, given any safety property S, whether we can determine the strongest (resp. weakest) liveness property that can (resp. cannot) be achieved with S. We show that, maybe surprisingly, the answers to these safety-liveness exclusion questions are in general negative. This has several ramifications in various distributed computing contexts. In the context of consensus for example, this means that it is impossible to determine the strongest (resp. the weakest) liveness property that can (resp. cannot) be ensured with linearizability.

However, we present a way to circumvent these impossibilities and answer positively the safety-liveness question by considering a restricted form of liveness. We consider a definition that gathers generalized forms of obstruction-freedom and lock-freedom while enabling to determine the strongest (resp. weakest) liveness property that can (resp. cannot) be implemented in the context of consensus and transactional memory.

References

  1. B. Alpern and F. B. Schneider. Defining liveness. Information Processing Letters, 21(4), 1985.Google ScholarGoogle Scholar
  2. H. Attiya and J. Welch. Distributed Computing: Fundamentals, Simulations and Advanced Topics. John Wiley & Sons, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. Borowsky and E. Gafni. Generalized flp impossibility result for t-resilient asynchronous computations. In ACM STOC, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. V. Bushkov and R. Guerraoui. Safety-liveness exclusion in distributed computing. Technical Report 207929, EPFL, 2015.Google ScholarGoogle Scholar
  5. V. Bushkov, R. Guerraoui, and M. Kapałka. On the liveness of transactional memory. In ACM PODC, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. B. Chor, A. Israeli, and M. Li. On processor coordination using asynchronous hardware. In ACM PODC, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. F. Ellen, P. Fatourou, E. Kosmas, A. Milani, and C. Travers. Universal constructions that ensure disjoint-access parallelism and wait-freedom. In ACM PODC, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. F. Fich and E. Ruppert. Hundreds of impossibility results for distributed computing. Distrib. Comput., 16(2--3), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. J. Fischer, N. A. Lynch, and M. S. Paterson. Impossibility of distributed consensus with one faulty process. J. ACM, 32(2), 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. K. Fraser. Practical lock freedom. In PhD thesis, Cambridge University Computer Laboratory, 2003.Google ScholarGoogle Scholar
  11. P. Ganty, R. Majumdar, and A. Rybalchenko. Verifying liveness for asynchronous programs. In ACM POPL, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Gilbert and N. Lynch. Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services. SIGACT News, 33(2), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Gilbert and N. A. Lynch. Perspectives on the cap theorem. Computer, 45(2), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. S. Greenberg, G. Taubenfeld, and D.-W. Wang. Choice coordination with multiple alternatives (preliminary version). In WDAG, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. Guerraoui and M. Kapalka. On obstruction-free transactions. In ACM SPAA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Guerraoui and M. Kapalka. On the correctness of transactional memory. In ACM PPoPP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Guerraoui and E. Ruppert. Anonymous and fault-tolerant shared-memory computing. Distributed Computing, 20(3):165--177, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. T. Harris, J. R. Larus, and R. Rajwar. Transactional Memory, 2nd edition. Morgan and Claypool, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Herlihy. Wait-free synchronization. ACM Trans. Program. Lang. Syst., 13(1), 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Herlihy, V. Luchangco, and M. Moir. Obstruction-free synchronization: Double-ended queues as an example. In IEEE ICDCS, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Herlihy, V. Luchangco, M. Moir, and W. N. Scherer, III. Software transactional memory for dynamic-sized data structures. In ACM PODC, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Herlihy and N. Shavit. The topological structure of asynchronous computability. J. ACM, 46(6), 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. Herlihy and N. Shavit. On the nature of progress. In OPODIS, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst., 12(3), 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Imbs, M. Raynal, and G. Taubenfeld. On asymmetric progress conditions. In ACM PODC, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. L. Lamport. Using time instead of timeout for fault-tolerant distributed systems. ACM Trans. Program. Lang. Syst., 6(2), 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. B. W. Lampson. How to build a highly available system using consensus. In WDAG, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. C. Loui and H. H. Abu-Amara. Memory requirements for agreement among unreliable asynchronous processes, volume 4. JAI press, 1987.Google ScholarGoogle Scholar
  29. N. A. Lynch. Distributed Algorithms. Morgan Kaufmann Publishers Inc., 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Owicki and L. Lamport. Proving liveness properties of concurrent programs. ACM Trans. Program. Lang. Syst., 4(3), 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. C. H. Papadimitriou. The serializability of concurrent database updates. J. ACM, 26(4), 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. F. B. Schneider. Implementing fault-tolerant services using the state machine approach: a tutorial. ACM Comput. Surv., 22(4), 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. R. Segala, R. Gawlick, J. Søgaard-Andersen, and N. Lynch. Liveness in timed and untimed systems. Inf. Comput., 141(2), 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. N. Shavit and D. Touitou. Software transactional memory. In ACM PODC, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. G. Taubenfeld. On the computational power of shared objects. In OPODIS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. G. Taubenfeld. The computational structure of progress conditions. In DISC, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. G. Taubenfeld and S. Moran. Possibility and impossibility results in a shared memory environment. Acta Inf, 33, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. H. Völzer and D. Varacca. Defining fairness in reactive and concurrent systems. J. ACM, 59(3), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Safety-Liveness Exclusion in Distributed Computing

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        PODC '15: Proceedings of the 2015 ACM Symposium on Principles of Distributed Computing
        July 2015
        508 pages
        ISBN:9781450336178
        DOI:10.1145/2767386

        Copyright © 2015 ACM

        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 the author(s) 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].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 21 July 2015

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        PODC '15 Paper Acceptance Rate45of191submissions,24%Overall Acceptance Rate740of2,477submissions,30%

        Upcoming Conference

        PODC '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader