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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Adve, S.V., Gharachorloo, K.: Shared memory consistency models: A tutorial. IEEE Computers 29(12), 66–76 (1996)
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)
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)
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)
Bayer, R., Schkolnick, M.: Concurrency of operations on B-trees. Acta Informatica 9, 1–21 (1977)
Dijkstra, E.W.: Solution of a problem in concurrent programming control. CACMÂ 8(9), 569 (1965)
Easton, W.B.: Process synchronization without long-term interlock. In: Proc. of the 3rd ACM symp. on Operating systems principles, pp. 95–100 (1971)
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)
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)
Fischer, M.J., Lynch, N.A., Paterson, M.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)
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)
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)
Guerraoui, R., Kapalka, M., Kouznetsov, P.: The weakest failure detectors to boost obstruction-freedom. Distributed Computing 20(6), 415–433 (2008)
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)
Herlihy, M.P.: Wait-free synchronization. ACM TOPLAS 13(1), 124–149 (1991)
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)
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)
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)
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)
Kung, H.T., Lehman, P.L.: Concurrent manipulation of binary search trees. ACM Transactions on Database Systems 5(3), 354–382 (1980)
Lamport, L.: A fast mutual exclusion algorithm. ACM Trans. on Computer Systems 5(1), 1–11 (1987)
Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. on Computers 28(9), 690–691 (1979)
Loui, M.C., Abu-Amara, H.H.: Memory requirements for agreement among unreliable asynchronous processes. Advances in Computing Research 4, 163–183 (1987)
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)
Lehman, P.L., Yao, S.B.: Efficient locking for concurrent operations on B-trees. ACM Trans. on Database Systems 6(4), 650–670 (1981)
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)
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)
Moir, M., Anderson, J.: Wait-Free algorithms for fast, long-lived renaming. Science of Computer Programming 25(1), 1–39 (1995)
Massalin, H., Pu, C.: A lock-free multiprocessor OS kernel. Technical Report CUCS-005-91, Columbia University (1991)
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)
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)
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)
Moran, S., Wolfsthal, Y.: An extended impossibility result for asynchronous complete networks. Info. Processing Letters 26, 141–151 (1987)
Raynal, M.: Algorithms for mutual exclusion, 107 pages. The MIT Press, Cambridge (1986)
Rajwar, R., Goodman, J.R.: Speculative Lock Elision: Enabling Highly Concurrent Multithreaded Execution. In: Proc. 34th Inter. Symp. on Microarchitecture, pp. 294–305 (2001)
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)
Shavit, N., Touitou, D.: Software transactional memory. In: Proc. 14th ACM Symp. on Principles of Distributed Computing, pp. 204–213 (1995)
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)
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)
Taubenfeld, G.: Synchronization Algorithms and Concurrent Programming, 423 pages. Pearson / Prentice-Hall, London (2006)
Taubenfeld, G., Moran, S.: Possibility and impossibility results in a shared memory environment. Acta Informatica 33(1), 1–20 (1996)
Valois, J.D.: Implementing lock-free queues. In: Proc. of the 7th International Conference on Parallel and Distributed Computing Systems, pp. 212–222 (1994)
Transactional memory, http://www.cs.wisc.edu/trans-memory/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)