Progress Guarantees When Composing Lock-Free Objects

  • Nhan Nguyen Dang
  • Philippas Tsigas
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6853)


Highly concurrent and reliable data objects are vital for parallel programming. Lock-free shared data objects are highly concurrent and guarantee that at least one operation, from a set of concurrently executed operations, finishes after a finite number of steps regardless of the state of the other operations. Lock-free data objects provide progress guarantees on the object level. In this paper, we first examine the progress guarantees provided by lock-free shared data objects that have been constructed by composing other lock-free data objects. We observe that although lock-free data objects are composable when it comes to linearizability, when it comes to progress guarantees they are not. More specifically we show that when a lock-free data object is used as a component (is shared) by two or more lock-free data objects concurrently, these objects can no longer guarantee lock-free progress. This makes it impossible for programmers to directly compose lock-free data objects and guarantee lock-freedom. To help programmability in concurrent settings, this paper presents a new synchronization mechanism for composing lock-free data objects. The proposed synchronization mechanism provides an interface to be used when calling a lock-free object from other lock-free objects, and guarantees lock-free progress for every object constructed. An experimental evaluation of the performance cost that the new mechanism introduces, as expected, for providing progress guarantees is also presented.


Shared Object Synchronization Mechanism Contention Level Concurrent Operation Operation Execution 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    IBM System/370 Extended Architecture, Principles of Operations. No. SA22-7085. IBM Publication (1983)Google Scholar
  2. 2.
    AMD: Advanced Synchronization Facility - Proposed Architectural Specification. No. 45432/rev 2.1, AMD (2009)Google Scholar
  3. 3.
    Cederman, D., Tsigas, P.: Supporting lock-free composition of concurrent data objects. In: Conf. Computing Frontiers, pp. 53–62. ACM, New York (2010)Google Scholar
  4. 4.
    Click, C.: A lock-free wait-free hash table, lecture notes in Course EE380 (2006-2007), Stanford University (2007),
  5. 5.
    Cohen, D., Campbell, N.: Automatic composition of data structures to represent relations. In: Proceedings of KBSE 1992, pp. 182–191 (September 1992)Google Scholar
  6. 6.
    Fraser, K., Harris, T.: Concurrent programming without locks. ACM Trans. Comput. Syst. 25(2) (2007)Google Scholar
  7. 7.
    Gao, H., Groote, J., Hesselink, W.: Almost wait-free resizable hashtables. In: Proceedings of IPDPS 2004, p. 50a (2004)Google Scholar
  8. 8.
    Gidenstam, A., Papatriantafilou, M., Tsigas, P.: Allocating memory in a lock-free manner. Algorithmica 58, 304–338 (2005)CrossRefMathSciNetzbMATHGoogle Scholar
  9. 9.
    Gidenstam, A., Sundell, H., Tsigas, P.: Cache-aware lock-free queues for multiple producers/consumers and weak memory consistency. In: Lu, C., Masuzawa, T., Mosbah, M. (eds.) OPODIS 2010. LNCS, vol. 6490, pp. 302–317. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  10. 10.
    Harris, T.L.: A pragmatic implementation of non-blocking linked-lists. In: Lecture Notes in Computer Science, pp. 300–314. Springer, Heidelberg (2001)Google Scholar
  11. 11.
    Herlihy, M.: A methodology for implementing highly concurrent objects. ACM Trans. Program. Lang. Syst. 15(5), 745–770 (1993)CrossRefGoogle Scholar
  12. 12.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann, San Francisco (2008)Google Scholar
  13. 13.
    Michael, M.M.: Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Trans. Parallel Distrib. Syst. 15(6), 491–504 (2004)CrossRefGoogle Scholar
  14. 14.
    Michael, M.M.: Scalable lock-free dynamic memory allocation. SIGPLAN Not. 39(6), 35–46 (2004)CrossRefGoogle Scholar
  15. 15.
    Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of PODC 1996, pp. 267–275 (1996)Google Scholar
  16. 16.
    Petrank, E., Musuvathi, M., Steesngaard, B.: Progress guarantee for parallel programs via bounded lock-freedom. In: Proceedings of PLDI 2009, pp. 144–154 (2009)Google Scholar
  17. 17.
    Purcell, C., Harris, T.: Non-blocking hashtables with open addressing. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 108–121. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  18. 18.
    Sundell, H., Tsigas, P.: Fast and lock-free concurrent priority queues for multi-thread systems. J. Parallel Distrib. Comput. 65(5), 609–627 (2005)CrossRefzbMATHGoogle Scholar
  19. 19.
    Sundell, H., Tsigas, P.: Lock-free and practical doubly linked list-based deques using single-word compare-and-swap 3544, 240–255 (2005)Google Scholar
  20. 20.
    Tsigas, P., Zhang, Y.: Evaluating the performance of non-blocking synchronization on shared-memory multiprocessors. SIGMETRICS Perform. Eval. Rev. 29, 320–321 (June 2001)CrossRefGoogle Scholar
  21. 21.
    Tsigas, P., Zhang, Y.: A simple, fast and scalable non-blocking concurrent fifo queue for shared memory multiprocessor systems. In: Proceedings of SPAA 2001, pp. 134–143 (2001)Google Scholar
  22. 22.
    Tsigas, P., Zhang, Y.: Integrating non-blocking synchronisation in parallel applications: performance advantages and methodologies. In: Proceedings of the 3rd International Workshop on Software and Performance WOSP 2002, pp. 55–67 (2002)Google Scholar
  23. 23.
    Valois, J.D.: Lock-free linked lists using compare-and-swap. In: Proceedings of PODC 1995, pp. 214–222. ACM, New York (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Nhan Nguyen Dang
    • 1
  • Philippas Tsigas
    • 1
  1. 1.Department of Computer Science and EngineeringChalmers University of TechnologyGothenburgSweden

Personalised recommendations