Skip to main content

Contention-Sensitive Data Structures and Algorithms

  • Conference paper
Distributed Computing (DISC 2009)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5805))

Included in the following conference series:

Abstract

A contention-sensitive data structure is a concurrent data structure in which the overhead introduced by locking is eliminated in the common cases, when there is no contention, or when processes with non-interfering operations access it concurrently. When a process invokes an operation on a contention-sensitive data structure, in the absence of contention or interference, the process must be able to complete its operation in a small number of steps and without using locks. Using locks is permitted only when there is interference. We formally define the notion of contention-sensitive data structures, propose four general transformations that facilitate devising such data structures, and illustrate the benefits of the approach by implementing a contention-sensitive consensus algorithm, a contention-sensitive double-ended queue data structure, and a contention-sensitive election algorithm. Finally, we generalize the result to enable to avoid locking also when contention is low.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Adve, S.V., Gharachorloo, K.: Shared memory consistency models: A tutorial. IEEE Computers 29(12), 66–76 (1996)

    Article  Google Scholar 

  2. Attiya, H., Guerraoui, R., Kouznetsov, P.: Computing with reads and writes in the absence of step contention. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 122–136. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  3. Alur, R., Taubenfeld, G.: Results about fast mutual exclusion. In: Proceedings of the 13th IEEE Real-Time Systems Symposium, December 1992, pp. 12–21 (1992)

    Google Scholar 

  4. Aguilera, M.K., Toueg, S.: Timeliness-based wait-freedom: a gracefully degrading progress condition. In: Proc. 27rd ACM Symp. on Principles of Distributed Computing, pp. 305–314 (2008)

    Google Scholar 

  5. Bayer, R., Schkolnick, M.: Concurrency of operations on B-trees. Acta Informatica 9, 1–21 (1977)

    Article  MathSciNet  MATH  Google Scholar 

  6. Dijkstra, E.W.: Solution of a problem in concurrent programming control. CACM 8(9), 569 (1965)

    Article  Google Scholar 

  7. Easton, W.B.: Process synchronization without long-term interlock. In: Proc. of the 3rd ACM symp. on Operating systems principles, pp. 95–100 (1971)

    Google Scholar 

  8. Ellis, C.S.: Extendible hashing for concurrent operations and distributed data. In: Proc. of the 2nd ACM symposium on Principles of database systems, pp. 106–116 (1983)

    Google Scholar 

  9. Fich, F.E., Luchangco, V., Moir, M., Shavit, N.N.: Obstruction-free algorithms can be practically wait-free. In: Fraigniaud, P. (ed.) DISC 2005. LNCS, vol. 3724, pp. 78–92. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  10. Fischer, M.J., Lynch, N.A., Paterson, M.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  11. Fomitchev, M., Ruppert, E.: Lock-free linked lists and skip lists. In: Proc. 23rd ACM Symp. on Principles of Distributed Computing, pp. 50–59 (2004)

    Google Scholar 

  12. Guerraoui, R., Herlihy, M.P., Pochon, B.: Towards a theory of transactional contention managers. In: Proc. of the 24th Symp. on Principles of Dist. Computing, pp. 258–264 (2005)

    Google Scholar 

  13. Guerraoui, R., Kapalka, M., Kouznetsov, P.: The weakest failure detectors to boost obstruction-freedom. Distributed Computing 20(6), 415–433 (2008)

    Article  MATH  Google Scholar 

  14. Harris, T.L.: A pragmatic implementation of non-blocking linked-lists. In: Welch, J.L. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  15. Herlihy, M.P.: Wait-free synchronization. ACM TOPLAS 13(1), 124–149 (1991)

    Article  Google Scholar 

  16. Herlihy, M.P., Luchangco, V., Moir, M.: Obstruction-free synchronization: Double-ended queues as an example. In: Proc. of the 23rd International Conf. on Dist. Computing Systems, pp. 522–529 (2003)

    Google Scholar 

  17. Herlihy, M.P., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. In: Proc. of the 20th annual international symp. on Computer architecture, pp. 289–300 (1993)

    Google Scholar 

  18. Hart, T.E., McKenney, P.E., Brown, A.D.: Making lockless synchronization fast: Performance implications of memory reclamation. In: Proc. of the 20th international Parallel and Distributed Processing Symp. (2006)

    Google Scholar 

  19. Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. on Programming Languages and Systems 12(3), 463–492 (1990)

    Article  Google Scholar 

  20. Kung, H.T., Lehman, P.L.: Concurrent manipulation of binary search trees. ACM Transactions on Database Systems 5(3), 354–382 (1980)

    Article  MATH  Google Scholar 

  21. Lamport, L.: A fast mutual exclusion algorithm. ACM Trans. on Computer Systems 5(1), 1–11 (1987)

    Article  Google Scholar 

  22. Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. on Computers 28(9), 690–691 (1979)

    Article  MATH  Google Scholar 

  23. Loui, M.C., Abu-Amara, H.H.: Memory requirements for agreement among unreliable asynchronous processes. Advances in Computing Research 4, 163–183 (1987)

    MathSciNet  Google Scholar 

  24. Luchangco, V., Moir, M., Shavit, N.N.: On the uncontended complexity of consensus. In: Fich, F.E. (ed.) DISC 2003. LNCS, vol. 2848, pp. 45–59. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  25. Lehman, P.L., Yao, S.B.: Efficient locking for concurrent operations on B-trees. ACM Trans. on Database Systems 6(4), 650–670 (1981)

    Article  MATH  Google Scholar 

  26. McKenney, P.E.: Memory ordering in modern microprocessors, Part I & Part II. Linux Journal, 2005(136) 2 pages, and 2005(137) 5 pages, 2005 (Revised April 2009) (2009)

    Google Scholar 

  27. McKenney, P.E., Michael, M.M., Walpole, J.: Why the grass not be greener on the other side: A comparison of locking vs. transactional memory. In: Proc. of the 4th workshop on Programming languages and operating systems, May 2007, pp. 1–5 (2007)

    Google Scholar 

  28. Moir, M., Anderson, J.: Wait-Free algorithms for fast, long-lived renaming. Science of Computer Programming 25(1), 1–39 (1995)

    Article  MathSciNet  MATH  Google Scholar 

  29. Massalin, H., Pu, C.: A lock-free multiprocessor OS kernel. Technical Report CUCS-005-91, Columbia University (1991)

    Google Scholar 

  30. Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proc. 15th ACM Symp. on Principles of Distributed Computing, pp. 267–275 (1996)

    Google Scholar 

  31. Merritt, M., Taubenfeld, G.: Computing with infinitely many processes. In: Herlihy, M.P. (ed.) DISC 2000. LNCS, vol. 1914, pp. 164–178. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  32. Merritt, M., Taubenfeld, G.: Resilient consensus for infinitely many processes. In: Fich, F.E. (ed.) DISC 2003. LNCS, vol. 2848, pp. 1–15. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  33. Moran, S., Wolfsthal, Y.: An extended impossibility result for asynchronous complete networks. Info. Processing Letters 26, 141–151 (1987)

    Article  MathSciNet  Google Scholar 

  34. Raynal, M.: Algorithms for mutual exclusion, 107 pages. The MIT Press, Cambridge (1986)

    Google Scholar 

  35. Rajwar, R., Goodman, J.R.: Speculative Lock Elision: Enabling Highly Concurrent Multithreaded Execution. In: Proc. 34th Inter. Symp. on Microarchitecture, pp. 294–305 (2001)

    Google Scholar 

  36. Scherer, W.N., Scott, M.L.: Advanced Contention Management for dynamic software transactional memory. In: Proc. of the 24th Symp. on Principles of Dist. Computing, pp. 240–248 (2005)

    Google Scholar 

  37. Shavit, N., Touitou, D.: Software transactional memory. In: Proc. 14th ACM Symp. on Principles of Distributed Computing, pp. 204–213 (1995)

    Google Scholar 

  38. Sundell, H., Tsigas, P.: Lock-free and practical deques using single-word compare-and-swap. In: 8th International Conference on Principles of Distributed Systems (2004)

    Google Scholar 

  39. Taubenfeld, G.: Efficient transformations of obstruction-free algorithms into non-blocking algorithms. In: Pelc, A. (ed.) DISC 2007. LNCS, vol. 4731, pp. 450–464. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  40. Taubenfeld, G.: Synchronization Algorithms and Concurrent Programming, 423 pages. Pearson / Prentice-Hall, London (2006)

    Google Scholar 

  41. Taubenfeld, G., Moran, S.: Possibility and impossibility results in a shared memory environment. Acta Informatica 33(1), 1–20 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  42. Valois, J.D.: Implementing lock-free queues. In: Proc. of the 7th International Conference on Parallel and Distributed Computing Systems, pp. 212–222 (1994)

    Google Scholar 

  43. Transactional memory, http://www.cs.wisc.edu/trans-memory/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Taubenfeld, G. (2009). Contention-Sensitive Data Structures and Algorithms. In: Keidar, I. (eds) Distributed Computing. DISC 2009. Lecture Notes in Computer Science, vol 5805. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04355-0_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-04355-0_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-04354-3

  • Online ISBN: 978-3-642-04355-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics