Advertisement

Distributed Computing

, Volume 20, Issue 6, pp 415–433 | Cite as

The weakest failure detectors to boost obstruction-freedom

  • Rachid Guerraoui
  • Michał Kapałka
  • Petr Kouznetsov
Open Access
Article

Abstract

It is considered good practice in concurrent computing to devise shared object implementations that ensure a minimal obstruction-free progress property and delegate the task of boosting liveness to independent generic oracles called contention managers. This paper determines necessary and sufficient conditions to implement wait-free and non-blocking contention managers, i.e., contention managers that ensure wait-freedom (resp. non-blockingness) of any associated obstruction-free object implementation. The necessary conditions hold even when universal objects (like compare-and-swap) or random oracles are available in the implementation of the contention manager. On the other hand, the sufficient conditions assume only basic read/write objects, i.e., registers. We show that failure detector \(\lozenge{\fancyscript{P}}\) is the weakest to convert any obstruction-free algorithm into a wait-free one, and Ω *, a new failure detector which we introduce in this paper, and which is strictly weaker than \(\lozenge\fancyscript{P}\) but strictly stronger than Ω, is the weakest to convert any obstruction-free algorithm into a non-blocking one. We also address the issue of minimizing the overhead imposed by contention management in low contention scenarios. We propose two intermittent failure detectors \(I_{\Omega^*}\) and \(I_{\lozenge\fancyscript{P}}\) that are in a precise sense equivalent to, respectively, Ω * and \(\lozenge\fancyscript{P}\), but allow for reducing the cost of failure detection in eventually synchronous systems when there is little contention. We present two contention managers: a non-blocking one and a wait-free one, that use, respectively, \(I_{\Omega^*}\) and \(I_{\lozenge\fancyscript{P}}\). When there is no contention, the first induces very little overhead whereas the second induces some non-trivial overhead. We show that wait-free contention managers, unlike their non-blocking counterparts, impose an inherent non-trivial overhead even in contention-free executions.

Keywords

Shared memory Obstruction-free Non-blocking Wait-free Contention manager Failure detector 

References

  1. 1.
    Aguilera, M.K., Delporte-Gallet, C., Fauconnier, H., Toueg, S.: Stable leader election. In: Proceedings of the International Symposium on Distributed Computing (DISC) (2001)Google Scholar
  2. 2.
    Attiya, H., Guerraoui, R., Kouznetsov, P.: Computing with reads and writes in the absence of step contention. In: Proceedings of the 19th International Symposium on Distributed Computing (DISC) (2005)Google Scholar
  3. 3.
    Attiya H. and Welch J.L. (2004). Distributed Computing: Fundamentals, Simulations and Advanced Topics, 2nd edn. Wiley, New York Google Scholar
  4. 4.
    Bershad, B.N.: Practical considerations for non-blocking concurrent objects. In: Proceedings of the 14th IEEE International Conference on Distributed Computing Systems (ICDCS), pp. 264–273 (1993)Google Scholar
  5. 5.
    Boichat, R., Dutta, P., Frølund, S., Guerraoui, R.: Deconstructing Paxos. ACM SIGACT News Distributed Computing Column 34(1), 47–67 (2003). Revised version of EPFL Technical Report 200106, January 2001Google Scholar
  6. 6.
    Chandra T.D., Hadzilacos V. and Toueg S. (1996). The weakest failure detector for solving consensus. J. ACM 43(4): 685–722 MATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Chandra T.D. and Toueg S. (1996). Unreliable failure detectors for reliable distributed systems. J. ACM 43(2): 225–267 MATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Dwork C., Lynch N.A. and Stockmeyer L.J. (1988). Consensus in the presence of partial synchrony. J. ACM 35(2): 288–323 CrossRefMathSciNetGoogle Scholar
  9. 9.
    Fetzer, C., Raynal, M., Tronel, F.: An adaptive failure detection protocol. In: Proceedings of the 2001 Pacific Rim International Symposium on Dependable Computing (2001)Google Scholar
  10. 10.
    Fich, F., Luchangco, V., Moir, M., Shavit, N.: Obstruction-free algorithms can be practically wait-free. In: Proceedings of the 19th International Symposium on Distributed Computing (DISC) (2005)Google Scholar
  11. 11.
    Fischer M.J., Lynch N.A. and Paterson M.S. (1985). Impossibility of distributed consensus with one faulty process. J. ACM 32(3): 374–382 MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Gafni E. and Lamport L. (2003). Disk Paxos. Distrib. Comput. 1(16): 1–20 CrossRefGoogle Scholar
  13. 13.
    Guerraoui, R.: Indulgent algorithms. In: Proceedings of the 19th Annual ACM Symposium on Principles of Distributed Computing (PODC) (2000)Google Scholar
  14. 14.
    Guerraoui, R., Herlihy, M., Kapałka, M., Pochon, B.: Robust contention management in software transactional memory. In: Proceedings of the Workshop on Synchronization and Concurrency in Object-Oriented Languages (SCOOL); in conjunction with the ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) (2005)Google Scholar
  15. 15.
    Guerraoui, R., Herlihy, M., Pochon, B.: Polymorphic contention management. In: Proceedings of the 19th International Symposium on Distributed Computing (DISC). LNCS, pp. 303–323. Springer, Heidelberg (2005)Google Scholar
  16. 16.
    Guerraoui, R., Herlihy, M., Pochon, B.: Toward a theory of transactional contention managers. In: Proceedings of the 24th Annual ACM Symposium on Principles of Distributed Computing (PODC) (2005)Google Scholar
  17. 17.
    Guerraoui, R., Schiper, A.: “Γ-accurate” failure detectors. In: Proceedings of the 10th International Workshop on Distributed Algorithms (WDAG). Springer, Heidelberg (1996)Google Scholar
  18. 18.
    Herlihy M. (1991). Wait-free synchronization. ACM Trans. Program. Lang. Syst. 13(1): 124–149 CrossRefGoogle Scholar
  19. 19.
    Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N.: Software transactional memory for dynamic-sized data structures. In: Proceedings of the 22nd Annual ACM Symposium on Principles of Distributed Computing (PODC), pp. 92–101 (2003)Google Scholar
  20. 20.
    Herlihy, M., Luchango, V., Moir, M.: Obstruction-free synchronization: Double-ended queues as an example. In: Proceedings of the 23rd IEEE International Conference on Distributed Computing Systems (ICDCS), pp. 522–529 (2003)Google Scholar
  21. 21.
    Herlihy M. and Wing J.M. (1990). Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3): 463–492 CrossRefGoogle Scholar
  22. 22.
    Jayanti P. (1997). Robust wait-free hierarchies. J. ACM 44(4): 592–614 MATHCrossRefMathSciNetGoogle Scholar
  23. 23.
    LaMarca, A.: A performance evaluation of lock-free synchronization protocols. In: Proceedings of the 13th Annual ACM Symposium on Principles of Distributed Computing (PODC), pp. 130–140 (1994)Google Scholar
  24. 24.
    Lamport L. (1998). The part-time parliament. ACM Trans. Comput. Syst. 16(2): 133–169 CrossRefGoogle Scholar
  25. 25.
    Larrea M., Fernández A. and Arévalo S. (2004). On the implementation of unreliable failure detectors in partially synchronous systems. IEEE Trans. Comput. 53(7): 815–828 CrossRefGoogle Scholar
  26. 26.
    Moir, M., Anderson, J.H.: Wait-free algorithms for fast, long-lived renaming. Sci. Comput. Program. 25 (1995)Google Scholar
  27. 27.
    Scherer III, W.N., Scott, M.L.: Contention management in dynamic software transactional memory. In: Proceedings of the Workshop on Concurrency and Synchronization in Java Programs; in conjunction with the 23th Annual ACM Symposium on Principles of Distributed Computing (PODC) (2004)Google Scholar
  28. 28.
    Scherer III, W.N., Scott, M.L.: Advanced contention management for dynamic software transactional memory. In: Proceedings of the 24th Annual ACM Symposium on Principles of Distributed Computing (PODC) (2005)Google Scholar

Copyright information

© Springer-Verlag 2007

Authors and Affiliations

  • Rachid Guerraoui
    • 1
    • 2
  • Michał Kapałka
    • 1
  • Petr Kouznetsov
    • 3
  1. 1.School of Computer and Communication Sciences, EPFLLausanneSwitzerland
  2. 2.Computer Science and Artificial Intelligence LaboratoryMITCambridgeUSA
  3. 3.Max Planck Institute for Software SystemsSaarbruckenGermany

Personalised recommendations